ホームページ  >  に質問  >  本文

PHP でフェッチ オブジェクトを使用する場合、while ループを使用して有効にすることはできません

<p>管理者用のログインページを作成していますが、PHP コードの while ループが機能しません。コードをここに残しておきます (コードにスペイン語が含まれていて申し訳ありません) </p> <pre class="brush:php;toolbar:false;">//接続を作成する $conn = mysqli_connect($servername, $username, $password, $dbname); // 接続を確認する if (!$conn) { echo "サーバーへの接続中にエラーが発生しました。"; } $ユーザー名 = $_POST["ユーザー名"]; if ($ユーザー名 != "") { $パスワード = $_POST["パスワード"]; $accountLevel = $_POST["accountLevel"]; $content = $_POST["コンテンツ"]; $sql = "SELECT パスワード、アカウントレベル FROM `accounts1` WHERE username='".$username."'"; $result = mysqli_query($conn, $sql); while ($post = $result->fetch_object()) { if ($post->パスワード != $パスワード) { エコー「パスワードが間違っています」; }else if ($post->accountLevel != $accountLevel) { echo "エラー: 公開できません。アカウント レベルのエラーです。"; }それ以外{ $sql = "INSERT INTO `blogposts`(`title`, `contentHTML`, `publishDate`, `commentSection`, `likes`, `dislikes`, `publisher`, `selector`) VALUES ('','". $_POST['コンテンツ']."','".$_POST['公開日']."','',0,0,'".$_POST['ユーザー名']."','')" ; /*$fetchObj = mysqli_fetch_object($QueryResult); var_dump($fetchObj);*/ エコー「送信済み」; } } }それ以外{ echo "ユーザーが指定されていません"; }</pre>
P粉803444331P粉803444331453日前538

全員に返信(1)返信します

  • P粉200138510

    P粉2001385102023-08-17 10:39:22

    while ループを使用する代わりに、fetch_object() を一度キャプチャし、if を使用して真の結果が得られるかどうかをテストします。

    プリペアドステートメントも使用する必要があります。その方法を以下に示します。

    クリアテキストのパスワードを保存せず、password_hash()password_verify() を使用する必要があります。以下ではそのコードは示しません (登録スクリプトに対応する変更が必要になります)。

    リーリー

    返事
    0
  • キャンセル返事