Problème espace membre

Fredooo
Invité n'ayant pas de compte PHPfrance

30 nov. 2005, 18:51

Bonjour,

voila je suis entrain de creer un espace membre mais problème! des que je me loggue il me met toujours le message d'erreur que j'ai mit quand il y a un champ non remplit alors que je remplit bien les champ!!

Voici la page concerner:
<?php 
// On commence par récupérer les champs 
if(isset($_POST['login']))      $login=$_POST['login']; 
else      $login=""; 

if(isset($_POST['pwd']))      $pwd=$_POST['pwd']; 
else      $pwd=""; 

if(isset($_POST['email']))      $email=$_POST['email']; 
else      $email=""; 

if(isset($_POST['titresite']))      $titresite=$_POST['titresite']; 
else      $titresite=""; 

if(isset($_POST['urlsite']))      $url=$_POST['urlsite']; 
else      $url=""; 

if(isset($_POST['parrain']))      $parrain=$_POST['parrain']; 
else      $parrain=""; 

// On vérifie si les champs sont vides 
if(empty($login) OR empty($pwd) OR empty($email) OR empty($titresite) OR empty($url)) 
    { 
    echo '<font color="red">Attention, seul le champ <b>Parrain</b> peut rester vide !</font><br><a href="register.htm">Recommencer</a>'; 
    } 
// Aucun champ n'est vide, on peut enregistrer dans la table 
else      
    { 
include 'config.php'; 
    
    // on regarde si le parrain existe 
    $sql = "SELECT id FROM tbl_user WHERE login='$parrain'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    
    // on compte le nombre de résultats 
    $res = mysql_num_rows($req); 

    if($res > 0) // le parrain existe déjà, on insère 
        { 
        $sql = "INSERT INTO tbl_user(id,login,pwd,email,titresite,url,parrain) VALUES('','$login','$pwd','$email','$titresite','$url','$parrain')"; 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
        
        // on affiche le résultat pour le visiteur 
        echo 'Vos infos ont été ajoutées.'; 
        } 
        if(empty($parrain)) 
        { 
        $sql = "INSERT INTO tbl_user(id,login,pwd,email,titresite,url,parrain) VALUES('','$login','$pwd','$email','$titresite','$url','$parrain')"; 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
        
        // on affiche le résultat pour le visiteur 
        echo 'Vos infos ont été ajoutées.'; 
        } 
    else  // Le parrain nexiste pas on affiche lerreur 
        {    
        echo 'Parrain inconnu<br><a href=register.htm>Recommencer</a>'; 
        } 
    mysql_close();  // on ferme la connexion 
    } 
?>
Que faire?

Merci beaucoup pour votre aide!

Fredo

Eléphant du PHP | 440 Messages

30 nov. 2005, 20:01

Hello ,

J'ai pas bien reussi a lire , peux tu editer ton, post et passer tout le code dans les bonnes balises c a d (PHP) et non (code)

Merci a toi

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 nov. 2005, 20:12

outre la coloration syntaxique verifis l'orthographe de tes champs dans le formulaire et dans les variables POST :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

01 déc. 2005, 00:33

Un peu de ménage dans le code ne ferait pas de tort. J'ajoute qu'en PHP, le "ou" s'écrit "||" et non "OR" qui s'utilise en SQL
Essaye comme ça:
<?php
// On commence par récupérer les champs
$login     = (isset($_POST['login']))     ? $_POST['login']     : "";
$pwd       = (isset($_POST['pwd']))       ? $_POST['pwd']       : "";
$email     = (isset($_POST['email']))     ? $_POST['email']     : "";
$titresite = (isset($_POST['titresite'])) ? $_POST['titresite'] : "";
$url       = (isset($_POST['urlsite']))   ? $_POST['urlsite']   : "";
$parrain   = (isset($_POST['parrain']))   ? $_POST['parrain']   : "";

// On vérifie si les champs sont vides
if(empty($login) || empty($pwd) || empty($email) || empty($titresite) || empty($url))
{
?>
<font color="red">Attention, seul le champ <b>Parrain</b> peut rester vide !</font><br>
<a href="register.htm">Recommencer</a>
<?php
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
    include 'config.php';
    // on regarde si le parrain existe
    $sql = "SELECT id FROM tbl_user WHERE login='". $parrain ."'";
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    // on compte le nombre de résultats
    $res = mysql_num_rows($req);

    if($res > 0) // le parrain existe déjà, on insère
    {
        $sql = "INSERT INTO tbl_user(login, pwd, email, titresite, url, parrain) ".
               "VALUES('". $login ."', '". $pwd ."', '". $email ."', '". $titresite ."', '". $url ."', '". $parrain ."')";
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

        // on affiche le résultat pour le visiteur
        echo 'Vos infos ont été ajoutées.';
    }
    if(empty($parrain))
    {
        $sql = "INSERT INTO tbl_user(login, pwd, email, titresite, url, parrain) ".
               "VALUES('". $login ."', '". $pwd ."', '". $email ."', '". $titresite ."', '". $url ."', '". $parrain ."')";
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

        // on affiche le résultat pour le visiteur
        echo 'Vos infos ont été ajoutées.';
    }
    else  // Le parrain nexiste pas on affiche lerreur
    {
        echo 'Parrain inconnu<br><a href="register.htm">Recommencer</a>';
    }
    mysql_close();  // on ferme la connexion
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: