我正在开发一个聊天框脚本,我有这个页面检查是否设置了会话,如果是这样,代码的某些元素应该用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中。
那么有人能告诉我这里我做错了吗?
答案 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值在请求之间保持不变。如果每次都不一样,那么每个请求都会有一个全新的空白会话。