2014-12-25 2 views
-2

У меня возникла проблема при запуске файла register.php. Мой PHP-код не принимает значения из переменной html.POST переменная, не принимающая значения

Запуск кода дает undefined index error.

Я использовал сервер MySQLi и WAMP.

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title></title> 
</head> 

<body> 
<form action="register.php" method="post"> 
<table width="200" border="1" align="center"> 
    <tr> 
    <td width="95">User Name </td> 
    <td width="89"><label> 
     <input name="uname" type="text" id="uname" /> 
    </label></td> 
    </tr> 
    <tr> 
    <td>User Password </td> 
    <td><label> 
     <input name="upass" type="text" id="upass" /> 
    </label></td> 
    </tr> 
    <tr> 
    <td>User Email </td> 
    <td><label> 
     <input name="uemail" type="text" id="uemail" /> 
    </label></td> 
    </tr> 
     <tr> 
    <td colspan="2"><label> 
    <div align="center"> 
     <input type="submit" name="Submit" value="Sign Up !!" /> 
     </div> 
    </label></td> 
    </tr> 
</table> 
</form> 
</body> 
</html> 
<?php 
$con=mysqli_connect('localhost','root','','firstdatabase'); 
if($con->connect_error) 
{ 
die('error:'.$con->connect_errno.')'.$con->connect_error); 
} 
$u_name=$_POST['uname']; 
$u_pass=$_POST['upass']; 
$u_email=$_POST['uemail']; 

$insert_row=$con->query("INSERT INTO user_index(user_name, user_pass, user_email) VALUES ($u_name, $u_pass, $u_email)"); 
if($insert_row) 
{ 
print 'Success'; 
} 
else 
{ 
die('error:'.$con->errno.')'.$con->error); 
} 

?> 
+0

, пожалуйста, опубликуйте полное сообщение об ошибке –

+0

И определите строку, в которой произошло. – GolezTrol

+0

Все ли код в одном файле? – chrki

ответ

0

Оберните свой код внутри функции isset() для ввода ввода. Поскольку это проверка перед установкой. Они обыкновение быть установлены перед отправкой формы и даст Неопределенные индексировать

<?php 
$con=mysqli_connect('localhost','root','','firstdatabase'); 
if($con->connect_error) 
{ 
die('error:'.$con->connect_errno.')'.$con->connect_error); 
} 
if(isset($_POST['Submit'])){ 
$u_name=$_POST['uname']; 
$u_pass=$_POST['upass']; 
$u_email=$_POST['uemail']; 

$insert_row=$con->query("INSERT INTO user_index(user_name, user_pass, user_email) VALUES ($u_name, $u_pass, $u_email)"); 
if($insert_row) 
{ 
print 'Success'; 
} 
else 
{ 
die('error:'.$con->errno.')'.$con->error); 
} 
} 
?> 
0

Вы должны изменить ваш запрос

$insert_row=$con->query("INSERT INTO user_index(user_name, user_pass, user_email) VALUES ('$u_name', '$u_pass', '$u_email')"); 

Но есть еще одна проблема с вашим кодом тоже. Пожалуйста, примите и узнайте, что такое SQL Injection

0

введите php-часть кода в register.php.

Переменные должны быть размещены от HTML до PHP, поэтому PHP может принимать его в переменных URL. Он не будет знать, что происходит, если вы поместите его в тот же файл, что и HTML.

Если вы указали свой текущий файл как register.php. затем измените имя файла в форме и поместите здесь свой PHP-код.

0

Здесь я могу предложить 3-4 балла перепроверить и форматировать форму, которая позволит решить вашу проблему.

  • Держите ваш PHP код перед тегом страницы для более быстрого выполнения и обнаружения логики
  • Проверьте событие формы представления с

    if(isset($_POST['Submit'])) { 
         $u_name=isset($_POST['uname'])?mysqli_real_escape_string($con,$_POST['uname']):""; 
         $u_pass=isset($_POST['upass'])?mysqli_real_escape_string($con,$_POST['upass']):""; 
         $u_email=isset($_POST['uemail'])?mysqli_real_escape_string($con,$_POST['uemail']):""; 
    
         $sql = "INSERT INTO user_index(user_name, user_pass, user_email) 
           VALUES ('".$u_name."', '".$u_pass."', '".$u_email."')"; 
         $insert_row=$con->query($sql); 
         if($insert_row) 
         { 
          print 'Success'; 
         } 
         else 
         { 
          die('error:'.$con->errno.')'.$con->error); 
         } 
        } 
    
  • Попробуйте отладки Размещено Переменным с

    print_r (_POST $); выход (0);

  • Я думаю, что в форме Action вам необходимо указать, какая из них отправит вашу форму на той же странице. (ДОПОЛНИТЕЛЬНО)

Таким образом, рассмотрев выше трех пунктов, вы сможете получить желаемый результат.