带有会话的未定义索引

时间:2011-06-20 15:09:21

标签: php jquery session variables undefined

我正在开发一个聊天框脚本,我有这个页面检查是否设置了会话,如果是这样,代码的某些元素应该用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);  
                }

            }

   )};

所以问题是每次运行页面时都会出现此错误: 注意:未定义的索引:ime在第3行的C:\ wamp \ www \ AJAX \ sesion.php中。
那么有人能告诉我这里我做错了吗?

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

似乎$_POST['ime'];未定义,这意味着我猜你没有发布它。

您确定yname.tekst2.value是访问该字段值的正确方法吗?

如果您有firebug,您可以在“控制台”选项卡中查看已发布的参数。

答案 2 :(得分:0)

您似乎手动加载check.php。那将是一个GET请求,并将废弃您的存储值,因为不会在这些页面上设置_POST。可能不会是未定义索引问题的原因,但需要考虑。

检查会话的ID值在请求之间保持不变。如果每次都不一样,那么每个请求都会有一个全新的空白会话。