AJAX aracılığıyla oturum açan ve daha sonra SQL'e karşı denetlemek için verileri bir .php dosyasına geçiren bir kodum var. Bir test için, kullanıcı adı ve şifre bende - ben yine de bu beni tekrar girişten gelmiyor, oturumun kurulmadığı gibi görünüyor.PHP oturumları ayarlanmadı
log.php
<script type="text/javascript">
$(document).ready(function()
{
$("#login_form").submit(function()
{
//remove all the class add the messagebox classes and start fading
$("#msgbox").removeClass().addClass('messagebox').text('Validating....').fadeIn(1000);
//check the username exists or not from ajax
$.post("ejaxlog.php",{ username:$('#username').val(),password:$('#password').val(),rand:Math.random() } ,function(data)
{
if($.trim(data)=='yes') //if correct login detail
{
$("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$(this).html('Logging in.....').addClass('messageboxok').fadeTo(900,1,
function()
{
//redirect to secure page
document.location='http://www.google.com';
});
});
}
else
{
$("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$(this).html('Your login detail sucks...').addClass('messageboxerror').fadeTo(900,1);
});
}
});
return false; //not to post the form physically
});
//now call the ajax also focus move from
$("#password").blur(function()
{
$("#login_form").trigger('submit');
});
});
</script>
<link type="text/css" href="formboxes.css" rel="stylesheet">
</head>
<body>
<?
echo $_SESSION['u_name'];?>
<form method="post" action="" id="login_form">
<div align="center">
<div >
User Name : <input name="username" type="text" id="username" value="" maxlength="20" />
</div>
<div style="margin-top:5px" >
Password :
<input name="password" type="password" id="password" value="" maxlength="20" />
</div>
<div class="buttondiv">
<input name="Submit" type="submit" id="submit" value="Login" style="margin-left:-10px; height:23px" /> <span id="msgbox" style="display:none"></span>
</div>
</div>
</form>
bu daha sonra, bir sonraki kodu aracılığıyla MySQL denetler o benim HTTP başlıklarında gördüğümüz "evet" (şimdiye doğru olmalıdır) ama doesnt dışarı echos başarılı olduğunu log.php dosyasında belirtilen şekilde "eindex.php" adresine yönlendir.
<?php
session_start();
require("../mcfrdb.php");
// Included database once using the require method
?>
<?php
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$pass = mysql_real_escape_string(stripslashes($_POST['password']));
$result = mysql_query("SELECT user, pass FROM mcfruse WHERE user='$username'")or die(mysql_error());
$row=mysql_fetch_array($result);
if(mysql_num_rows($result)>0)
{
if(strcmp($row['pass'],$pass)==0)
{
echo "yes";
$_SESSION['name']=$username;
}
else
echo "no";
}
else
echo "no";
Benim HTML kundakçı kullanarak
evet
yani evet doğru pwd geçer ve onu doğrular, ama yine de diyor yani echo'ed ediliyor "Oturum detay dediğinde berbat" ve eindex.php beni yönlendirmek doesnt
eindex.php
<?php
session_start();
if(!isset($_SESSION['name']))
header("Location:../index.php");
//if logout then destroy the session and redirect the user
if(isset($_GET['logout']))
{
session_destroy();
header("Location:../index.php");
}
require("../mcfrdb.php");
?>
Kodu birkaç kez kontrol ettim, ancak hiçbir şey bulamadım. Tüm cevaplar ve herhangi bir yardım takdir edildi. Çok teşekkürler.
DÜZENLEME: Hatta ben hala "evet" olsun ve ben kullanıcı adı ve karma yankı, onlar bot eşleştirme vardır (bu koddan atlanmıştır) md5 pwd karma ekleyerek, oturum ancak ve hala değil set yönlendirme varlık değildir ben mi. eğer üzerinde AJAX aracılığıyla erişmek Herhangi sayfanın ayrı istek olduğunu
['session_start()'] (http://php.net/manual/en/function.session-start.php) adresiniz nerede? – feeela
Güzel hata mesajı broker –
içinde, üst satırda jsut, onun ihmal edilmiş mt mt kodu, sanırım ben bu kadar sıkışmış olmalıyım; D – ben