나는 'user', 'pass', 'ID'의 3 개의 엔트리를 가지는 간단한 데이터베이스 테이블 "accounts"를 가지고있다. ID는 정수입니다.mysqli_fetch_array()는 아무것도 가져 오지 않는다
테이블에서 ID를 검색하여 $ _SESSION [ 'id']에 저장하려고하는데 행운이 없습니다.
여기에 코드입니다 :
session_start();
// Checks to see if the input account is valid
$result = mysqli_query($con,"SELECT * FROM accounts
WHERE user='$_POST[user]'
AND pass='$_POST[pass]'");
//Check to see if account exists
if(!mysqli_fetch_array($result))
{
$_SESSION['loggedin'] = false;
}
else
{
$_SESSION['loggedin'] = true;
$_SESSION['user'] = $_POST['user'];
$id = mysqli_fetch_array($result);
$_SESSION['id'] = $id['ID'];
echo $_SESSION['id'];
}
//header('Location: index1.php/');
?>
아무것도 에코 $ _SESSION [ 'ID']에서 나오는되지 않습니다. 나는 $ id [ 'ID'] 자체를 반향 시키려고 시도했지만 어느 것도 작동하지 않습니다.
내 index1.php 페이지에서 $ 결과가 WHERE 절과 SELECT 절에 대한 AND 절을 사용하지 않는다는 점을 제외하고는 동일한 코드 비트로 정보를 검색 할 수 있습니다.
반환되는 행을 계산할 때 어떤 결과가 발생합니까? mysqli_num_rows ($ result) – dgig
다른 작업을하기 전에 [SQL injection bugs] (http://bobby-tables.com/)에서 mysqli의 [SQL 자리 표시 자 기능] (http : /bobby-tables.com/php). 여기서하고있는 일은 무모한 나쁜 습관을 보여 주며 심각한 문제를 일으킬 수 있습니다. $ _POST 데이터를 이스케이프하지 않고 쿼리에 넣을 수는 없습니다 **. – tadman
코딩에있어 가능한 차이가 있음을 알고 있으며 제공된 링크를 읽 겠지만 지금 당장은 보호 문제에 너무 깊이 들어가기 전에 개념을 보완하려고합니다. 도움을 주셔서 감사합니다. –