php revenir à la page après la soumission du formulaire
J'ai créé un formulaire html
<form action="http://localhost/php/insert.php" method="post">
Barcode: <input type="text" name="barcode" /><br><br>
Serial: <input type="text" name="serial" /><br><br>
<input type="submit" />
</form>
qui enregistre dans ma base de données à l'aide de ce php:
<?php
$con = mysql_connect("example","example","");
if ( ! $con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
$sql = "INSERT INTO asset (barcode, serial)
VALUES ('$_POST[barcode]','$_POST[serial]')";
if ( ! mysql_query($sql, $con)) {
die('Error: ' . mysql_error());
}
mysql_close($con)
?>
le formulaire enregistre à la DB, mais la page va juste pour http://localhost/php/insert.php
lorsque vous appuyez sur soumettre, qui est une page vierge. comment puis-je le faire rester sur la même page et juste afficher un message ou quelque chose?
OriginalL'auteur Carla Dessi | 2014-04-12
Vous devez vous connecter pour publier un commentaire.
Noter que la redirection avec
HTTP_REFERER
est feuilletée et indigne de confiance en général, de sorte que le meilleur moyen est d'avoir une URL envoyée avec la demande ou, si cela vient d'un autre serveur, vous pourriez construire un spécifique de passer à travers l'utiliser pour des sites spécifiques/Url. Le mieux est de connaître l'URL par l'avoir à l'être présentée avec la demande; les deux autres sont probablement moins qu'optimales.Après votre traitement du formulaire est fait, le faire avant de sortir quoi que ce soit (ce qui provoquera une erreur):
En fonction de ce que vos résultats de traitement pourrait être, vous pourriez ajouter une erreur de l'URL:
Puis sur la page, vous pouvez afficher l'erreur. Ou, alternativement, vous pouvez rediriger une page vers gestionnaire d'erreurs de différents types. C'est grand ouvert pour un certain nombre de différentes interprétations.
Undefined index: REFERER
Si ça vient d'une page HTTPS REFERER ne sera pas disponible, il est donc impossible de le récupérer à partir de la variable $_SERVER.
J'ai eu la mauvaise touche, c'est
HTTP_REFERER
. Notez qu'il est aussi un peu feuilletée, car il peut être défini par le navigateur (ou pas, ou falsifiées).que devrait faire le travail, merci! est il possible que je peux afficher une boîte de dialogue de confirmation après?
Où voulez-vous en venir avec ce
HTTPS
blocsHTTP_REFERER
? Avez-vous une documentation indiquant cette pure et simple?OriginalL'auteur Jared Farrish
Vous pouvez utiliser PHP la fonction Header() comme suit:
Vous aurez besoin pour s'assurer il n'y a pas de sortie (c'est à dire en écho à quoi que ce soit, ou tout code HTML, etc) avant de l'en-tête d'appel ou il ne fonctionnera pas.
Si il est venu à partir d'une page HTTPS, il est impossible, à moins que l'URL est passé à vous dans un paramètre à la demande.
Cela sonne comme une bonne suggestion. Peut-être que vous pouvez présenter une réponse à l'aide de cette technique?
OriginalL'auteur Ashley
Une autre façon que j'ai trouvé qui fonctionne est de rediriger avec de l'html
<meta>
. Mettre dans votre http://localhost/php/insert.php script . Après le traitement de rediriger vers la page désirée.Probablement non sécurisé, mais si vous êtes sur un réseau local privé doit être fine.
-Bravo
OriginalL'auteur MattJamison
L'utiliser dans votre formulaire d'action
$_SERVER['PHP_SELF'];
il va répondre à votre exigence.OriginalL'auteur Parimal