我得到了一段代码来取回用户名和密码,看看它们是否匹配。我现在想将 session 变量设置为表中的“点”值,该值与用户名和密码位于同一行。可以做什么?
<?php $username="asdin";
$password="1sdA2";
$database="a75sdting";
$pword = $_REQUEST['pword'];
$uname = $_REQUEST['uname'];
mysql_connect('mysqsdst.com',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = mysql_query("SELECT * FROM `username` WHERE `password` = '$pword' AND `username` = '$uname'");
$exsists = 0;
WHILE($rows = mysql_fetch_array($query)){
$exsists = 1;
break;
}
if ($exsists){
$_SESSION['usern']=$uname;
$_SESSION['logged']=1;
header('Location: http://wwsdipts/logged2.php');
}
mysql_close();
?>
我想设置 $_SESSION['points'] = $row[points] 我猜...但我认为这是不正确的
最佳答案
<?php
// start session (required on every page that uses sessions
session_start();
// db auth
$username="asdin";
$password="1sdA2";
$database="a75sdting";
// user auth
$pword = $_POST['pword']; // should use either $_POST or $_GET, NOT $_REQUEST
$uname = $_POST['uname']; // should use either $_POST or $_GET, NOT $_REQUEST
// open db connection
$conn = mysql_connect('mysqsdst.com',$username,$password);
@mysql_select_db($database,$conn) or die( "Unable to select database");
// check user
$query = mysql_query("SELECT * FROM `username` WHERE `password` = '$pword' AND `username` = '$uname'");
if(mysql_num_rows($query)){
// user exists
$row = mysql_fetch_assoc($query);
$_SESSION['usern']=$uname;
$_SESSION['logged']=1;
header('Location: http://wwsdipts/logged2.php');
}else{
header('Location: http://wwsdipts/login.php'); // take them back to login page if incorrect details
}
// close db connection
mysql_close($conn);
?>
我已经整理了你的代码,请看一下注释。以下内容也毫无值(value):
- 您应该使用某种针对 SQL 注入(inject)的保护措施,例如
mysql_real_escape_string($_POST['uname'])
- 密码相同 - 所有使用 session 变量的页面都需要 session_start()
- 您不应使用 $_REQUEST,而应使用 $_POST 或 $_GET(了解相关内容)
- 您实际上有一个名为
用户名
的表吗?您应该阅读一些有关数据库设计的内容,该表的更好名称/用途是 users,因为该表将保存用户(唯一 ID、用户名和密码的组合。 - 我不知道你所说的点是什么意思,但要访问“用户名”表中的任何列名,请在设置后使用
$row['column-name']
($row = mysql_fetch_assoc($query);
) - 如果您打算将来大量使用 PHP,您应该查找 PDO,它是处理 SQL 的绝佳类。
关于php - mysql - 从表行中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366448/