Неопределенный индекс с сеансом - PullRequest
1 голос
/ 20 июня 2011

Я разрабатываю скрипт 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);  
                }

            }

   )};

Итак, проблема в том, что я получаю эту ошибку каждый раз, когда я запускаю страницу: Примечание: неопределенный индекс: ime в C: \ wamp \ www \ AJAX \ sesion.php on line3.
Так может ли кто-нибудь сказать мне, что я здесь не так делаю?

Ответы [ 3 ]

3 голосов
/ 20 июня 2011
if(isset($_POST['ime']))
{
    $_SESSION['ime']=$_POST['ime'];
    $sesion_n=$_SESSION['ime'];
    echo $sesion_n;
}
0 голосов
/ 20 июня 2011

Похоже, вы загружаете check.php вручную.Это будет запрос GET, и он уничтожит ваше сохраненное значение, так как _POST не будет установлен на этих страницах.Вероятно, это не будет причиной проблемы с неопределенным индексом, но нужно учитывать.

Убедитесь, что значение идентификатора сеанса остается постоянным между запросами.Если каждый раз по-разному, вы получаете новый пустой сеанс при каждом запросе.

0 голосов
/ 20 июня 2011

кажется, что $_POST['ime']; не определено, и это означает, что вы не публикуете его, я думаю.

Вы уверены, что yname.tekst2.value является правильным способом доступа к значению поля?

Если у вас есть firebug, вы можете проверить на вкладке "console", какие параметры были опубликованы.

...