Php 当用户在第二次尝试时首次登录时,会话不会启动
请你帮个忙,我对php还不熟悉,但开始有点紧张,但是会话给我带来了一个问题,我已经在这上面呆了一段时间了 我有一个基本的html/php登录表单,表单应该将表单中的用户名放入会话中,然后其余的php脚本使用该会话数据进行各种sql查询 我的问题是登录用户名只会在第二次尝试时进入会话,第一次尝试不会导致任何内容进入会话并返回空白?但是,如果我返回并重复日志,数据就会进入会话,好吗 我一直在寻找已经发布的答案,最相关的人告诉我在重定向url中添加完整的网址,但这没有效果 请有人帮帮我,因为这快把我逼疯了 以下是html表单:Php 当用户在第二次尝试时首次登录时,会话不会启动,php,session-variables,Php,Session Variables,请你帮个忙,我对php还不熟悉,但开始有点紧张,但是会话给我带来了一个问题,我已经在这上面呆了一段时间了 我有一个基本的html/php登录表单,表单应该将表单中的用户名放入会话中,然后其余的php脚本使用该会话数据进行各种sql查询 我的问题是登录用户名只会在第二次尝试时进入会话,第一次尝试不会导致任何内容进入会话并返回空白?但是,如果我返回并重复日志,数据就会进入会话,好吗 我一直在寻找已经发布的答案,最相关的人告诉我在重定向url中添加完整的网址,但这没有效果 请有人帮帮我,因为这快把我逼
<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']."!";
?>
启动会话;在HTML文档的开头,如下所示:
<?php
session_start();
?>
<!DOCTYPE ....
我当然希望那些mysql凭据和realMySQL函数被弃用和删除,因为PHP7.0请切换到使用或从不存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用密码\u散列。在散列之前,不需要对它们执行任何操作或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。说。即使是这样也不安全!是的,非常感谢你的工作@欢迎光临。