mysql — базовая регистрация php / sql не работает … (пустая страница после ввода данных и без входа в базу данных)

Я пытаюсь сделать базовую форму регистрации на WAMP, я пробовал с учебниками и книгой.

Кажется, у меня возникла проблема после отправки данных на веб-страницу.

Я создал базу данных и таблицы и можно увидеть здесь …
http://oi57.tinypic.com/2j47hux.jpg

Вот код, который у меня есть на моей HTML-странице:

    <table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#536977">
<tr>
<form method="post" action="register.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#536977">
<tr>
<td colspan="3"><strong>Register: </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input type="text" id="username"></td>
</tr>

<tr>
<td width="78">First Name</td>
<td width="6">:</td>
<td width="294"><input type="text" id="firstname"></td>
</tr>
<tr>
<td width="78">Last Name</td>
<td width="6">:</td>
<td width="294"><input type="text" id="lastname"></td>
</tr>

<tr>
<td width="78">Age</td>
<td width="6">:</td>
<td width="294"><input type="text" id="age"></td>
</tr>

<tr>
<td>Email</td>
<td>:</td>
<td><input type="text" id="email"></td>
</tr>

<tr>
<td>Password</td>
<td>:</td>
<td><input type="text" id="password"></td>
</tr><tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" value="Login"></td>
</tr>
</table>
</td
</form>
</tr>
</table>

Php я ссылаюсь на это ..

<?php
$con = mysqli_connect("localhost","root","","membersapp");
if (!$con)
{
die('Could not connect: ' . mysqli_error($con));
}

$sql="INSERT INTO memberstable (username, firstname, lastname, age, email, password)
VALUES
('$_POST[username]','$_POST[firstname]','$_POST[lastname]','$_POST[age]','$_POST[email]','$_POST[password]' )";

if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "$_POST[firstname] $_POST[lastname] has been added";

mysqli_close($con);
?>

Я запустил небольшой скрипт php, чтобы увидеть, подключается ли php к базе данных, и он подключен.

Есть идеи, что не так?

ОК, код отредактирован ..

    <?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$con = mysqli_connect("localhost","root","","membersapp");
if (!$con)
{
die('Could not connect: ' . mysqli_error($con));
}

$sql="INSERT INTO memberstable (username, firstname, lastname, age, email, password)
VALUES
('$_POST[username]','$_POST[firstname]','$_POST[lastname]','$_POST[age]','$_POST[email]','$_POST[password]' )";

if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "$_POST[firstname] $_POST[lastname] has been added";

mysqli_close($con);
?>

а также

    <form method="post" action="register.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#536977">
<tr>
<td colspan="3"><strong>Register: </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input type="text" id="username" name="username"></td>
</tr>

<tr>
<td width="78">First Name</td>
<td width="6">:</td>
<td width="294"><input type="text" id="firstname" name="firstname"></td>
</tr>
<tr>
<td width="78">Last Name</td>
<td width="6">:</td>
<td width="294"><input type="text" id="lastname" name="lastname"></td>
</tr>

<tr>
<td width="78">Age</td>
<td width="6">:</td>
<td width="294"><input type="text" id="age" name="age"></td>
</tr>

<tr>
<td>Email</td>
<td>:</td>
<td><input type="text" id="email" name="email"></td>
</tr>

<tr>
<td>Password</td>
<td>:</td>
<td><input type="password" id="password" name="password"></td>
</tr><tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" value="Login"></td>
</tr>
</table>
</td>
</form>

-1

Решение

В вашем коде есть несколько ошибок, поэтому, пожалуйста, прочитайте его до конца моего ответа.


Все ваши входы не имеют атрибутов имени. Вы не можете полагаться на id атрибут один.

+ Изменить

<input type="text" id="username">

до (минус все ^ персонажи конечно) и чтобы соответствовать $_POST[username]

<input type="text" id="username" name="username">
^^^^^^^^^^^^^^^
  • и следуйте тому же соглашению для других.

Редактировать:
Также ваша колонка называется Age и не ageНо я сомневаюсь, что это будет иметь значение. Попробуйте изменить его, чтобы он соответствовал буквенному регистру.

Однако, делая это таким образом, вы открыты для SQL-инъекция. использование готовые заявления, или же PDO с готовые заявления.

добавлять Отчет об ошибках в начало вашего файла (ов), который поможет найти ошибки.

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

который бы поймал ошибки.

Примечание: Отчеты об ошибках должны выполняться только на стадии подготовки, а не на производстве.


Пароли

Я также заметил, что вы можете хранить пароли в виде простого текста. Это не рекомендуется.

Используйте одно из следующего:

Другие ссылки:


Примечание:

Для ввода пароля следует использовать password тип вместо text

<input type="password" id="password" name="password">

в противном случае пароли будут отображаться в читаемом формате при вводе.


Чего-то еще не хватает

  • Вам также не хватает > в </td что может повлиять на ваш стол, поэтому измените его на </td>
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]