2011-06-20 30 views
1

我正在開發chatbox腳本,並且我有這個頁面來檢查會話是否已設置,如果是這樣,代碼的某些元素應該用jQuery隱藏。這裏是我的網頁:未定義的會話索引

input.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<style type="text/css"> 
    @import "stil.css"; 
</style> 
<title>Untitled Document</title> 
<script type="text/javascript" src="jq.js"></script> 
<script type="text/javascript" src="jquery-ui-1.8.13.custom.min.js"></script> 
<script type="text/javascript" src="scripts.js"></script> 
<script type="text/javascript" src="postme.js"></script> 
<?php 
include_once('check.php'); 
?> 
</head> 
<body> 
<div id="wrap"> 
    <div id="chat"> 
    <div id="main"> 
    </div> 
    <div id="input"> 
<form name="form"action="test.php" method="post"> 
<input type="text" name="tekst" id="msg" size="72" /> 
<input type="submit" name="dugme" value="posalji" id="dugme" /> 
</form> 
    </div> 
    </div> 
    </div> 
<div id="black"> 
</div> 
<div id="name"> 
<form name="yname"> 
<input type="text" name="tekst2" /> 
<input type="button" name="dugme2" value="Enter" onclick='send()' />  
</form> 
</div> 


</body> 
</html> 

sesion.php:

<?php 
session_start(); 
$_SESSION['ime']=$_POST['ime']; 
$sesion_n=$_SESSION['ime']; 
echo $sesion_n; 
?> 

check.php:

<?php 
include('sesion.php'); 
if (!isset($sesion_n)){ 
    echo "<script type='text/javascript'>$('#black').hide();$('#name').hide();</script>"; 
} 
?> 

postme.js:

function send(){ 
     $.post('sesion.php',{ime:yname.tekst2.value},function(val){ 
       if(val!=null) { 
        $('#black').fadeOut(); 
        $('#name').hide(); 
        alert(val); 
       } 

      } 

    )}; 

所以問題是我每次運行該頁面時都會收到此錯誤: 注意:未定義索引:第3行的C:\ wamp \ www \ AJAX \ sesion.php中的ime。
那麼有人可以告訴我什麼我在這裏做錯了嗎?

回答

3
if(isset($_POST['ime'])) 
{ 
    $_SESSION['ime']=$_POST['ime']; 
    $sesion_n=$_SESSION['ime']; 
    echo $sesion_n; 
} 
+0

和$('#tekst2')上的yname.tekst2.value更改值 – DENIEL

+0

謝謝,這解決了我的問題,但jQuery腳本不會隱藏元素,那麼你能幫助我嗎? – Mentalhead

+0

點擊「Enter」按鈕後是否有alert()? – DENIEL

0

看來$_POST['ime'];是未定義的,這意味着你不發佈它我猜。

您確定yname.tekst2.value是訪問該字段值的正確方法嗎?

如果您有螢火蟲,您可以在「控制檯」選項卡中檢查已發佈的參數。

0

它似乎是手動加載check.php。這將是一個GET請求,並將垃圾你的存儲值,因爲_POST不會被設置在這些頁面上。可能不會是未定義索引問題的原因,但需要考慮。

檢查會話的ID值在請求之間保持不變。如果每次都不一樣,每次請求都會得到一個全新的空白會話。

+0

我認爲你可能在這裏,但你能解釋我怎麼檢查會話ID? – Mentalhead

+0

在firefox上使用FireBug。它會在Cookie選項卡中。 –

+0

由於一些奇怪的原因,這段代碼在Firefox中不起作用,並且我嘗試了Firebug,它給了我yname沒有定義的錯誤 – Mentalhead