【发布时间】:2011-07-21 04:43:05
【问题描述】:
我正在尝试循环浏览会话。但我似乎无法得到预期的结果。 我仍在尝试探索事物。所以请教我一个更好的方法来做到这一点。如果您发现我的代码不安全或不合适。 首先我有这个登录表单:
<form name="x" action="login.php" method="post">
Username:<input type="text" name="uname" value=""></input><br/>
Password:<input type="password" name="pword" value=""></input>
<input type="submit" value="login"></input>
</form>
如果在 mysql 数据库中找到记录,这里的 login.php 会设置会话:
<?php
require_once("conn.php");
$username=$_POST['uname'];
$pword=md5($_POST['pword']);
echo $username."<br/>";
echo $pword;
$check=mysql_query("SELECT * FROM users WHERE Uname='$username' AND Hpword='$pword'");
if(mysql_num_rows($check)==0){
header('Location:loginform.php');
}else{
session_start();
while($result=mysql_fetch_assoc($check)){
$_SESSION['uid'].=$result['ID'];
$_SESSION['uname'].=$result['Uname'];
}
}
?>
这是在会话中循环的文件:
<?php
session_start();
echo "Logged in users:<br/>";
foreach($_SESSION as $sir){
}
echo "User id: ". $_SESSION['uid']."<br/>";
echo "Username: ".$_SESSION['uname']."<br/>";
?>
我明白了:
虽然我期待得到这样的东西:
用户 ID:1 用户名:哟
用户 ID:2 用户名:max
【问题讨论】:
-
尽量避免SQL注入或问题:将POST数据插入查询时使用
mysql_real_escape_string() -
@Frosty only string 来自 any 来源的数据。
-
显然,但是感谢您为任何阅读本文的初学者指出这一点。