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 :

Affichage de messages d'erreurs avec "echo"


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1
    Points : 7
    Points
    7
    Billets dans le blog
    1
    Par défaut Affichage de messages d'erreurs avec "echo"
    Bonjour,

    Avant tout je donne le contenu de mes fichiers (mon problème est expliqué à la fin).

    le HTML :

    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
    57
    58
    59
    60
    <!DOCTYPE html>
    <html>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="style-inscription.css">
    <head>
        <title>inscription</title>
    </head>
     <body>
      <div id="titre">
       Bonjour, vous etes sur la page d'inscription.
      </div>
      <form method="post">
       <div id="droite">
        <br />
        <br />  
        <label for="s-pseudo">Pseudo :</label><input pattern=".{6,}" required title="6 caractères minimum" id="s-pseudo" name="s-pseudo" 
        type="text" value="<?php 
        if (isset($_POST['s-pseudo']))
        {
         echo $_POST['s-pseudo'];  
        }
        else
        {
         if (isset($_COOKIE['connexion-pseudo']))
         {
          echo $_COOKIE['connexion-pseudo'];
         }
        }
        ?>" autofocus /><br />
        <br />
        <label for="s-mdp">Mot de passe :</label><input pattern=".{8,}" required title="8 caractères minimum" id="s-mdp" name="s-mdp" 
        type="password" value="<?php if(isset($_POST['s-mdp'])) { echo $_POST['s-mdp']; } ?>" /><br />
        <br />
        <label for="smdp-bis">Retapez votre mot de passe :</label><input pattern=".{8,}" required title="8 caractères minimum" id="s-mdp-bis" 
        name="s-mdp-bis" type="password" value="<?php if(isset($_POST['s-mdp-bis'])) { echo $_POST['s-mdp-bis']; } ?>" /><br />
        <br />
        <br />        
        <label for="s-email">Email :</label><input id="s-email" name="s-email" type="email" 
        value="<?php if(isset($_POST['s-email'])) { echo $_POST['s-email']; } ?>" /><br />
        <br />
        <img id="img-captcha" src="image-captcha.php" onclick="this.src='image.php?' + Math.random();" alt="captcha" style="cursor:pointer;"><br />
        <br />
        <label for="captcha">Code de securité :</label><input id="captcha" name="captcha" type="text" /><br />
        <br />
        <br />
       </div>
       <div id="valid">
        <input id="btn-valid" name="btn-valid" type="submit" value="Valider" />
       </div>
      </form>
     
    <?php  
     //Verif et inscription
     if(!empty($_POST['s-pseudo']))
     {
       require('inscription-post.php');
     }
    ?>
    </body>
    </html>
    Le CSS :
    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
    57
    58
    59
    60
    61
    62
    63
     
    #titre {
        height: 50px;
        line-height: 50px;
        font-family: Arial;
        font-size: xx-large;
        vertical-align: middle;
        text-align: center;
        background-color: #00FF00;
        font-weight: bold;
        font-style: italic;
     border-style: double;
     border-color: red;
     border-width: 5px;
     border-radius: 15px;
    }
    #droite {
        font-family: Arial;
        font-size: 16px; 
        font-weight: bold; 
        width: 42%;
        height: 400px;
        margin: 0 auto;
    }
    #img-captcha { 
     margin-left: 190px;
    }
     
    #valid {
        width: 70%;
        text-align: center;
        margin: 0 auto;
    }
    body{
        width: 70%;
        height: 400px;
    }
    label {
     display: block;
     width: 150px;
     float: left;
    }
    input[type=submit] {
     margin-left: 30px;
     width: 100px; 
     font: bold 20px arial;
     color: red;
        background: #00FF00; 
     border: 1px solid black;
        cursor:pointer;
     border-radius: 10px; 
    }
    input {
        font-family: Arial;
        font-size: 16px;
     background-color: white;
    }
    .mess {
        font-family: Arial;
        font-size: 22px; 
     color: red;
        text-align: center; 
    }
    Le fichier pour contrôle et inscription :
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    <?php
    $flagverif = true;
     //ctrl captcha
     session_start();
     if(isset($_POST['captcha']))
     {
      if($_POST['captcha']!=$_SESSION['code'])
      {
       echo '<p class="mess"><strong>'.'Code de securité incorrect !'.'</strong></p>';
       $flagverif = false;    
      }
     }
     //verif si déjà existant   
     if (isset($_POST['s-pseudo']))
     {   
      // Connexion à la base de données
      try
      {
       $bdd = new PDO('mysql:host=localhost;dbname=connexion;charset=utf8', 'root', '');
      }
      catch(Exception $e)
      {
        die('Erreur : '.$e->getMessage());
      }        
      $req = $bdd->prepare('SELECT * FROM membres WHERE pseudo = ? collate utf8_bin');
      $req->execute(array($_POST['s-pseudo']));
      $donnees = $req->fetch(); 
      if ($donnees)
      {
       echo '<p class="mess">'.'Ce '.'<strong>'.'pseudo'.'</strong>'.' est déjà pris, veuillez en changer !'.'</p>';
       $flagverif = false; 
      } 
     }
     //verif du pseudo
     if (isset($_POST['s-pseudo']))
     {
      if(preg_match('#[^a-zA-Z0-9]#',$_POST['s-pseudo']))
      {
       echo '<p class="mess">'.'Le '.'<strong>'.'pseudo'.'</strong>'.' doit être composé que de majuscules, de mininuscules et de chiffres !'.'</p>';
       $flagverif = false;    
      }
     } 
     //verif mot de passe
      setcookie ('connexion-mdp', $mdp, time() + 365*24*3600, null, null, false, true); 
     {    
      if (preg_match('#[^a-zA-Z0-9]#', $_POST['s-mdp']))
      {
       echo '<p class="mess">'.'Le '.'<strong>'.'mot de passe'.'</strong>'.' doit être composé que de majuscules, de mininuscules et de chiffres !'.'</p>';
       $flagverif = false;
      } 
     }
     //verif de l'égalité du mot de passe et sa confirmation
     if ((isset($_POST['s-mdp'])) and (isset($_POST['s-mdp-bis'])))    
     {    
      if ($_POST['s-mdp'] <> $_POST['s-mdp-bis'])
      {
       echo '<p class="mess">'.'Le '.'<strong>'.'mot de passe et sa confirmation'.'</strong>'.' ne sont pas identiques !'.'</p>';
       $flagverif = false;
      } 
     } 
     //verif format email
     if (isset($_POST['s-email']))
     {
      $_POST['s-email'] = htmlspecialchars($_POST['s-email']);
     
      if (!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#', $_POST['s-email']))     
      {
       echo '<p class="mess">'.'L\'adresse mail '.'<strong>'. $_POST['s-email'] .'</strong>'.' n\'a pas le bon format !'.'</p>'; 
       $flagverif = false;    
      }
     }  
     if ($flagverif == true)
     {
      $mdp = sha1($_POST['s-mdp']);
      // écriture du cookie
      setcookie ('connexion-pseudo', $_POST['s-pseudo'], time() + 365*24*3600, null, null, false, true);  
      //Enregistrement du nouvel inscrit
      $req = $bdd->prepare('INSERT INTO membres (pseudo, pass, email, date_inscription) VALUES(:pseudo , :pass, :email, now())');
      $req->execute(array(
       ':pseudo' => $_POST['s-pseudo'],
       ':pass' => $mdp,
       ':email' => $_POST['s-email']
       ));
      header('Location: inscription.php');
     }
     
    ?>
    Le fichier image-captcha
    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
     
    <?php
    session_start();
    header('Content-Type: image/png');
    $largeur=150;//largeur de l'image
    $hauteur=40;//hauteur de l'image
    $lignes=10;//nombre de lignes multicolore qui seront affichées avec le code
    $caracteres="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";//type de caractère du code qui sera affiché dans l'image
    $image = imagecreatetruecolor($largeur, $hauteur);
    imagefilledrectangle($image, 0, 0, $largeur, $hauteur, imagecolorallocate($image, 0xC0, 0xC0, 0xC0));
    function hexargb($hex)
    {
        return array("r"=>hexdec(substr($hex,0,2)),"g"=>hexdec(substr($hex,2,2)),"b"=>hexdec(substr($hex,4,2)));
    }
    for($i=0;$i<=$lignes;$i++){
        $rgb=hexargb(substr(str_shuffle("ABCDEF0123456789"),0,6));
        imageline($image,rand(1,$largeur-25),rand(1,$hauteur),rand(1,$largeur+25),rand(1,$hauteur),
    	imagecolorallocate($image, $rgb['r'], $rgb['g'], $rgb['b']));
    }
    $code1=substr(str_shuffle($caracteres),0,6);
    $_SESSION['code']=$code1;
    $code="";
    for($i=0;$i<=strlen($code1);$i++){
        $code .=substr($code1,$i,1)." ";
    }
    imagestring($image, 5, 10, 12, $code, imagecolorallocate($image, 0, 0, 0));
    imagepng($image);
    imagedestroy($image);
    ?>
    A la fin du HTML j'utilise require au lieu d'avoir fait un <form> action=..............

    Pourquoi, si je fait action="inscription-post.php, les commandes "echo" effacent l'écran, et le texte est affiché de façon brute en haut à gauche, donc très moche.

    Je suis pas une flèche, aussi, si vous pouvez m'aider à corriger ce problème, je serai bien content de comprendre mes erreurs et faire mieux à l'avenir.

    Merci à tous les participants de ce blog.

    A+

    Bruno

  2. #2

Discussions similaires

  1. Problème d'affichage de message Hello word avec Codeblocks
    Par B.M.W83 dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 17/04/2014, 01h23
  2. problème message d'erreur avec konqueror
    Par thou92 dans le forum Ubuntu
    Réponses: 0
    Dernier message: 11/01/2008, 10h19
  3. Affichage des message d'erreurs avec Struts
    Par stujava dans le forum Struts 1
    Réponses: 4
    Dernier message: 13/08/2007, 21h12
  4. Problème avec l'affichage de message d'erreur
    Par gaet_045 dans le forum JSF
    Réponses: 2
    Dernier message: 08/05/2007, 11h56
  5. message d'erreur avec l'affichage
    Par ulysse031 dans le forum Langage
    Réponses: 12
    Dernier message: 15/03/2007, 16h33

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