-6

根据第 14 行的标题,我收到一个错误。我对 php 很陌生,我登录了,这段代码在登录到索引页面时抛出了一个错误。我可以登录(不太确定如何登录)。

<?php
include 'functions.php';
include_once("config.php");
session_start();
if(!isset($_SESSION["email"])){
  header("location: login.php");
  exit();
}
$id = preg_replace('#[^0-9]#i', '',$_SESSION["id"]);
$email = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["email"]);
$password = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["password"]);
include "db_connect.php";
$sql=mysql_query("SELECT * FROM 'members' WHERE id - ? LIMIT 1"); // query the person
$existCount=mysql_num_rows($sql); // count the nums
if ($existCount==1){//evaluate the count
  echo "Your login session data is not on record in the database";
  exit();
}
?>
4

2 回答 2

0

您的 SQL 语句不完整:

代替

    $sql=mysql_query("SELECT * FROM 'members' WHERE id - ? LIMIT 1"); // 查询人

用这个

    $sql=mysql_query("SELECT * FROM members WHERE id ="."'".$id."'"." and password ="."'".$password."' LIMIT 1"); // 查询人

这当然是假设您按原样使用密码(这不是一个好主意)。您应该在将其存储到数据库之前对其进行编码。

于 2013-10-20T16:40:28.227 回答
-1

只需像这样更正您的查询语句:

<?php
 $sql = "SELECT * FROM `members` WHERE id = '{$id}' LIMIT 1";
 // `members` can also be simply members only but don't use quotes like ('', or "")
 ?>

查询此语句,您将摆脱问题。
一点建议 mysql_* 已正式弃用,因此请使用mysqliPDO

于 2013-10-20T16:40:13.110 回答