#php #mysql #phpmyadmin #localhost
#php #mysql #phpmyadmin #localhost
Вопрос:
РЕДАКТИРОВАТЬ: теперь код работает. Добавлен некоторый код к исходному исходному коду ниже.
Итак, у меня есть база данных с именем payload, и в ней есть две таблицы; одна с именем users, а другая с именем tohere. В обеих этих таблицах всего два столбца; Имя пользователя и пароль. Таблица tohere пуста. Однако в таблице users есть две заполненные строки. В первой строке в качестве имени пользователя и пароля указаны admin и admin123 соответственно. Во второй строке в качестве имени пользователя и пароля указаны visitor и visitor123 соответственно. Существует HTML-форма с двумя полями ввода, в которых пользователи вводят имя пользователя и пароль. Теперь идея в том, что если имя пользователя и пароль, которые они вводят в форме, соответствуют записям в таблице users, я хочу, чтобы это содержимое было отправлено в таблицу tohere, которая в настоящее время пуста. Как мне это сделать?
Я попробовал следующий код, который, похоже, не работает;
<html>
<head>
<title>
</title>
<?php
$message = "";
$theusername = $_POST['userName'];
$thepass = $_POST['password'];
if (count($_POST) >
0) {
$conn = mysqli_connect("localhost", "root", "", "payload");
$result = mysqli_query($conn, "SELECT * FROM users WHERE userName='" . $_POST["userName"] . "' and password = '" . $_POST["password"] . "'");
$count = mysqli_num_rows($result);
if ($count == 0) {
$message = "Invalid Username or Password!";
} else {
$sqltwo = "INSERT INTO tohere (userName, password) VALUES ('$theusername', '$thepass')";
//The below if statement was missing.
if(!mysqli_query($conn, $sqltwo)){
echo "Failed!";
}
else{
echo "Success!";
}
}
}
?>
</head>
<body>
<form action="" method="post" name="frmUser">
<div class="message">
<?php if ($message != "") {echo $message;}?>
</div>
<table align="center" border="0" cellpadding="10" cellspacing="1" class="tblLogin" width="500">
<tr class="tableheader">
<td align="center" colspan="2">
Enter Login Details
</td>
</tr>
<tr class="tablerow">
<td>
<input class="login-input" name="userName" placeholder="User Name" type="text"/>
</td>
</tr>
<tr class="tablerow">
<td>
<input class="login-input" name="password" placeholder="Password" type="password"/>
</td>
</tr>
<tr class="tableheader">
<td align="center" colspan="2">
<input class="btnSubmit" name="submit" type="submit" value="Submit"/>
</td>
</tr>
</table>
</form>
</body>
</html>
Пока этот код работает, но только частично. Когда я ввожу имя пользователя и пароль не в таблице users, я получаю сообщение «Неверное имя пользователя или пароль!», Что нормально, но когда я ввожу записи, которые находятся в таблице users, форма не отправляется в таблицу tohere. На самом деле ничего не происходит. Просто пустой белый экран. Что дает?
Комментарии:
1. Белый экран? Проверьте журналы ошибок вашего сервера / включите (или увеличьте) отчеты об ошибках и, возможно, display_errors тоже.
2. Убедитесь, что у вас включен отчет об ошибках
ini_set('display_errors', 1);ini_set('display_startup_errors', 1);error_reporting(E_ALL);
3. В вашем состоянии else вы никогда не выполняете вставку.
4. вы не написали код для успешного выполнения
5. @jasinthpremkumar Хорошо заметил! Теперь это работает! Спасибо! Обновил мой вопрос решением.