Php 使用$\u会话从用户表获取id
我有一个简单的登录,当用户登录后,他们可以上传标题和评论(还有一张图片,但我们可以忽略它,因为这样可以正常工作)到数据库。我想要的是将当前登录的用户的用户id也插入到数据库中。这是我当前的代码 login.phpPhp 使用$\u会话从用户表获取id,php,sql,Php,Sql,我有一个简单的登录,当用户登录后,他们可以上传标题和评论(还有一张图片,但我们可以忽略它,因为这样可以正常工作)到数据库。我想要的是将当前登录的用户的用户id也插入到数据库中。这是我当前的代码 login.php <?php session_start(); if(isset($_SESSION["user"])){ header("location:index.php"); exit(); } ?> <?php if(isset($_POST["user
<?php
session_start();
if(isset($_SESSION["user"])){
header("location:index.php");
exit();
}
?>
<?php
if(isset($_POST["username"]) && isset($_POST["password"])){
// Filter everything except letters and numbers
$user = preg_replace('#^A-Za-z0-9#i','',$_POST["username"]);
$password = preg_replace('#^A-Za-z0-9#i','',$_POST["password"]);
// Connect to mySQL
include"assets/scripts/sql_connect.php";
// Query the person
$sql = $conn->query("SELECT id FROM user_login WHERE user_name='$user' AND user_password='$password' LIMIT 1");
// Make sure person exists
$existCount = $sql->rowCount();
// Evaluate the count
if($existCount == 1){
while($row = mysql_fetch_array($sql)){
$id = $row["id"];
}
$_SESSION["id"] = $id;
$_SESSION["user"] = $user;
$_SESSION["password"] = $password;
header("location:index.php");
exit();
}else{
echo"Login details incorrect, try again <a href='index.php'>Click here</a>";
exit();
}
}
?>
使用mysql\u fetch\u assoc()
而不是mysql\u fetch\u array()
试一试
if($existCount==1){
while($row=mysql\u fetch\u assoc($sql)){
$id=$row[“id”];
$\会话[“id”]=$id;
打破
}
$\u会话[“用户”]=$user;
$\u会话[“密码”]=$password;
标题(“location:index.php”);
退出();
}否则{
echo“登录详细信息不正确,请重试”;
退出();
}
希望有帮助:)设法解决它。我变了
while($row = mysql_fetch_array($sql)){
在login.php中
while($row = $result->fetch(PDO::FETCH_ASSOC)){
我已经在login.php中启动了会话。对不起,我应该在我原来的帖子中也包括这一点。我已经编辑了我的原始帖子,以反映这个.echo$_会话[“id”]在插入查询之前检查它的值并告诉我。我也许能帮上忙。它根本没有回声。我可以回显,它会显示当前登录用户的用户名,但不会给出任何信息。它是空的。如果我在您编辑后这样做,我会收到通知:未定义的索引:id在C:\wamp。。。。。错误。这意味着$\u会话[“id”]=$id;没有执行。在“我的代码”中输入之前,请尝试打印($row)。如果不打印,这意味着while循环未执行。如果您在sql查询之后执行echo$id
,它是否正在打印某些内容?不,它不打印任何内容。因此,这是sql查询的问题,而不是来自会话的问题。在进行sql查询之前,请检查$user
和$password
是否如您所愿。我不确定“如您所愿”是什么意思。我想说的是回显这些变量,看看它们是否良好或是否有问题(如果它们不等于您发送的值)
while($row = mysql_fetch_array($sql)){
while($row = $result->fetch(PDO::FETCH_ASSOC)){