|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Consultant informatique Inscription : septembre 2011 Messages : 3 ![]() |
Bonjour,
Etant complètement novice en programmation j'ai développé un site web pour ma sté mais je galère sur un formulaire en php. Tout fonctionne bien si tout est rempli correctement mais si une erreur intervient je n'arrive pas à redirigé vers la page d'erreur que j'ai fait. En effet le script fait juste un exit et l'utilisateur se retrouve dans le vide. voici le script: <?php session_start(); if(!isset($_SESSION['code']) OR strlen($_SESSION['code']) !=5) exit("Erreur !"); if($_SESSION['code'] != $_POST['verif']) exit("Erreur les valeurs sont différentes !"); $exp = $_POST['mail']; $objet = stripslashes($_POST['objet']); $msg = stripslashes($_POST['msg']); $envoi=mail("xxxxx.xxxxxx@gmail.com", $objet, $msg,"From: $exp\r\n"."Reply-To: $exp\r\n"); if($envoi) header('Location: urgenceok.html'); else header('Location: urgencepb.html'); session_unset(); session_destroy(); ?> C'est entre autre la partie exit("Erreur les valeurs sont différentes !"); qui me pose un problème. Comment faire pour qu'en cas d'erreur de saisie le le message ne me soit pas envoyé quand même, que la page d'erreur que j'ai fait s'affiche et que l'utilisateur ne se retrouve pas dans le vide svp? Merci d'avance pour votre aide |
|
|
00
|
|
|
#2 | ||
|
Futur Membre du Club
![]() Inscription : septembre 2011 Messages : 15 ![]() |
Ce qui résulte de ton code est normal.
La fonction exit() stop l'exécution du code php. Elle permet éventuellement d'informer l'utilisateur d'un message en paramètre comme tu l'as correctement formulés dans ton code. Il existe des mécanismes en php permettant de définir certaines tâches à l'arrêt de l'interprétation du script mais c'est plus compliqué. Pour pouvoir afficher en toute simplicité un message dans la page urgencepb.html, il faut: -soit transmettre le message par l'intermédaire de ta redirection ( header.....) et le récupérer sur la page à l'aide d'un $_GET['ton_message']. (sans oublier les balises d'ouverture et de fermeture <?php ?> sur ta page html ) -soit profiter du mécanisme de session que tu utilises déjà $_SESSION['message'] = 'Erreur !' puis faire un simple echo $_SESSION['message'] (toujours sans oublier les balises php mais avec un session_start(); au tout début de ta page, avant tous codes) -soit (mais c'est moins élégant) rediriger l'utilisateur vers ta page html où tu auras écris en dur ton message. Tu l'auras compris, on oublis donc le côté dynamique de ton script et aux vues de ton algorithme, il te faudrait 2 pages html distinctes. Voici le code modifié: Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Consultant informatique Inscription : septembre 2011 Messages : 3 ![]() |
Merci c'est super gentil de m'avoir renseigné. Surtout un dimanche lol
Je vais essayer tout ça dans la soirée et je tiens au courant. Encore merci pour tout. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Consultant informatique Inscription : septembre 2011 Messages : 3 ![]() |
Je viens de faire la modif avec certes la solution la moins élégante mais vu que je n'y connait rien du tout .... mdr. En tout cas ça fonctionne impec maintenant. Je vais pouvoir prendre le temps d'étudier les autres solutions.
Un grand merci encore. Sur un autre formulaire (mais formmail cette fois j'ai un autre petit pb tu connais ce type de formulaire? ) |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : septembre 2011 Messages : 15 ![]() |
A vrai dire non. Je créer chacun de mes codes mais n'hésite pas à exposer ton problème au cas où.
Bonne soirée |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com