the_ the_ - 5 months ago 12
PHP Question

PHP Redirect after Mysql Insert

Below is my mySQL insert:

$sql="INSERT INTO gj (name, phone, city, zipcode, description, dateadded, website, address1, other2, payment_options, Products, email,cat1,cat2,cat3)
VALUES
('$companyname','$phone','$city','$zipcode','$description',curdate(),'$website','$address','$other','$payment','$products','$email','$select1','$select2','$select3')";

if (!mysql_query($sql,$link))
{
die('Error: ' . mysql_error());
}
echo "<br/><h2><font color='green' style='font-size:15px;float:right'>1 business added</font></h2>";

mysql_close($link);
}

?>


Now, instead of displaying "1 business added" in green, I'd like to redirect back to the page I was on before. Thanks.

Jim Jim
Answer

If your script is always intended to go to the same place afterwards, then you can hard-code the location. For example:

header("Location: http://www.example.com/");

Note that per RFC 2616 (the HTTP/1.1 specification), the value of the Location header must be an absolute URI, not just a path.

If your script is for a specific purpose and always redirects to a certain section, but may vary which particular records are shown, then you can incorporate the data that was posted to your script into the URL. For example:

header("Location: http://www.example.com/widgets/" . urlencode($_POST['id']));

If your script is used in several different ways, then you can pass along the URL to redirect to from the page that posts to it in a hidden form field, for example:

<input type="hidden" name="redirect-url" value="http://www.example.com/">

More generally, you should follow the Post/Redirect/Get pattern.