PHP会话在本地主机上工作,但在实际服务器上不工作

PHP会话在本地主机上工作,但在实际服务器上不工作,php,html,Php,Html,我无法将会话变量传递到另一页。它在本地主机上工作,但在服务器上不工作。我想将$\u会话['user\u check']传递给editpasswordsignup.php,但每当我单击submit时,$\u会话['user\u check']都是空的 这是loginsignup.php <?php include('db.php'); session_start(); ?> <div id="wrapper"> <div id="wrapper-bg">

我无法将会话变量传递到另一页。它在本地主机上工作,但在服务器上不工作。我想将$\u会话['user\u check']传递给editpasswordsignup.php,但每当我单击submit时,$\u会话['user\u check']都是空的

这是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>
  <?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>';

    }
    }

    ?>

电邮地址:
密码:

试着这样做:

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


正如您所说,它在本地主机上工作,而不是在特定的服务器上,您可能在
php.ini
中有不同的设置。检查一下这里有几件事需要纠正:

1) 不要在页面中使用样式,使用CSS类和Id而不是样式。我已经编辑了这个问题,删除了它们,因为它们妨碍了我们感兴趣的真实代码

2) 不要使用MySQL,它已被弃用这意味着它不再受支持,不再受支持的原因是存在各种缺陷和安全问题,我强烈建议使用MySQL或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的顶部(会话启动后)放置以下内容:

var_dump($_会话['user_check'])
并使用上面第3点的代码,这将为您提供一个输出

6) 检查您的SQL:

$sql = mysql_query (("SELECT * FROM user WHERE email='user_check' AND password='$oldpassword' "),$conn);
您的电子邮件值是字符串,而不是变量。你的SQL在这里也是一团糟,这是什么原因

将上述内容替换为:

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

完成以上所有内容,您的代码将正常工作。

根据op问题和所需答案,为什么代码在本地主机而不是服务器上工作,Arun给出了正确答案。 可惜他被否决了,但这可能是因为他没有在回答中解释任何事情

我以前遇到过这个问题。 解决方案是确保你没有空间在上面或下面

   <?php

我也遇到了同样的问题,就在这里结束了。即使我没有看到
session\u set\u cookie\u params()
也许你已经在
db.php
上输入了它。因为在
session\u set\u cookie\u参数上使用了
LOCALHOST
(time()+600,“/”,“LOCALHOST”,false,true)会话不起作用,因此如果您使用
会话设置\u cookie\u params()
您必须确保已将
本地主机
替换为您的域

我曾经遇到过几个小时的此问题。我的会话在localhost上工作,但没有在页面之间传递。问题是我在会议开始前的评论。出于某种原因,它并没有影响localhost,但我的服务器并没有


因此,如果有其他人阅读这篇文章时有这个问题,您可以尝试其他方法。

不要破坏“db.php”中的会话?尝试回显重定向脚本,而不是关闭php并再次打开它。类似于:
if(($drawMail==$email)和($drawpassword==$password)){echo'window.location=“../editpasswordsignup.php”;}
这里的问题都是用户生成的。你似乎从不同的地方复制/粘贴了很多不同的代码-例如,一些SQL是mysql,另一些SQL是伪对象导向的。谢谢你的回复。我还是一样尝试。请帮忙解决这个问题。我真的需要一个会话通过这是一个非常简短的回答,本质上只是一个小的代码转储。请解释为什么您认为这会解决问题。阅读操作代码时,会出现各种用户错误,而不是会话设置问题。我同意,但当相同的代码在本地主机上工作时,我认为问题可能在其他地方……是的,公平点。OP提供的信息表明存在会话配置问题,但OP显示的代码清楚地显示了大量语法错误。您能否详细说明一下,也许可以给出一个有问题代码的示例,以及您到底做了什么来修复它?我删除了会话_start()上方的注释,之后效果很好。