IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Pb de formulaire


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Pb de formulaire
    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

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 34
    Points : 38
    Points
    38
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
     
    session_start();
    if (!isset($_SESSION['code']) OR strlen($_SESSION['code']) != 5) {
        header('Location: urgencepb.html');
        // Ta solution pour transmettre le message en dynamique
    } elseif ($_SESSION['code'] != $_POST['verif']) {
        $_SESSION['message'] = 'Erreur les valeurs sont différentes !';
        // Ta solution pour transmettre le message en dynamique
    } else {
        $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");
        header('Location: urgenceok.html');
    }
    session_unset();
    session_destroy();
    ?>
    Voilà!

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    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.

  4. #4
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    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? )

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 34
    Points : 38
    Points
    38
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'un formulaire sous flash?
    Par ultrakas dans le forum Flash
    Réponses: 5
    Dernier message: 11/01/2005, 18h33
  2. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52
  3. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 03h51
  5. [CR] Tranfert de formulaire a travers une page HTMl
    Par LIEU dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/09/2002, 08h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo