php将最后插入的值插入数据库

时间:2013-07-30 11:47:22

标签: php mysql

我在mysql中的登录表是这样的

id
fname
lname
email
contactno
userid
password
acctype
status

现在我的表格就像这样

<form name="frm" method="post" action="registerform.php">
  <table id="new-account" class="create-an-account" width="100%" border="1" cellspacing="10px" cellpadding="10px">
    <tr>
      <td width="45%">
        <label for="firstname">First Name</label>
        <input type="text" style="width:230px;"  name="Firstname" id="Firstname" /></td>
      <td width="10%"></td>
      <td width="45%">
        <label for="lastname">Last Name:</label>
        <input type="text" style="width:230px;"  name="LastName" id="LastName" />                      
      </td>
    </tr>
    <tr>
      <td>
        <label for="">Account Type</label>
          <select class="select" name="at" id="ValidSelection" style="width:245px;" >
            <option value="0">Select Account Type</option>
            <option value="agent">agent</option>
            <option value="admin">admin</option>
          </select>
      </td>
    </tr>
    <tr>
      <td><label for="">Email Id:</label></td>
    </tr>
    <tr>
      <td><input type="text" name="email" id="ValidEmail" style="width:230px;"/></td>
    </tr>
    <tr>
      <td><label for="">Contact Number</label></td>
    </tr>
    <tr>
      <td><input type="text" name="contact" id="ValidNumber" style="width:230px" /></td>
    </tr>
    <tr>
      <td><label for=""><strong>Choose Your Login Id:</strong></label>
      <input type="text" style="width:230px;"  name="LoginId" id="LoginId"/>
      </td>
    </tr>
    <tr>
      <td><label for=""><strong>Password: <br /></strong></label></td>
    </tr>
    <tr>
      <td><input type="password" style="width:230px;"  name="Password" id="ValidPassword"  /></td>
    </tr>
    <tr>
      <td><label for="">Confirm Password:</label></td>
    </tr>
    <tr>
      <td>
    <input type="password" style="width:230px;"  name="ConfirmPassword" id="ValidConfirmPassword"
    />                      
    </td>
    </tr>
    <tr>
      <td colspan="2"><input type="submit" name="signup" value="Create Account" style="margin-top:20px" /></td>
    </tr>
    </table>

对于插入数据,我的php代码就像这样

<?php
    if(isset($_REQUEST['signup'])) {
        mysql_query("insert into login (`fname`,`lname`,`email`,`contactno`,`userid`,`password`,`acctype`,`status`) values('".$_REQUEST['Firstname']."','".$_REQUEST['LastName']."','".$_REQUEST['email']."','".$_REQUEST['contact']."','".$_REQUEST['LoginId']."','".$pswd."','".$_REQUEST['at']."','active')");
    }
?>

现在,当我重新加载页面时,它会自动将最后输入的值插入数据库。所以,有人可以告诉我这里的问题是什么?欢迎任何帮助和建议。

2 个答案:

答案 0 :(得分:2)

如果您在提交表单后重新加载页面,它将保留POST数据。要解决这个问题,请遵循以下内容:

  1. 您可以在插入数据后重定向到其他页面,使用header("location:new_page.php")

  2. 您可以取消设置请求,插入后使用unset($_REQUEST)

答案 1 :(得分:1)

插入$ _POST数据后使用重定向来避免这种情况。 即使你可以像这样重定向到同一页面: -

header('Location: '.$_SERVER['PHP_SELF']);
  exit;