私はAJAX経由でログインし、そのデータを.phpファイルに渡してSQLと照合するコードを持っています。テストのために、ユーザー名とパスワードは私ですが、これは私がログインしていないチェックから戻ってきます。セッションが設定されていないようです。PHPセッションが設定されていません
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>
これは、その後、次のコードを経由してMySQLをチェックし、それは私が私のHTTPヘッダに表示され、「はい」(そう正しくなければなりません)が、それはdoesntのうちエコー表示成功していますlog.phpファイルで指定されているように私を "eindex.php"にリダイレクトします。
<?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";
マイHTML放火犯を使用すると、
はい
そうですが、それが正しいPWDを通過し、それが検証しますが、それはまだ言う意味echo'edされている「ログイン詳細は述べているとき吸う」と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");
?>
をeindex.phpために私をリダイレクト0
私は何度かコードをチェックしましたが、何も見つかりませんでした。すべての返信と助けを感謝します。 多くのありがとうございます。
EDIT:このコードでは省略されているmd5 pwdハッシュを追加しても "はい"と表示され、ユーザー名とハッシュをエコーするとボットマッチングが行われますが、セッションはまだ設定されておらず、私。もし上($。)(データをトリム==「はい」)
あなたの['session_start()'](http://php.net/manual/en/function.session-start.php)はどこにありますか? – feeela
いいえ、エラーメッセージの仲間 –
そこにある、最上部の行にjsut、そのコードを除いて、私はそれを詰め込んだはずだと思います; – ben