0
我通過ajax提交表單到一個PHP代碼頁面,它將設置會話與否。這是發生了什麼:通過Ajax提交阿賈克斯不總是提交表格
- 表格到的login.php
- 的login.php或者設置會話與否
- loginform.php重新裝入一個div頁面上(本身頁面重新加載不(
$('#login').load('loginform.php');
) - loginform.php檢查如果會話被設置,則無論是顯示日誌在形式上或註銷按鈕
。
如果我登錄新頁面,它工作正常。
如果我已經登錄然後註銷這個工程,並再次顯示在窗體中的日誌。 但是,如果我嘗試再次從這裏登錄此相同的頁面,則會話將不會被設置。 我在PHP輸出我的會議,並在登出我有這樣的:
Notice: Undefined index: log in...
當試圖在同一頁上註銷後登錄我得到這個雖然:
Notice: Undefined variable: _SESSION in...
任何想法?
編輯: 下面是一些代碼 -
的index.php
<script language="javascript">
$(document).ready(function()
{
$("#login_form").submit(function(event)
{
$.post("login.php",{emai:$('#emai').val(),pass:$('#pass').val()} ,function(data)
{
//if login.php echos "no" then an error box is displayed, else it refreshes the login div to hopefully display a log out link
if(data!='no') {$('#login').load('loginform.php');}
if(data =='no') {$("#loginerror").show();}
});
})
//the session is destroyed in logout.php, then the form reloaded.
$("#logout").click(function()
{
$.post("logout.php");
$('#login').load('loginform.php');});
});
</script>
</head>
<body>
<?
include ('inc/classes.php');
session_start();
?>
<div class="header">
<div id="login"><? include ('inc/headerlogin.php');?></div>
</div>
的login.php
//just searching the database for a match and setting the session. Echos yes or no.
<?
session_start();
include ('../inc/classes.php');
$emai=$_POST['emai'];
$pass=$_POST['pass'];
$Query="SELECT * FROM users WHERE emai ='".$emai."' AND pass='".$pass."'";
$Sel = new Database;
$Sel->nextRecord();
$Sel->Query($Query);
if ($Sel->numRows() == 1) {$_SESSION['log'] = $Sel->Record['id']; $login = "yes";}
else {$login = "no";}
echo $login;
?>
LOGINFORM.PHP
<?
echo $_SESSION['log'];
//if session is set display sign out link
if(isset($_SESSION['log']))
{
?>
<a id="logout">sign out</a>
<? } //else display form again
else
{?>
<div id="loginerror">Wrong password</div>
<form method="post" action="" id="login_form">
<input name="email" type="text" value="" id="emai"/>
<input name="pass" type="password" id="pass"/>
<input name="signin" type="submit" value="sign in" id="signbutton"/>
</form>
<? } ?>
我們可以看到開始一些適用的代碼可以使用? –
你會''session_start();'在你的php的頂部嗎? – roselan
請在您的問題中添加一些代碼... – Timur