2015-03-13 170 views
1

我無法將會話變量傳遞到另一個頁面。它在localhost上工作,但不在服務器上。我想通過$ _SESSION ['user_check']來編輯passwords.ignup.php,但每當我點擊提交,$ _SESSION ['user_check']是空的。PHP會話在本地主機上工作,但不在實際服務器上

這是loginsignup.php

<?php 

include('db.php'); 

session_start(); 

?> 

<div id="wrapper"> 
<div id="wrapper-bg"> 
<div id="wrapper-bgtop"> 
    <div class="container" id="header"> 
    <div class="container" id="logo"> 
     <h1><a href="indexhomepage.php"></a></h1> 
    </div> 
    </div> 

    <div class="container" id="page"> 
    <div id="loginbox"> 
     <form action="" class="formbox" method="post"> 
     <label>Email Address:</label> 
     <input class="box1" name="email" type="text"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     <label>Password:</label> 
     <input class="box2" name="password" type="password"> 
     <a class="myButton1" href="forgetpassword.php">Forgot Password</a><br> 
     <input class="submit5" name="submit" type="submit" value="Login"> 
     <a href="signup.php" id="myButton2">Create Account</a> 
     </form> 

      <?php 

      if (isset($_POST['submit'])) 
      { 
      $email = ($_POST["email"]); 
      $password =($_POST["password"]); 

      $_SESSION['user_check'] = $_POST["email"]; 

      $sql = mysql_query ("SELECT * FROM user WHERE email = '$email' "); 

      $row = mysql_fetch_array($sql); 

      $drawemail = $row['email']; 

      $drawpassword = $row['password']; 

      if (($drawemail == $email) && ($drawpassword == $password)) 

      { 
      ?> 
      <script>window.location = "../wordsignup.php";</script>; 

      <?php 
      } 

      else 
      { 
      echo "wrong password or username"; 
      } 
      } 

      ?> 

    </div> 
    </div> 

    <div class="container" id="footer-content-bg"> 
    <div id="footer-content"> 
     <ul> 
     <li class="footer1"> 
      <a href="aboutus.php">About us</a> 
     </li> 

     <li> 
      <a href="termandcon.php">Term and Conditions</a> 
     </li> 

     <li> 
      <a href="privacyadvertising.php">Privacy Advertising</a> 
     </li> 

     <li> 
      <a href="policy.php">Policy</a> 
     </li> 

     <li> 
      <a href="userargeement.php">User Agreement</a> 
     </li> 
     </ul><br> 

     <div id="copyright"> 
     © . All Rights Reserved. 
     </div> 
    </div> 
    </div> 
</div> 

這是editpasswordsignup.php

<?php 

    include('db.php'); 

    session_start(); 

    $user_check = $_SESSION['user_check']; 

    ?> 

<div id="wrapper"> 
<div id="wrapper-bg"> 
<div id="wrapper-bgtop"> 
    <div class="container" id="header"> 
    <div class="container" id="logo"> 
     <h1><a href="indexhomepage.php"></a></h1> 
    </div> 
    </div> 

    <div class="container" id="page"> 
    <div id="forgetpassword"> 
     <div style="font-size:20px; color:#000080; font-weight:bold; border-width:1px; border-style:none; width:600px; margin:10px 0px 0px 175px;"> 
     Edit Password 
     </div> 

     <div style="font-size:16px;border-style:none; width:560px; margin:20px 0px 10px 175px; font-weight:bold;"> 
     Please enter your old password below and we will send you your password. 
     </div> 

     <div id="forgetpasswordbox"> 
     <form class="forgetpassword" method="post"> 
     Please enter your old password<br> 
     <input class="oldpassword" name="oldpassword" type="password"><br><br> 
     Please enter your new password<br> 
     <input class="newpassword" name="newpassword" type="password"><br><br> 
     Please re-enter new password<br> 
     <input class="confirmpassword" name="confirmpassword" type="password"><br><br>  
     <input name="submit" type="submit" value="Send" class="send"> 
     </form> 

     </div> 
    </div> 
    </div> 

    <div class="container" id="footer-content-bg"> 
    <div id="footer-content"> 
     <ul> 
     <li class="footer1"> 
      <a href="aboutus.php">About Us</a> 
     </li> 

     <li> 
      <a href="termandcon.php">Term and Conditions</a> 
     </li> 

     <li> 
      <a href="privacyadvertising.php">Privacy Advertising</a> 
     </li> 

     <li> 
      <a href="policy.php">Policy</a> 
     </li> 

     <li> 
      <a href="userargeement.php">User Agreement</a> 
     </li> 
     </ul><br> 

     <div id="copyright"> 
     © . All Rights Reserved. 
     </div> 
    </div> 
    </div> 
    </div> 
    </div> 
    </div> 

    <?php  
    if (isset($_POST['submit'])) 
    {    
    $oldpassword = $_POST['oldpassword']; 
    $newpassword = $_POST['newpassword']; 
    $confirmpassword = $_POST['confirmpassword']; 

    $sql = mysql_query (("SELECT * FROM user WHERE email='user_check' AND password='$oldpassword' "),$conn); 

    $row = mysql_fetch_array($sql); 
    $email = $row['email']; 
    $selectpassword = $row['password']; 

    if ($oldpassword == "") 
    { 

    echo '<script language="javascript">'; 
    echo 'alert("pls enter your oldpassword")'; 
    echo '</script>'; 
    exit; 
    } 

    if($newpassword=="") 
    { 
    echo '<script language="javascript">'; 
    echo 'alert("pls enter your newpassword")'; 
    echo '</script>'; 
    exit; 

    } 

    if($confirmpassword=="") 
    { 
    echo '<script language="javascript">'; 
    echo 'alert("pls enter your confrimpassword")'; 
    echo '</script>'; 
    exit; 

    }  

    if (($oldpassword) != ($selectpassword)) 
    { 
    echo '<script language="javascript">'; 
    echo 'alert("No user exists with this password '.$selectpassword.' ")'; 
    echo '</script>'; 
    exit; 
    } 

    if ($newpassword == ($confirmpassword)) 
    { 
    mysql_query("UPDATE user SET password = '".$newpassword."' WHERE email='".$email."'"); 

    $message = "Your password ".$newpassword." and click the link uploadsignup.php to upload your photo"; 

    mail($email, "Change Password", $message); 
    ?> 

    <script> 

    alert("Password Successfully change...!!!!\nClick OK to upload photo\nNewpassword will send to your email address"); 
    window.location="uploadsignup.php"; 

    </script> 


    <?php 
    } 
    else 
    { 
    echo '<script language="javascript">'; 
    echo 'alert("new password does not match")'; 
    echo '</script>'; 

    } 
    } 

    ?> 
