Bug code source dans l'enregistrement O forum

Utilisateur anonyme -  
avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Pour faire court , j'ai un petit bug dans mon script pour la mise en place d'un forum dans mon site web :p.

le bug est situé dans la partie enregistrement du forum, et plus precisement dans la partie reservée a l'image antibot , cette derniere , j'arrive a l'afficher coorectement , mais je n'arrive as a trouver le probleme dans le if( ).
Si quelqu'un veut bien m'aider je lui en serais reconnaissant .
merci :)

13 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Comment veux-tu qu'on t'aide avec ça ?
    Il faudrait au moins nous donner ton code.
    0
  2. Utilisateur anonyme
     
    voici mon code ( il y'a peut etre des zones qui sont effacées pour eviter de divulger les infos sur mon site) :

    <?php
    //Cette fonction doit être appelée avant tout code html
    session_start();

    //On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
    $titre = "Index du forum";
    include("includes/debut.php");
    ?>
    <?php
    //Maintenant, on se connecte à la base de données
    include("includes/identifiants.php");
    mysql_connect($adresse, $nom, $motdepasse);
    mysql_select_db($database);

    $pseudo_erreur1 = NULL;
    $pseudo_erreur2 = NULL;
    $mdp_erreur = NULL;
    $email_erreur1 = NULL;
    $email_erreur2 = NULL;
    $msn_erreur = NULL;
    $signature_erreur = NULL;
    $avatar_erreur = NULL;
    $avatar_erreur1 = NULL;
    $avatar_erreur2 = NULL;
    $avatar_erreur3 = NULL;
    $milieu_html = NULL;
    ?>
    <?php

    $i = 0;
    $temps = time();
    $signature = mysql_real_escape_string($_POST['signature']);
    $pseudo = mysql_real_escape_string($_POST['pseudo']);
    $email = mysql_real_escape_string($_POST['email']);
    $msn = mysql_real_escape_string($_POST['msn']);
    $website = mysql_real_escape_string($_POST['website']);
    $localisation = mysql_real_escape_string($_POST['localisation']);
    $pass = md5($_POST['password']);
    $confirm = md5($_POST['confirm']);
    $milieu_html = mysql_real_escape_string($_POST['verif_code']);

    $nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'"'), 0);
    if($nombrepseudo != 0)
    {
    $pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre";
    $i++;
    }
    if (strlen($pseudo) < 3 || strlen($pseudo) > 15)
    {
    $pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit";
    $i++;
    }

    if ($pass != $confirm || empty($confirm) || empty($pass))

    $mdp_erreur = "Votre mot de passe et votre confirmation sont differents, ou sont vides";
    $i++;

    ?>

    <?php //partie antibot
    if(Isset($_POST['verif_code']) AND !Empty($_POST['verif_code']))
    { // Le champ du code de confirmation a été remplis
    if($_POST['verif_code'] !== $_SESSION['aleat_nbr'])
    {
    $i++;
    $milieu_html = 'Votre code de confirmation n est pas bon ! Merci de réessayer.';
    }
    }
    ?>
    <?php

    $nombremail = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_membres WHERE membre_email = "'.$email.'"'), 0);

    if ($nombremail != 0)
    {
    $email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
    $i++;
    }
    //verification de la forme
    if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
    {
    $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide";
    $i++;
    }
    //Vérification de l'adresse MSN
    if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn))
    {
    $msn_erreur = "Votre adresse MSN n'a pas un format valide";
    $i++;
    }
    //Vérification de la signature
    if (strlen($signature) > 200)
    {
    $signature_erreur = "Votre signature est trop longue";
    $i++;
    }
    ?>
    <?php
    //Vérification de l'avatar :
    if (!empty($_FILES['avatar']['size']))
    {
    //On définit les variables :
    $maxsize = 10024; //Poid de l'image
    $maxwidth = 100; //Largeur de l'image
    $maxheight = 100; //Longueur de l'image
    $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides

    if ($_FILES['avatar']['error'] > 0)
    {
    $avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
    }
    if ($_FILES['avatar']['size'] > $maxsize)
    {
    $i++;
    $avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)";
    }

    $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
    if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
    {
    $i++;
    $avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)";
    }

    $extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1));
    if (!in_array($extension_upload,$extensions_valides) )
    {
    $i++;
    $avatar_erreur3 = "Extension de l'avatar incorrecte";
    }
    }
    ?>
    <body>
    <div class="contenu1">
    <?php
    if ($i == 0) // Si i est vide, il n'y a pas d'erreur
    {

    echo'<h1>Inscription terminée</h1>';
    echo'<p>Bienvenue '.stripslashes(htmlspecialchars($_POST['pseudo'])).' vous êtes maintenant inscrit sur le forum</p>';
    echo'<p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d accueil</p>';

    if (isset($_FILES['avatar']['size']))
    {
    //On déplace l'avatar
    $avatar = time();
    $nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
    $avatar = "./images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
    move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
    }

    //On balance le tout dans notre table
    mysql_query('
    INSERT INTO forum_membres (membre_pseudo, membre_mdp, membre_email,
    membre_msn, membre_siteweb, membre_avatar,
    membre_signature, membre_localisation, membre_inscrit,
    membre_derniere_visite)
    VALUES ("'.$pseudo.'" , "'.$pass.'" , "'.$email.'" ,
    "'.$msn.'" , "'.$website.'" , "'.$nomavatar.'" ,
    "'.$signature.'" , "'.$localisation.'" , "'.$temps.'" ,
    "'.$temps.'" ) ') or die(mysql_error());

    //Et on définit les variables de sessions
    $_SESSION['pseudo'] = $pseudo;
    $_SESSION['id'] = mysql_insert_id();
    $_SESSION['level'] = 2;

    }
    else
    {
    echo'<h1>Inscription interrompue</h1>';
    echo'<p>Une ou plusieurs erreurs se sont produites pendant l\'incription</p>';
    echo'<p>'.$i.' erreur(s)</p>';
    echo'<p>'.$pseudo_erreur1.'</p>';
    echo'<p>'.$pseudo_erreur2.'</p>';
    echo'<p>'.$mdp_erreur.'</p>';
    echo'<p>'.$email_erreur1.'</p>';
    echo'<p>'.$email_erreur2.'</p>';
    echo'<p>'.$msn_erreur.'</p>';
    echo'<p>'.$signature_erreur.'</p>';
    echo'<p>'.$avatar_erreur.'</p>';
    echo'<p>'.$avatar_erreur1.'</p>';
    echo'<p>'.$avatar_erreur2.'</p>';
    echo'<p>'.$avatar_erreur3.'</p>';
    echo'<p>'.$milieu_html.'</p>';
    echo'<p>Cliquez <a href="./register.php">ici</a> pour recommencer</p>';
    }
    mysql_close();
    ?>
    </div>
    </body>
    0
  3. Utilisateur anonyme
     
    Ca fait presque une semaine que je cherche le petit "hic" dans ce code, donc celui qui le trouvera ou qui essayera :p de le trouver , aura mon entière gratitude :D
    0
  4. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Utilise la balise code de CCM.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    desolé avion, mais je suis noob , donc si quelqu'un veut bien me proposer une solution , merci
    0
  7. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Place ton code entre la balise "code" quand tu écris un message sur ce site.
    Une balise c'est comme ... strong, em, p, div, span, h1, h2, ...
    0
  8. Utilisateur anonyme
     
    non mais c'est bon t'inquiete, je ne vais quand meme pas lui faire une injection sql :) , sinon tu pourrais pas me donner stp le bon code , merci
    0
  9. Utilisateur anonyme
     
    bon aparement personne ne veut m'aider , alors , je laisse ce topic ouvert en attendant une reponse que je n'aurais peut etre jamais :'(
    0
  10. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Depuis le début je te demande de mettre ton code dans la balise "code" de CCM !
    0
  11. Utilisateur anonyme
     
    <?php
    //Cette fonction doit être appelée avant tout code html
    session_start();
    
    //On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
    $titre = "Index du forum";
    include("includes/debut.php");
    ?>
    <?php
    //Maintenant, on se connecte à la base de données
    include("includes/identifiants.php");
    mysql_connect($adresse, $nom, $motdepasse);
    mysql_select_db($database);
    
    
    $pseudo_erreur1 = NULL;
    $pseudo_erreur2 = NULL;
    $mdp_erreur = NULL;
    $email_erreur1 = NULL;
    $email_erreur2 = NULL;
    $msn_erreur = NULL;
    $signature_erreur = NULL;
    $avatar_erreur = NULL;
    $avatar_erreur1 = NULL;
    $avatar_erreur2 = NULL;
    $avatar_erreur3 = NULL;
    $milieu_html = NULL;
    ?>
    <?php
    
    $i = 0;
    $temps = time();
    $signature = mysql_real_escape_string($_POST['signature']);
    $pseudo = mysql_real_escape_string($_POST['pseudo']);
    $email = mysql_real_escape_string($_POST['email']);
    $msn = mysql_real_escape_string($_POST['msn']);
    $website = mysql_real_escape_string($_POST['website']);
    $localisation = mysql_real_escape_string($_POST['localisation']);
    $pass = md5($_POST['password']);
    $confirm = md5($_POST['confirm']);
    $milieu_html = mysql_real_escape_string($_POST['verif_code']);
    
    
    
    
    
    $nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'"'), 0);
    if($nombrepseudo != 0)
    {
    $pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre";
    $i++;
    }
    if (strlen($pseudo) < 3 || strlen($pseudo) > 15)
    {
    $pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit";
    $i++;
    }
    
    if ($pass != $confirm || empty($confirm) || empty($pass))
    
    $mdp_erreur = "Votre mot de passe et votre confirmation sont differents, ou sont vides";
    $i++;
    
    ?>
    
    <?php //partie antibot
    if(Isset($_POST['verif_code']) AND !Empty($_POST['verif_code']))
    { // Le champ du code de confirmation a été remplis
    if($_POST['verif_code'] !== $_SESSION['aleat_nbr'])
    {
    $i++;
    $milieu_html = 'Votre code de confirmation n est pas bon ! Merci de réessayer.';
    }
    }
    ?>
    <?php
    
    
    
    $nombremail = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_membres WHERE membre_email = "'.$email.'"'), 0);
    
    if ($nombremail != 0)
    {
    $email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
    $i++;
    }
    //verification de la forme
    if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
    {
    $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide";
    $i++;
    }
    //Vérification de l'adresse MSN
    if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn))
    {
    $msn_erreur = "Votre adresse MSN n'a pas un format valide";
    $i++;
    }
    //Vérification de la signature
    if (strlen($signature) > 200)
    {
    $signature_erreur = "Votre signature est trop longue";
    $i++;
    }
    ?>
    <?php
    //Vérification de l'avatar :
    if (!empty($_FILES['avatar']['size']))
    {
    //On définit les variables :
    $maxsize = 10024; //Poid de l'image
    $maxwidth = 100; //Largeur de l'image
    $maxheight = 100; //Longueur de l'image
    $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
    
    if ($_FILES['avatar']['error'] > 0)
    {
    $avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
    }
    if ($_FILES['avatar']['size'] > $maxsize)
    {
    $i++;
    $avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)";
    }
    
    $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
    if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
    {
    $i++;
    $avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)";
    }
    
    $extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1));
    if (!in_array($extension_upload,$extensions_valides) )
    {
    $i++;
    $avatar_erreur3 = "Extension de l'avatar incorrecte";
    }
    }
    ?>
    <body>
    <div class="contenu1">
    <?php
    if ($i == 0) // Si i est vide, il n'y a pas d'erreur
    {
    
    echo'<h1>Inscription terminée</h1>';
    echo'<p>Bienvenue '.stripslashes(htmlspecialchars($_POST['pseudo'])).' vous êtes maintenant inscrit sur le forum</p>';
    echo'<p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d accueil</p>';
    
    if (isset($_FILES['avatar']['size']))
    {
    //On déplace l'avatar
    $avatar = time();
    $nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
    $avatar = "./images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
    move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
    }
    
    
    //On balance le tout dans notre table
    mysql_query('
    INSERT INTO forum_membres (membre_pseudo, membre_mdp, membre_email,
    membre_msn, membre_siteweb, membre_avatar,
    membre_signature, membre_localisation, membre_inscrit,
    membre_derniere_visite)
    VALUES ("'.$pseudo.'" , "'.$pass.'" , "'.$email.'" ,
    "'.$msn.'" , "'.$website.'" , "'.$nomavatar.'" ,
    "'.$signature.'" , "'.$localisation.'" , "'.$temps.'" ,
    "'.$temps.'" ) ') or die(mysql_error());
    
    
    //Et on définit les variables de sessions
    $_SESSION['pseudo'] = $pseudo;
    $_SESSION['id'] = mysql_insert_id();
    $_SESSION['level'] = 2;
    
    }
    else
    {
    echo'<h1>Inscription interrompue</h1>';
    echo'<p>Une ou plusieurs erreurs se sont produites pendant l\'incription</p>';
    echo'<p>'.$i.' erreur(s)</p>';
    echo'<p>'.$pseudo_erreur1.'</p>';
    echo'<p>'.$pseudo_erreur2.'</p>';
    echo'<p>'.$mdp_erreur.'</p>';
    echo'<p>'.$email_erreur1.'</p>';
    echo'<p>'.$email_erreur2.'</p>';
    echo'<p>'.$msn_erreur.'</p>';
    echo'<p>'.$signature_erreur.'</p>';
    echo'<p>'.$avatar_erreur.'</p>';
    echo'<p>'.$avatar_erreur1.'</p>';
    echo'<p>'.$avatar_erreur2.'</p>';
    echo'<p>'.$avatar_erreur3.'</p>';
    echo'<p>'.$milieu_html.'</p>';
    echo'<p>Cliquez <a href="./register.php">ici</a> pour recommencer</p>';
    }
    mysql_close();
    ?>
    </div>
    </body>
    
    0
  12. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Mais ça ne change rien, tu as fais un copier/coller du code sans l'indentation donc ton code est illisible.
    0
  13. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Fais un copier/coller de ton code dans la balise "code" de CCM avec les indentations (tabulations).
    0