我正在尝试仅在我正在构建的社交网络中选择特定数据。登录的会话是$SESSION['user_login']
,它似乎没有选择我需要的行。有人有任何想法吗?
<?php
if (isset($_GET['u'])) {
$username = mysql_real_escape_string($_GET['u']);
if (ctype_alnum($username)) {
//check user exists
$check = mysql_query("SELECT username, first_name FROM users WHERE username='$username'");
if (mysql_num_rows($check)===1) {
$get = mysql_fetch_assoc($check);
$username = $get['username'];
$firstname = $get['first_name'];
}else{
echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";
exit();
}
}
}
答案 0 :(得分:0)
正如评论mysql_query中提到的那样,不推荐使用,并建议使用更安全的扩展。选择行是什么意思?使用您的选择查询,您将只获得1行,因为您使用唯一的用户名访问登录信息。您的代码是正确的,但您无法知道结果中是否存在该行。为了调试,你必须回应它。但是你不会在你的浏览器上得到任何东西,因为你正在使用执行(这就是我所说的)php标签,它们不会返回结果。您需要使用而不是让您的结果得到回应。
这是你的修复 -
<?php
if (isset($_GET['u'])) {
$username = mysql_real_escape_string($_GET['u']);
if (ctype_alnum($username)) {
//check user exists
$check = mysql_query("SELECT username, first_name FROM users WHERE username='$username'");
if (mysql_num_rows($check)===1) {
$get = mysql_fetch_assoc($check);
$username = $get['username'];
$firstname = $get['first_name'];
echo $username;
echo $first_name;
}
else
{
echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";
exit();
}
}
}
希望这会有所帮助..
DINS