+0

不要在'db.php'中銷燬會話嗎? – 2015-03-13 08:14:33

+0

嘗試將重定向腳本回顯出來,而不是關閉PHP並再次打開它。像這樣:'if(($ drawemail == $ email)&&($ drawpassword == $ password)) { echo''; }' – Eda190 2015-03-13 08:30:18

+0

這裏的問題都是用戶生成的。您似乎從不同的地方複製/粘貼了大量不同的代碼 - 例如,某些SQL是mysql,而其他SQL是僞面向對象的。 – Martin 2015-03-13 09:44:39

回答

-1

嘗試這樣的:

<?php session_start(); 
----- 
----- 
?> 
+0

感謝您的回覆。我嘗試它仍然是一樣的。請幫助解決這個問題。我真的需要一個會話通過 – user3379528 2015-03-13 08:21:44

+0

這是一個非常簡短的答案,本質上只是一個小代碼轉儲。請解釋你爲什麼認爲這將解決問題。 – 2015-03-13 11:15:07

1

正如你說這是w ^在本地主機上而不是在特定的服務器上執行操作,您可能在php.ini中有不同的設置。退房http://php.net/manual/en/session.configuration.php

+0

讀取OP代碼時存在各種用戶錯誤,而不是SESSION設置的問題。 – Martin 2015-03-13 09:42:14

+0

我同意,但是當相同的代碼在localhost上工作時,我認爲問題可能在其他地方... – tomik 2015-03-13 10:24:43

+0

是的,公平點。由OP給出的信息表明會話配置問題,但由OP顯示的代碼清楚地顯示了許多語法錯誤。 – Martin 2015-03-13 10:29:25

0

有一些需要加以糾正這裏幾件事情:

1)不要在頁面中,使用CSS類使用樣式和編號的,而不是風格。我已經編輯了問題,因爲他們在真正的代碼中,我們感興趣的方式去消除這些。

2)不要使用MySQL,它是棄用這意味着它不再支持和不再支持的原因是存在各種缺陷和安全問題,我強烈建議將MySQLi或PDO作爲連接數據庫的替代方法。認真。

3)你的問題是syntx - 我們將用括號開始 - 看到:

$email = ($_POST["email"]); 
$password =($_POST["password"]); 

應該是:

$email = $_POST['email']; 
    $password =$_POST['password']; 

你不需要指定變量時,把值在括號中。另請注意,數組值使用單引號'而不是雙引號。所以:

$_SESSION['user_check'] = $_POST['email']; 

會更好地工作,或者試試這個:

if (!empty($_POST['email'])){ 
$_SESSION['user_check'] = $_POST['email']; 
} 
else { 
$_SESSION['user_check'] = "No Email value given in form"; 
} 

,以取代上述行。 4)您的HTML代碼不完整,您的表單在第二個代碼塊中沒有action值,但這些內容可能並不重要,但是由於含糊不清,此代碼適用於錯誤。

5)在editpasswordsignup.php的頂部(在session_start之後)把這個:

var_dump($_SESSION['user_check']);並與來自點3上面的代碼,這應該給你的輸出。

6)檢查您的SQL:

$sql = mysql_query (("SELECT * FROM user WHERE email='user_check' AND password='$oldpassword' "),$conn); 

您的email值是一個字符串,而不是一個變量。你這裏的SQL也是一團糟,這是什麼原因?

替換上面:

$sql = mysql_query("SELECT * FROM user WHERE email='$user_check' AND password='$oldpassword' LIMIT 1"); 

完成上述所有的和你的代碼將工作。

0

根據op問題和答案需要爲什麼代碼在本地主機而不是服務器上工作正確答案似乎由Arun。 他被拒絕投票了,但這可能是因爲他沒有在他的回答中解釋任何事情。

我以前遇到過這個問題。 解決的辦法是要確保你沒有高於或低於

<?php 

線空間。 我相當肯定這就是爲什麼Arun畫出線條來表明你的其他PHP代碼應該立即遵循。

相關問題