【问题标题】:Undefined index with session带有会话的未定义索引
【发布时间】:2011-09-18 19:03:25
【问题描述】:

我正在开发一个聊天框脚本,并且我有这个页面来检查是否设置了会话,如果设置了,则应该使用 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>

会话.php:

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

检查.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。
那么有人可以告诉我我在这里做错了什么吗?

【问题讨论】:

    标签: php jquery session variables undefined


    【解决方案1】:
    if(isset($_POST['ime']))
    {
        $_SESSION['ime']=$_POST['ime'];
        $sesion_n=$_SESSION['ime'];
        echo $sesion_n;
    }
    

    【讨论】:

    • 更改 和 yname.tekst2.value 更改在 $('#tekst2').value
    • 谢谢,这修复了我的通知,但是 jQuery 脚本并没有隐藏元素,所以你能帮我解决这个问题吗?
    • 点击“Enter”按钮后是否有alert()?
    • 是的,我已经修复了它,现在一切正常。感谢您的帮助。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 我认为您可能在这里有所了解,但您能解释一下如何检查会话 ID 吗?
      • 在 Firefox 上使用 FireBug。它会在 cookie 选项卡中。
      • 由于某种奇怪的原因,这段代码在 Firefox 中不起作用,我尝试了 Firebug,它给了我 yname is not defined 错误
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      • 2017-02-02
      • 2013-03-16
      • 1970-01-01
      相关资源
      最近更新 更多