2011-06-20 14 views
1

私はチャットボックススクリプトを開発しています。セッションが設定されているかどうかを確認するページがあります。もしそうなら、コードの特定の要素を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); 
       } 

      } 

    )}; 

問題は、私がページを実行するたびにこのエラーが出ることです。 注意:未定義のインデックス:C:\ wamp \ www \ AJAX \ sesion.phpの3行目の画像:
私はここで間違っていますか?

答えて

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

change on そしてyname.tekst2.valueは$( '#tekst2')に変更します。値 – 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 on firefoxを使用してください。それはクッキータブにあります。 –

+0

いくつかの奇妙な理由で、このコードはFirefoxで動作していません。Firebugを試してみましたが、ynameは定義されていません。 – Mentalhead

関連する問題