Я был повсюду в Google и пытался выяснить, почему это продолжается. Я знаю, что на этом сайте были заданы подобные вопросы, но их ответы мне не удачны. Он подключается к базе данных, но не отображает запись (пустая запись для каждого столбца). В php-коде есть дополнительные комментарии для тестирования. Любая помощь приветствуется.PHP не вставляет данные в базу данных MYSQL. Вставляет пустую строку вместо
Вот HTML-форм
<form action="../controller/register1.php" method="POST" >
<fieldset>
First Name <input class="inputs" type="text" name="firstname" placeholder="Enter your firstname" required>
<br>
Last Name <input class="inputs" type="text" name="lastname" placeholder="Enter your lastname" required>
<br>
User Name <input class="inputs" type="text" name="username" placeholder="Enter your username" required>
<br>
Password <input class="inputs" type="password" name="password" required>
<br>
Email <input class="inputs" type="text" name="email" >
<br>
<input class="inputs" type="submit" name="submit" value="Register" />
</fieldset>
Вот PHP
<?php
$connection = mysqli_connect("localhost","charcoun_donaldh","Rusty1992","charcoun_phplogin","3306") or die("Could not connect!");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//$firstname = stripslashes($firstname);
$firstname = mysqli_real_escape_string($connection, $_POST['$firstname']);
//$lastname = stripslashes($lastname);
$lastname = mysqli_real_escape_string($connection, $_POST['$lastname']);
//$username = stripslashes($username);
$username = mysqli_real_escape_string($connection, $_POST['$username']);
//$password = stripslashes($password);
$password = mysqli_real_escape_string($connection, $_POST['$password']);
//$email = stripslashes($email);
$email = mysqli_real_escape_string($connection, $_POST['$email']);
$sql = "INSERT INTO users (firstname, lastname, username, password, email)
VALUES ('$firstname','$lastname','$username','$password','$email')"; //Use ".md5($password)." for encrypted
//$result = mysqli_query($connection, $sql);
if(!mysqli_query($connection, $sql)){
die('Error: ' . mysqli_error($connection));
}
else{
echo "<br/><h3>You have been registered successfully. Click here to return <a href='../view/index.php'>Home.</a></h3>";
}
?>
** ПРЕДУПРЕЖДЕНИЕ **: при использовании 'mysqli' вы должны использовать [параметризованные запросы] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) и [' bind_param' ] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить данные пользователя в ваш запрос. ** НЕ ПРИНИМАЙТЕ ** использовать ручное экранирование и интерполяцию строк или конкатенацию, чтобы выполнить это, потому что вы создадите серьезные [SQL-инъекции ошибок] (http://bobby-tables.com/), если вы когда-нибудь забудете что-то избежать. – tadman
** ПРЕДУПРЕЖДЕНИЕ **: Написание собственного уровня контроля доступа непросто, и есть много возможностей, чтобы заставить его серьезно ошибиться. Пожалуйста, не пишите свою собственную систему аутентификации, если какая-либо современная [инфраструктура разработки] (http://codegeekz.com/best-php-frameworks-for-developers/), например [Laravel] (http://laravel.com/) поставляется с надежной [системой аутентификации] (https://laravel.com/docs/5.2/authentication). В абсолютном порядке следуйте [рекомендуемым рекомендациям по безопасности] (http://www.phptherightway.com/# безопасность) и никогда не хранит пароли как обычный текст. MD5 также опасно устарел. – tadman
Я уверен, что вы не можете получить переменные POST, подобные этому '$ _POST ['$ firstname']', попробуйте удалить '$'. – Amous