Прежде чем кто-нибудь скажет, что это дубликат, я проверил и попробовал решения из этого ранее заданного вопроса. Я думаю, что мой вопрос другой, потому что у меня нет отдельного php файла - он закодирован с тегами в моем HTML (так что все в одном документе).
Вот мой PHP (информация о базе данных оставлена пустой):
<?php
session_start();
$dbhost = '****';
$dbuser = '****';
$dbpass = '****';
$dbname = '****';
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$email=$_POST['email'];
$query="INSERT INTO tableName(email)
VALUES('$email')";
mysqli_free_result($result);
mysqli_close($connection);
?>
Вот моя форма Materialize/HTML:
<form action="/thankyou.php" method="POST">
<p class="input-header">Enter Your Email:</p>
<input id="email" type="email" name= "email" class="validate" required>
<br></br>
<input class="waves-light btn indigo lighten-2" type="submit">
<br></br>
<br></br>
<br></br>
</form>
Любые идеи, почему он не работает? Я проверил базу данных MAMP phpmyadmin, и ничего не добавляется. Пожалуйста, дайте мне знать, если у вас есть предложения! Спасибо!
Это поможет вам: поскольку вы не добавили mysqli_query
и из-за этого не добавляли данные. Также здесь я проверяю, отправлена ли форма, так как вы упомянули об этом один файл.
<?php
// check if form is submitted
if(!empty($_POST['email'])) {
$dbhost = '****';
$dbuser = '****';
$dbpass = '****';
$dbname = '****';
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
// this line prevents sql injection
$email = mysqli_real_escape_string($connection, $_POST['email']);
$query="INSERT INTO tableName(email) VALUES('$email')";
// this statement runs your query and actually adds data to mysql
if (mysqli_query($connection, $query)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}
mysqli_close($connection);
}
?>