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 :

Formulaire simple à sécuriser ?


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Formulaire simple à sécuriser ?
    Bonjour, à tout hasard, voici mon code pour un micro formulaire tout simple...mais apparemment je dois ajouter du javascript pour au moins avoir le champ email obligatoire, sinon je recois tout et n'importe quand on clic sur envoyer...et là, je ne sais pas trop comment faire...i need your help...mille mercis.... misshelen

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php 
     
    if( isset( $_GET['message'] ) ){
     
    	$message = $_GET['message'];
     
    	$showmessage = TRUE;
     
    }else{
     
    	$showmessage = FALSE;
     
    }	
     
    ?>
     
    et puis aussi comme code : 
     
    <?php 
    		if( $showmessage ){
    	?>
     
    	Votre message a bien été envoyé. Merci !
     
    	<?php
    		}else{
    	?>
          <form name="Formulaire" form method="post" action="formmail.php" >
            <table>
              <tr> 
                <td>Nom</td>
                <td><input type="text" name="realname" size="40" /></td>
              </tr>
              <tr>
                <td>Mail</td>
                <td><input type="text" name="email" size="40" /></td>
              </tr>
              <tr>
                <td>Sujet</td>
                <td><input type="text" name="sujet" size="40" /></td>
              </tr>
              <tr>
                <td colspan=2>Commentaires<br>
                  <textarea cols="40" rows="2" name="comments"></textarea>
                </td>
              </tr>
            </table>
            <br> <div id="toctoc">
            <input type="submit" value="Envoyer" />
    		</div>
          </form>
     
    	  <?php
    	  	}
    	  ?>

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 112
    Points : 74
    Points
    74
    Par défaut
    slt !

    Deja, ton formulaire, c'est une méthode POST
    toi tu travailles sur un GET, donc ca peut poser problème !
    Il faut que tu travailles sur POST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if( isset( $_POST['message'] ) ){
     
    $message = $_POST['message'];
    ...
    }
    Ensuite, le javascript n'est absolument pas nécessaire pour rendre un champs obligatoire !!
    Ce que tu peux faire, c'est dans ta récupération de variable du formulaire, faire des conditions à la validation de ce formulaire, du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if( isset( $_POST['message'] ) ){
    if( isset( $_POST['email'] ) ) {
    //la tu mets tes conditions pour valider le mail 
    }
    }
    Et c'est préférable de faire pareil pour toutes tes variables POST, de manière à ce que l'utilisateur ne rentre pas n'importe quoi. Là se rejoint la notion d'expression régulière, essentielle pour un bon formulaire !

    Autrement, je ne vois pas pourquoi tu récupère $_POST['message'] alors qu'elle n'existe pas dans ton formulaire

    ++

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Help...toujours le petit formulaire qui ne fonctionne pas!
    bon alors je viens à peu près de capter ce qu'est une expression régulière... et je veux faire la maligne....

    voici mon code remis à jour, sauf que là ca me met carrément un zero pointé et une grosse erreur... why docteur PHP ? merci de votre aide !!

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php 
     
    if(isset($_POST['mail']))
    {
     
    	$message = $_POST['mail'] preg_match("#^[a-z0-9._]+@[a-z0-9._]{2,}\.[a-z]{2,4}$#", $_POST['mail']);
    	$showmessage = TRUE;
     
    }else{
     
    	$showmessage = FALSE;
    	echo 'L\'adresse ' . $_POST['mail'] . ' n\'est pas valide, recommencez !';
    }
     
     
     
    ?>
     
    <?php 
    		if( $showmessage ){
    	?>
     
    	Votre message a bien été envoyé. Merci !
     
    	<?php
    		}else{
    	?>
          <form name="Formulaire" form method="post" action="formmail.php" >
            <table>
              <tr> 
                <td>Nom</td>
                <td><input type="text" name="realname" size="40" /></td>
              </tr>
              <tr>
                <td>Mail</td>
                <td><input type="text" name="mail" size="40" /></td>
     
              </tr>
              <tr>
                <td>Sujet</td>
                <td><input type="text" name="sujet" size="40" /></td>
              </tr>
              <tr>
                <td colspan=2>Commentaires<br>
                  <textarea cols="40" rows="2" name="comments"></textarea>
                </td>
              </tr>
            </table>
            <br> <div id="toctoc">
            <input type="submit" value="Envoyer" />
    		</div>
          </form>
     
    	  <?php
    	  	}
    	  ?>
    et j'ai aussi un autre fichier formmail.php
    est-ce que c'est ici que je dois insérer le preg_match ?

  4. #4
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 112
    Points : 74
    Points
    74
    Par défaut
    alor...
    ce truc la ne marchera à mon avis pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = $_POST['mail'] preg_match("#^[a-z0-9._]+@[a-z0-9._]{2,}\.[a-z]{2,4}$#", $_POST['mail']);
    essai plutot un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(preg_match("#^[a-z0-9._]+@[a-z0-9._]{2,}\.[a-z]{2,4}$#", $_POST['mail']) === true) {
        $showmessage = TRUE;
    }
    Tu devrais consulter les Cours et tutoriels PHP et la FAQ PHP pour les fonctions que tu ne connais pas

    Autrement, ton formulaire, une fois que l'utilisateur appuie sur ton bouton "Envoyer" te redirige sur ta page "formmail.php", c'est cette ligne qui l'indique, grâce au "action" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="Formulaire" form method="post" action="formmail.php" >
    Ainsi, ton traitement des données envoyées doit se faire dans cette page formmail.php

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut merci
    on y arrive doucement et surement...

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

Discussions similaires

  1. [MySQL] Passer d'un formulaire simple à la mise en place dans la base de données
    Par alex28240 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/01/2009, 16h01
  2. Réponses: 7
    Dernier message: 02/12/2008, 09h35
  3. [AJAX] formulaire simple AJAX
    Par cotede2 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/09/2008, 14h37
  4. [CS3] Formulaire simple dreamweaver
    Par Fabienwer dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 29/01/2008, 18h53
  5. Réponses: 2
    Dernier message: 18/01/2007, 21h38

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