2010-07-25 5 views
0

Может кто-нибудь сказать мне, почему запись не вставлена? Это моя одна страница: -mysql php crud problem

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title></title> 
    </head> 
    <body> 


     <form action="Adduser.php" method="post"> 

     <center> 
     <table> 
      <tr> 
       <td> 
        Username : 
       </td> 
       <td> 
        <input type="text" id="username" /> 
       </td> 
      </tr> 

      <tr> 
       <td> 
        Password : 
       </td> 
       <td> 
        <input type="text" id="password"/> 
       </td> 
      </tr> 

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

      <tr> 
       <td> 
        Address : 
       </td> 
       <td> 
        <input type="text" id="Address"/> 
       </td> 
      </tr> 
      <tr> 
       <td colspan="2"> 
        <input type="Submit" name="submit" value="Add"/> 
       </td> 
      </tr> 

     </table> 
     </center> 
     <?php 
        mysql_connect('localhost', 'root', ''); 
      mysql_select_db('user'); 
      $query = mysql_query("Select * from tbluser"); 
      echo "<center>"; 
      echo '<table style="border:solid 2px black;">'; 
      while(($row = mysql_fetch_array($query)) != NULL) { 
       echo '<tr>'; 
       echo '<td>' . $row['UserName'] . '</td>'; 
       echo '<td>' . $row['Password'] . '</td>'; 
       echo '<td>' . $row['EmailAddress'] . '</td>'; 
       echo '<td>' . $row['Address'] . '</td>'; 
       echo '</tr>'; 
      } 
      echo '</table>'; 
      echo "</center>"; 
     ?> 
      </form> 
    </body> 
</html> 

Проблема здесь лежит (это Adduser.php): -

Условный условие никогда не будет выполняться. Может ли кто-нибудь сказать мне, почему он не работает? $_POST массив не содержит в себе ничего при печати через var_dump

+2

Для начала, ваши текстовые входы должны иметь 'имя = "... "' ', а не идентификатор =" ..."' –

ответ

3

Вы должны использовать имя атрибута для каждого поля ввода, как

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

Благодарности

+0

Может хотите также проверить 'если ($ _SERVER [ 'REQUEST_METHOD' ] == 'POST') {'вместо' if ($ _POST ['submit']) '. В какой-то момент вы можете забыть указать имя в кнопке отправки, но REQUEST_METHOD всегда будет присутствовать. –

1

Это код, который находится на Adduser.php странице? Если это другая страница, когда пользователь нажимает кнопку отправки, на странице Adduser.php будет получен запрос http.

Не нужно использовать атрибут name на входах. Поэтому, когда эта форма выше представлена, она получит http-запрос, содержащий $ _POST ['submit'], $ _POST ['username'], $ _POST ['password']. Именно поэтому в верхней части формы я сначала проверяю, была ли кнопка отправки довольно хороша с помощью функции PHP :: isset().

IE.

<?php 
if(isset($_POST['submit'])){ 
//process post submission 
//perform mysql insert and notify user the result status 
}else{ 
//initialize form values 
$_POST['userName'] = ''; 
$_POST['password'] = ''; 
} 
?> 
<html> 
<body> 
<form action="<?=$_SERVER['PHP_SELF']?>"> 
<input type="text" name="username" value="<?=$_POST['userName']?>" /> 
<input type="text" name="password" value="<?=$_POST['password']?>" /> 
<input type="submit" name="submit" value="Add user"/> 
</form> 
</body> 
</html>