Apabila menggunakan objek ambil dalam PHP, gelung while tidak boleh digunakan untuk berkuat kuasa
P粉803444331
2023-08-16 11:49:58
<p>Saya sedang membuat halaman log masuk untuk pentadbir, tetapi gelung while dalam kod php tidak berfungsi. Saya akan meninggalkan kod di sini (maaf untuk bahasa Sepanyol dalam kod) </p>
<pre class="brush:php;toolbar:false;">//Buat sambungan
$conn = mysqli_connect($nama pelayan, $nama pengguna, $kata laluan, $dbname);
// Semak sambungan
jika (!$conn) {
echo "Ralat berlaku semasa menyambung ke pelayan.";
}
$nama pengguna = $_POST["nama pengguna"];
jika ($nama pengguna != "") {
$kata laluan = $_POST["kata laluan"];
$accountLevel = $_POST["accountLevel"];
$kandungan = $_POST["kandungan"];
$sql = "PILIH kata laluan, Tahap akaun DARI `accounts1` WHERE nama pengguna='".$nama pengguna."'";
$result = mysqli_query($conn, $sql);
manakala ($post = $result->fetch_object()) {
if ($post->password != $password) {
echo "Kata laluan salah";
}lain jika ($post->accountLevel != $accountLevel) {
echo "Ralat: Tidak dapat diterbitkan. Ralat peringkat akaun.";
}lain{
$sql = "MASUKKAN KE DALAM `blogposts`(`title`, `contentHTML`, `publishDate`, `commentSection`, `likes`, `dislikes`, `publisher`, `selector`) NILAI ('','". $_POST['kandungan']."','".$_POST['publishDate']."','',0,0,'".$_POST['username']."','')" ;
/*$fetchObj = mysqli_fetch_object($QueryResult);
var_dump($fetchObj);*/
gema "dihantar";
}
}
}lain{
echo "Tiada pengguna dinyatakan";
}</pre>
<ul>
<li><p>Adakah terdapat cara untuk menggantikan gelung while dengan tugasan yang lebih mudah (memandangkan ia adalah halaman log masuk dan hanya menyemak satu akaun)</p>
</li>
<li><p>Mengapa gelung while tidak berfungsi? Saya telah menggunakan kod yang sama sebelum ini pada halaman lain dan ia berfungsi dengan baik dan saya tidak melihat sebarang ralat logik. </p>
</li>
</ul>
<p>Ini ialah permintaan yang dihantar daripada skrip dengan fungsi dan saya menggunakan permintaan ke halaman Php. Selepas itu ia membaca gema dan memaparkannya pada skrin. (Sekiranya sesiapa memerlukan maklumat ini)</p>
Daripada menggunakan
while
循环,只需一次捕获fetch_object()
,并使用if
untuk menguji sama ada anda mendapat hasil yang benar.Anda juga harus menggunakan pernyataan yang disediakan, saya tunjukkan cara melakukannya di bawah.
Anda tidak boleh menyimpan kata laluan teks yang jelas, anda harus menggunakan
password_hash()
和password_verify()
. Saya tidak menunjukkan kod itu di bawah (ia memerlukan perubahan yang sepadan dengan skrip pendaftaran anda).