2016-12-12 4 views
0

Я пытаюсь создать регистрационную форму пользователя с PHP, хотя она не работает. Я не получаю сообщений об ошибках и никаких указаний о том, что не так. Не могли бы вы мне помочь?Неопределенный индекс: ошибка формы PHP?

<!doctype html> 
<html> 
<head> 
</head> 
<body> 
<form method="POST" enctype="multipart/form-data" action="<?PHP echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" accept-charset="UTF-8"> 
    <h4><label>Sign up</label></h4> 
    <p><label>Username<strong>*</strong><br> 
      <input type="text" size="48" name="username"></label></p> 
    <p><label>Password<strong>*</strong><br> 
      <input type="password" size="48" name="password" ></label></p> 
    <p><label>Email<br> 
      <input type="email" size="48" name="email"></label></p> 
    <p><input type="submit" name="sendfeedback" value="Sign up"></p> 
</form> 
<?php 
$servername = "localhost"; 
$username = "safsom2"; 
$password = "somil888"; 
$dbname = "appDB"; 
// Create connection 
$conn = new mysqli($servername, $username, $password); 
// Check connection 
if ($conn->connect_error) { 
    die("Failed connecting to user database : " . $conn->connect_error); 
} 
echo 'Success connecting to user database.'; 
if (isset($_POST['sendfeedback'])) { 
    $uname = $_POST['username']; 
    $passwd = $_POST['password']; 
    $email = $_POST['email']; 
    if (!$conn->query("INSERT INTO users (username, password, email) 
VALUES ('$uname', '$passwd', '$email', '".$_SERVER['REMOTE_ADDR']."')")) { 
     echo '<br>Failed account creation'; 
    } 
    else { 
     echo '<br>Created account'; 
    } 
} 
?> 
</body> 
</html> 
+0

а) почтовый индекс здесь, б) как вы получаете "Undefined индекс:" и нет никаких сообщений об ошибках? –

+0

Вы также должны использовать подготовленные инструкции для этого - поскольку этот фрагмент кода теперь, он уязвим для SQL-инъекции. Kickoff: http://php.net/manual/en/mysqli.prepare.php – Qirel

+0

Не похоже, что «* Undefined index ... *» в любом случае поступает из формы, вы уверены, что это правильный код, показать нам? Какой точный индекс не определен? – Qirel

ответ

0

Вы передаете 4 значения, но только назначьте 3 поля.

"INSERT INTO users (username, password, email) 
VALUES ('$uname', '$passwd', '$email', '".$_SERVER['REMOTE_ADDR']."')" 

Должно быть что-то вроде:

"INSERT INTO users (username, password, email, ip_address) 
VALUES ('$uname', '$passwd', '$email', '".$_SERVER['REMOTE_ADDR']."')" 
Смежные вопросы