2013-11-13 2 views
0

Я пытаюсь передать сеанс php с одной страницы на другую. Однако, когда я загружаю 2-ю страницу, url изменяется, но 1-я страница перезагружается. Ничего со второй страницы не появляется. Я чувствую, что это линия isset, которая испортила это, но я могу ошибаться. Любые идеи относительно того, где я, возможно, ошибаюсь, будут очень признательны.Новая страница не загружается при использовании сеанса

страница 0 HTML:

<div id="login"> 
<p>Username: 
    <input type="text" id="loginName" Required> 
</p> 
<p>Password: 
    <input type="password" id="loginPass" Required> 
</p> 
<span id="loginError">Please enter a username AND password</span> 

страница 0 JQuery (При этом используется перенаправление плагин):

$("#login").dialog({ 
modal: true, 
buttons: { 
    Login: function(){ 
     var userName = $("#loginName").val(); 
     var userPass = $("#loginPass").val();               
     var request1 = $.ajax({ 
      url: "indexDb.php", 
      async: true, 
      type: "POST", 
      data:{uName:userName, uPass:userPass, func:1}, 
      dataType: "html" 
     }).success(function(data){ 
      if(data == "Password Not Found"){ 
       //alert(data); 
       $("#loginError").text("The password you entered was incorrect"); 
       $("#loginError").show(); 
      } 
      else if(data == "Name Not Found"){ 
       $("#loginError").text("The username you entered was not found"); 
       $("#loginError").show(); 
      } 
      else{          
       uid = data; 
       $.ajax({ 
        url: "home.php", 
        type: "POST", 
        data: {uName:uid}, 
        datatype: "text" 
       }).success(function(data){ 
        alert("user:" + data); 
        $().redirect('home.php', {'uName': data}); 
       });    
      }     
     })//end success        

    } //end of login button 

} //end of buttons 
}); //end of dialog 

страницы 1:

<?php 
session_start(); 
if(isset($_POST['uName'])){ 
    $_SESSION['currentID'] = $_POST['uName']; 
    $curUser = $_POST['uName']; 
} 
?> 
<html> 
    <a href="page2.php">page 2</a> 
</html> 

страница 2:

<?php 
session_start(); 

echo $_SESSION['currentID']."hi"; 
?> 
+2

Вы уверены, что '$ _POST ['uName']' установлен, и поэтому устанавливается переменная сеанса? Для аргумента отладки, установленного после 'session_start();' ваша переменная сеанса в значение defult '$ _SESSION ['currentID'] = 'not set';' – TiMESPLiNTER

+0

Да, она установлена. Я добавил тест для эха «true», если isset и «false», если нет, и он верн. True – gotguts

+0

Я проверил ваш код, работает отлично со мной ... –

ответ

0

$().redirect('page1.php', {'uName': data}); Что вы подразумеваете под этим? все, что вам нужно сделать, - создать запрос для страницы 1 с помощью клика или какого-либо другого события, а затем создать другой запрос ajax для страницы2 и проверить свой ответ. Попробуйте этот код jquery.

$('#check').click(function() 
{ 
    //Submit the form 
    $.ajax({ 
     url: "page1.php", 
     type: "POST", 
     data: {uName:"Your Name"}, 
     datatype: "text" 
     }).success(function(data){ 
      alert("user:" + data); 
      $.ajax({ 
       url: "page2.php", 
       type: "POST", 
       datatype: "text" 
       }).success(function(data){ 
        alert("Page2:" + data); 

       }); 
     }); 
}); 

и это ваш HTML

<div id = "check">Trigger</div> 

Так что, когда вы нажимаете на «триггерного» JQuery направить запрос на page1 там вы установили сеанс, в JQuery обратного вызова первого запроса вы создаете новый запрос для страницы 2, и вы получите ответ на свою страницу 2.

+0

Первый запрос Ajax - это вызов базы данных, чтобы проверить, существует ли пользователь. Во втором, перенаправление - это плагин, который отправляет вас на новую страницу плюс ваши данные. То, что вы предлагаете, ничем не отличается от того, что я сделал с тех пор, как я сказал, это моя сессия. – gotguts

Смежные вопросы