请你帮忙,我是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> </td>
<td> </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']."!";
?>
答案 0 :(得分:0)
将session_start();
放在HTML
文档的开头,如下所示:
<?php
session_start();
?>
<!DOCTYPE ....