У меня есть некоторый код PHP и HTML, который должен отправлять данные из формы в мою базу данных MySQL. Однако при нажатии кнопки «Отправить» в форме страница перезагружается и ничего не происходит. Нет эха или что-нибудь. HTML находится в том же файле, что и файл PHP.
PHP
<?php
if(isset($_POST['submit'])){
$usernamep = $_POST['usernameinput'];
$passwordp = $_POST['passwordinput'];
$servername = "localhost";
$username = "USERNAMECENSOR";
$password = "PASSWORDCENSOR";
$dbname = "database";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO accounts (username, password)
VALUES ('$usernamep', '$passwordp')";
// use exec() because no results are returned
$conn->exec($sql);
echo "Success";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
}
?>
HTML
<form method="POST" action="">
<input type="text" name="usernameinput"><br>
<input type="password" name="passwordinput"><br>
<input type="submit" class="button" value="Sign in">
</form>
Замечания: Я знаю, что этот код в настоящее время подвергается внедрению SQL, и пароль не зашифрован. Это временный стартовый код в попытке заставить его работать первым.
Вам не хватает name
атрибут в submit
кнопка, добавить name="submit"
,
<form method="POST" action="">
<input type="text" name="usernameinput"><br>
<input type="password" name="passwordinput"><br>
<input type="submit" name="submit" class="button" value="Sign in">
</form>
Ваш тест неверен. У вас нет ввода с именем «submit» (с атрибутом name = submit). Так должно быть:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
...
}
Широкий тест, подобный этому, даже не требует именованной отправки. HTML-форма может быть даже опубликована на другом событии с использованием jQuery или JavaScript.
В вашем PHP
файл, который вы используете isset($_POST['submit'])
, У вас нет form input
с name="submit"
, Вы можете сделать вашу кнопку отправки
<input type="submit" name="submit" class="button" value="Sign in">
Вы должны включить свой php-файл в действие тега form.
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']?>">
<input type="text" name="usernameinput"><br>
<input type="password" name="passwordinput"><br>
<input type="submit" class="button" value="Sign in">
</form>