我无法将会话变量传递到另一个页面。它正在使用localhost但不在服务器上。我想将$ _SESSION [' user_check']传递给editpasswordsignup.php,但每当我点击提交时,$ _SESSION [' user_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">
<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 :(得分:1)
正如您所说它在localhost而不是在特定服务器上工作,您可能在php.ini
中有不同的设置。查看http://php.net/manual/en/session.configuration.php
答案 1 :(得分:1)
这里有几件事需要纠正:
1)不要在页面中使用样式,使用CSS类和Id而不是样式。我已经编辑了这些问题,因为它们妨碍了我们感兴趣的真实代码。
2)不要使用MySQL, 已弃用 意味着它不再受支持,并且不再支持它的原因是存在各种缺陷和安全问题我强烈建议将MySQLi或PDO作为连接数据库的替代方法。认真。
3)你的问题是合成 - 我们将从括号开始 - 参见:
$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);
您的电子邮件值是字符串,而不是变量。你的SQL在这里也是一团糟,这是什么原因?
将以上内容替换为:
$sql = mysql_query("SELECT * FROM user WHERE email='$user_check' AND password='$oldpassword' LIMIT 1");
完成上述所有操作后,您的代码就可以使用。
答案 2 :(得分:0)
根据操作问题以及为什么代码在本地主机而不是服务器上运行所需的答案,Arun似乎正确答案。 太糟糕了,他一直被投票,但那可能是因为他没有在他的回答中解释任何事情。
之前我遇到过这个问题。 解决方案是确保上面或下面没有空格
<?php
线。 我很确定这就是为什么Arun已经画出线条来表明你的其他PHP代码应该立即跟进。
答案 3 :(得分:0)
我只是遇到了同样的问题,我到这里就结束了。即使我没有在session_set_cookie_params()
上看到,也可能在db.php
上输入了它。由于在LOCALHOST
会话上使用session_set_cookie_params(time()+600,'/','LOCALHOST',false,true);
无效,因此,如果您使用session_set_cookie_params()
,则必须确保已将LOCALHOST
替换为您的域
答案 4 :(得分:0)
我曾经有几个小时的问题。我的会话在localhost上运行,但没有在页面之间传递。问题是我在会议开始之前的意见。由于某种原因,它不会影响本地主机,但是我的服务器只是没有它。
因此,如果还有其他人阅读此问题,则可以尝试其他方法。
答案 5 :(得分:-1)
试试这样:
<?php session_start();
-----
-----
?>