관리자를 위한 로그인 페이지를 만들고 있는데 PHP 코드의 while 루프가 작동하지 않습니다. 여기에 코드를 남겨두겠습니다(코드에 스페인어가 있어서 죄송합니다)
//연결 만들기 $conn = mysqli_connect($servername, $username, $password, $dbname); // 연결 확인 만약 (!$conn) { echo "서버 접속 중 오류가 발생했습니다."; } $사용자 이름 = $_POST["사용자 이름"]; if ($username != "") { $password = $_POST["비밀번호"]; $accountLevel = $_POST["accountLevel"]; $content = $_POST["content"]; $sql = "비밀번호 선택, `accounts1`에서 accountLevel, WHERE 사용자 이름='".$username."'"; $result = mysqli_query($conn, $sql); while ($post = $result->fetch_object()) { if ($post->password != $password) { echo "잘못된 비밀번호입니다"; }else if ($post->accountLevel != $accountLevel) { echo "오류: 게시할 수 없습니다. 계정 수준 오류입니다."; }또 다른{ $sql = "`blogposts`(`title`, `contentHTML`, `publishDate`, `commentSection`, `likes`, `dislikes`, `publisher`, `selector`) VALUES('','"에 삽입합니다. $_POST['content']."','".$_POST['publishDate']."','',0,0,'".$_POST['username']."','')" ; /*$fetchObj = mysqli_fetch_object($QueryResult); var_dump($fetchObj);*/ 에코 "보냄"; } } }또 다른{ echo "지정된 사용자가 없습니다."; }
while 루프를 더 간단한 할당으로 대체할 수 있는 방법이 있습니까(로그인 페이지이고 하나의 계정만 확인하므로)
왜 while 루프가 작동하지 않나요? 이전에 다른 페이지에서 동일한 코드를 사용한 적이 있는데 완벽하게 작동했으며 논리 오류도 표시되지 않았습니다.
함수가 있는 스크립트에서 보낸 요청인데, 저는 Php 페이지에 요청을 사용합니다. 그런 다음 에코를 읽고 화면에 표시합니다. (이 정보가 필요한 사람이 있을 경우를 대비해)
실제 결과를 얻었는지 테스트하기 위해
while
循环,只需一次捕获fetch_object()
,并使用if
를 사용하는 대신.또한 준비된 진술을 사용해야 합니다. 아래에서 그 방법을 보여드리겠습니다.
일반 텍스트 비밀번호를 저장해서는 안 되며
으아악password_hash()
和password_verify()
를 사용해야 합니다. 아래에는 해당 코드가 표시되지 않습니다(등록 스크립트에 해당 변경 사항이 필요함).