PDA

View Full Version : آپدیت پنل در php



negar442
شنبه 27 دی 1393, 12:08 عصر
من یک صفحه لاگین ساختم اگه رمز و نام کاربری درست باشه به صفحه مدیریت میره و اگه رمز اشتباه باشه یک پیغام میده و قبل این پیغام هم کل صفحه رفرش میشه ؛ حالا من

میخوام با استفاده از ای جکس وقتی رمز درست نبود به جای کل صفحه ، فقط قسمتی از اون رفرش بشه و پیغام بده. در ASP.NET یک چیزی بود به نام Update Panel که

کار با ای جکس رو راحت می کرد . آیا در PHP هم یک همچین چیزی داریم؟

hamedarian2009
شنبه 27 دی 1393, 14:32 عصر
سلام. ASP.NET یک فریم ورک هست و اونها کنترل هایی هستن که قبلا کسی برنامه اونهارو نوشته و در اختیار شما قرار داده اما در php اینگونه نیست و باید خودتون برنامشو بنویسین چیز خاصی هم نیست با جی کوئری ای جکس به راحتی و با 3 یا 4 خط کد قابل انجامه

negar442
شنبه 27 دی 1393, 16:46 عصر
یعنی در ASP.NET و در پشت پرده از جی کوئری استفاده شده؟


جی کوئری ای جکس به راحتی و با 3 یا 4 خط کد قابل انجامه

اگه با 3 - 4 خط کد میشه انجامش داد میشه کدها رو بزرارین؟ و یا لینکی برای آموزشش نشون بدین؟

hamedarian2009
شنبه 27 دی 1393, 17:19 عصر
این یه مثال فرض کن یه صفحه html داری که اینا کدهای داخلش هستن


<form action="#" method="post" id="form1">
User Name: <input type="text" name="uname" /><br />
Password: <input type="text" name="password" /><br />
<input type="submit" value="Login" />
</form>
<div class="result"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#form1').submit(function(){
$.ajax({
type: 'POST',
url:'recieve.php',
data: $(this).serialize(),
success: function(data){
$('.result').html(data);
}
});
return false;
});
});
</script>

کافیه توی یه صفحه php که من recieve.php مثلا نام گزاری کردم اطلاعات رو میفرسته و از داخل اون فایل کدهای php مربوط به لاگین رو می نویسید من برای تست این کد رو نوشتم


if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo 'Username is <b>'.$_POST['uname'].'</b> AND Password is <b>'.$_POST['password'].'</b>.'.PHP_EOL;
}


پ. ن: در این اسکریپت امنیت رو لحاظ نکردم در صورت استفاده در سایت و آپلود در هاست نهایت دقت را بفرمایید

negar442
شنبه 27 دی 1393, 23:08 عصر
PHP_EOL سطر آخر چی کار می کنه؟

hamedarian2009
شنبه 27 دی 1393, 23:35 عصر
PHP_EOL سطر آخر چی کار می کنه؟

همون n\ هست که اینتر میزنه میره خط بعدی ولی با توجه به سیستم عامل ممکنه این متفاوت باشه ازین ثابت استفاده میکنیم

negar442
سه شنبه 30 دی 1393, 22:37 عصر
یک مشکلی پیش اومده الآن من با الگوبرداری از پست شماره 4 فرم لاگین رو نوشتم ؛ وقتی رمز اشتباهه همونطور که می خواستم پیام بدون رفرش کل صفحه نمایش داده می شه ولی

وقتی نام کاربری و رمز درسته به صفحه مدیریت نمی ره! این دلیلش چی می تونه باشه؟ کدهای recieve.php به این شکل تغییر کرده :



<?php
include "config.php";
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//echo 'Username is <b>'.$_POST['uname'].'</b> AND Password is <b>'.$_POST['password'].'</b>.'.PHP_EOL;
$sql="SELECT COUNT(*) FROM login WHERE Username=? and password=?";
$result=$connect->prepare($sql);
$result->bindValue(1,$_POST['user']);
$result->bindValue(2,$_POST['pass']);
$result->execute();
$num=$result->fetchColumn();
if($num==1)
{

header("manage100.php" );
}
else
{

echo '<p style="color:#880000;background-color:#ffff99;">نام کاربری یا رمز اشتباه است</p>';
}
}
?>

hamedarian2009
سه شنبه 30 دی 1393, 23:51 عصر
شما تو روش ای جکس نمیتونید ریدایرکت رو تو صفحه پی اچ پی پشت صحنه انجام بدین چون عملا رفرشی انجام نشده باید یکم خلاقیت به خرج بدین مثلا اینجوری:


<form action="#" method="post" id="form1">
User Name: <input type="text" name="uname" /><br />
Password: <input type="text" name="password" /><br />
<input type="submit" value="Login" />
</form>
<div class="result"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#form1').submit(function(){
$.ajax({
type: 'POST',
url:'recieve.php',
data: $(this).serialize(),
success: function(data){
if(data == 1){
window.open('manage100.php', '_self');
} else{
$('.result').html(data);
}
}
});
return false;
});
});
</script>




if($_SERVER['REQUEST_METHOD'] == 'POST'){
if($_POST['uname'] == 'user' && $_POST['password'] == '1234'){
echo 1;

} else{
echo '<p style="color:#880000;background-color:#ffff99;">نام کاربری یا رمز اشتباه است</p>';
}
}

negar442
چهارشنبه 01 بهمن 1393, 21:57 عصر
success: function(data){
if(data == 1){
window.open('manage100.php', '_self');
} else{
$('.result').html(data);
}
}
[/PHP]

DATA==1 یعنی چی؟
$('.result').html(data); این خط کارش چیه؟

hamedarian2009
چهارشنبه 01 بهمن 1393, 22:33 عصر
DATA==1 یعنی چی؟
$('.result').html(data); این خط کارش چیه؟

data همون نتیجه کارمون در صفحه php هست اگه مشخصات کاربر درست بود برامون عدد 1 یا true رو فرستاده و اگه توجه کنی تو صفحه php من 1 رو echo کردم و با این شرط که 1 == data می تونیم از طریق جاوااسکریپت کاربرو به صفحه موردنظر هدایت کنیم و در غیر اینصورت هم پیغام خطا داخل تگ مشخص شده چاپ میشه