NewUser
NewUser

Reputation: 13333

php inserting last inserted values to the database

I have my login table in mysql is like this

id
fname
lname
email
contactno
userid
password
acctype
status

Now my form is like this

<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>

and for insert data my php code is like this

<?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')");
    }
?>

Now here when I am reloading the page it is automatically inserting the last entered values to the database. So here can someone kindly tell me what is the issue here? Any help and suggestions are welcome.

Upvotes: 1

Views: 227

Answers (2)

Rajeev Ranjan
Rajeev Ranjan

Reputation: 4142

after inserting the $_POST data use redirect to avoid this situation . even you can redirect to same page like this :-

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

Upvotes: 0

Prasanth Bendra
Prasanth Bendra

Reputation: 32740

If you reload the page after submitting a form, it will keep the POST data. To solve this follow the below things :

  1. You can redirect to some other page after inserting the data, use header("location:new_page.php")

  2. You can unset REQUEST, use unset($_REQUEST) after insert

Upvotes: 2

Related Questions