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 :

Terminer un script (captcha invalide) [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Par défaut Terminer un script (captcha invalide)
    Bonjour à vous !
    J'ai récupérer un script captcha php 5.0 qui marche super.
    J'ai testé en version très basique sur une nouvelle page et tous marche.
    J'ai maintenant essayé de l'introduire dans mon formulaire déjà existant, et j'ai un petit soucis^^
    J'ai donc 2 fichiers, 1 fichier qui affiche le formulaire avec les différents champs à saisir donc le controle anti spam. Aucun problème sa marche.
    Un 2eme fichier qui reprend les informations saisient précédemment pour envoyer un mail au webmaster.
    Actuellement l'envoie des informations fonctionnent mais meme si le code anti bot est faux, en effet voici le code de vérification du 2eme fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <?php
      if (chk_crypt($_POST['code'])) 
         echo "Bravo";
         else echo "Erreur";
    ?>
    DOnc si le code anti bot est bon, il affiche bravo et le mail est envoyé
    Si le code anti bot est faux, il affiche Erreur mais continue l'execution du reste du fichier est donc envoie quand meme un mail.

    Serait'il possible ou cela serait trop simple de modifier le fichier pour obtenir quelque chose comme ca :
    SI le code est bon : Bravo on envoie le mail
    Sinon : erreur et on stop le fichier, avec une fonctionne "stop;" ?

    Merci de m'eclairer

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Tu peux utiliser la fonction exit :
    http://php.net/exit

    Autre solution : mettre l'envoi du mail dans la clause if...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Par défaut
    Bonjour !
    Merci pour cette réponse rapide.
    mettre l'envoie du mail dans mon if je le sens pas trop car il fait une centaine de lignes.
    J'ai donc essayé la fonctione "exit" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <?php
      if (chk_crypt($_POST['code'])) 
         echo "Bravo";
         else exit;
    ?>
    Quand le code est faux il m'affiche Erreur mais le script continue quand meme et envoie un email :;(

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Si il affiche "Erreur" et qu'un mail est envoyé, c'est que tu n'as pas modifié le bon script (dans le code que tu montres, il n'y a plus d'affichage d'"Erreur" )

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Par défaut
    Effectivement j'avais oublié de l'upload^^
    DOnc la effectivement ok
    Par contre, j'ai un autre soucis avec le script, quand j'affiche ma page contenant le code anti bot j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at ...) in .../cryptographp.fct.php on line 14
     
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at ...) in /...cryptographp.fct.php on line 14
    Les "..." se sont les url que j'ai effacé pour recopié le texte ici.

    APres avoir lu quelques posts, cela viendrait des sessions et cookies autorisés ou non.
    La ligne 14 etant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(session_id() == "") session_start();
    COmment corriger ce problème ? SI je supprime cette ligne il ne reconnait pas le code anti spam meme si le code recopier est bon il me dit tjr que non

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Par défaut
    Je me repond à moi meme si sa peux aider les autres:
    Cela viens du fait que quand on démarre une fonctionne php en appel de fichier celle ci doit commencer à la ligne 1 sans meme un espace ou un autre caractere avant.

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

Discussions similaires

  1. Script captcha dans mon formulaire
    Par Yvette dans le forum Langage
    Réponses: 6
    Dernier message: 17/06/2010, 10h15
  2. Syntaxe bizarre dans script captcha
    Par Sylvain__A_ dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2009, 12h45
  3. Script objets invalides
    Par pb_inge dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/05/2008, 13h47
  4. terminer un script, fonction exit ?
    Par Matth_S dans le forum ASP
    Réponses: 2
    Dernier message: 16/08/2006, 15h24

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