当用户在第二次尝试时首次登录时,会话不会启动

时间:2018-01-05 12:58:43

标签: php session-variables

请你帮忙,我是php的新手,但开始有点抓地力但是会话让我有问题,我已经坚持了一段时间了。

我有一个基本的html / php登录表单,表单应该将表单中的用户名放入会话中,然后其余的php脚本将此会话数据用于各种sql查询。

我的问题是登录用户名只会在第二次尝试时进入会话,第一次尝试导致什么都没有进入会话并返回空白?但如果我回去重复日志,那么数据会很好地进入会话吗?

我一直在查看已发布的答案,最相关的告诉我在重定向网址中添加完整的网址,但这没有效果。

请有人帮助我,因为这让我发疯!

这是html表单:

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" 
bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checkLogIn.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" 
bgcolor="#FFFFFF">
<tr> 
<td colspan="3"><div align="center"><strong>Employee Log In</strong></div>
</td>
</tr>
<tr> 
<td width="27%">Username</td>
<td width="4%">:</td>
<td width="69%"><input name="myusername" type="text" id="myusername2"></td>
</tr>
<tr> 
<td>Password</td>
        <td>:</td>
        <td><input name="mypassword" type="password" id="mypassword2"></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td><input type="submit" name="Submit" value="Login"></td>
      </tr>
    </table>
</td>
</form>
</tr>
</table>

<?php
// Start the session
session_start();
echo "Welcome ".$_SESSION['user']."!";
?>

PHP脚本:

<?php
session_start();

$host="db659279157.db.1and1.com"; // Host name 
$username="dbo659279157"; // Mysql username 
$password="password1"; // Mysql password 
$db_name="db659279157"; // Database name 
$tbl_name="users"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and 
password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){

$_SESSION['user'] = $myusername;
echo "Welcome ".$_SESSION['user']."!";
echo "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.morgan-
data.co.uk/logInHome.php\">";
} else {
echo "<p>Wrong Username Or Password, Please Press Back To Try Again</p>";
}
?>

成功登录后用户指向的页面:

<body>
<div align="center">
<table>
<tr> 
<td><div align="center"><a href="../php/insert2.php"><img 
src="../graphics/timesheet.jpg" width="225" height="225" border="0"></a>
</div></td>
<td><div align="center"><a href="view.php"><img 
src="../graphics/planner.jpg" width="240" height="175" border="0"></a></div>
</td>
<td><div align="center"><a href="storeFinder.htm"><img 
src="../graphics/location.gif" width="240" height="175" border="0"></a>
</div></td>
</tr>
<tr>
<td><div align="center">Submitt Timesheet</div></td>
<td><div align="center">View Planner</div></td>
  <td><div align="center">Find Store Address</div></td>
</tr>
</table>
</div>
<?php

echo  "Welcome ".$_SESSION['user']."!";

?>

1 个答案:

答案 0 :(得分:0)

session_start();放在HTML文档的开头,如下所示:

<?php
    session_start();
?>
<!DOCTYPE ....