message erreur incompréhensible

Eléphant du PHP | 250 Messages

15 juin 2005, 23:22

Bonjour, voici mon code pour valider 1 nouveau memebre et voilà le message d'erreur que je ne comprends pas........
<?php
include_once("config_script.php");
// On commence par récupérer les champs
if(isset($_POST['pseudo']))      $login=htmlentities ($_POST['pseudo']);
else      $login="";
if(isset($_POST['passe']))      $passe=htmlentities ($_POST['passe']);
else      $passe="";
if(isset($_POST['email']))      $email=htmlentities ($_POST['email']);
else      $email="";
if(isset($_POST['typeava']))      $avatar=$_POST['typeava'];
else      $avatar="";
if(isset($_POST['sexe']))      $sexe=$_POST['sexe'];
else      $sexe="";
if(isset($_POST['metier']))      $metier=$_POST['metier'];
else      $metier="";
if(isset($_POST['age']))      $age=$_POST['age'];
else      $age="";
// On vérifie si les champs sont vides
if(empty($login) OR empty($passe) OR empty($email) OR empty($avatar) OR empty($sexe) OR empty($metier)OR empty($age))
    {
    echo '<font face="Calligraph421 BT"> Attention ! Tous les champs ne sont pas correctement renseignés.</font>';
    }
    // [size=150]on regarde si le type existe déjà la ligne 24 est celle qui suit[/size]
    $req = mysql_query("select * from membres where pseudo='". $login ."'",$db)or die(mysql_error());
$res=mysql_num_rows($req);
    // on compte le nombre de résultats
    $res = mysql_num_rows($req); 
    if($res!=0)  // le pseudo existe déjà, on affiche un message d'erreur
        {
        echo '<font color="red">Désolé, mais ce pseudo est déjà pris !</font>';
        }
    else  // Le pseudo est pas encore pris, on insère les informations du formulaire dans la table
        {    	
	   // on se connecte à MySQL
$db = mysql_connect($host, $login,$passe) or die("Impossible de se connecter !");
// on sélectionne la base
mysql_select_db(medieland,$db) or die("Erreur de selection" .mysql_error());
     // on écrit la requête sql
    $sql = "INSERT INTO membres(id, pseudo, passe, email, avatar, sexe, metier, age) VALUES('','$login','$passe','$email','$avatar','$sexe','$metier', '$age')";
     // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    // on redirige vers une page de confirmation
    	header("Location: bravo.php");
    mysql_close();  // on ferme la connexion
    } 
?> 
Le message d'erreur qui est généré

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\program files\easyphp1-8\www\medieland\ins.php on line 24
Modifié en dernier par YVES le 15 juin 2005, 23:31, modifié 5 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juin 2005, 23:23

salut

avant qu'on commence à chercher peux-tu éditer ton post et le mettre en balise PHP stp ? il y a un bouton dans la fenêtre d'édition

et indiquer la ligne 24 merci

Eléphanteau du PHP | 25 Messages

15 juin 2005, 23:35

Aaalut,

Si tu as ce message d'erreur c'est parce que ta requête n'aboutit pas à un résultat.

L'erreur est peut-être là (j'ai pas testé mais bon, peut etre...) :
$req = mysql_query("SELECT * FROM membres WHERE pseudo='$login'" ,$db)
Tu n'as pas besoin de concaténer la bête pour que ça marche. Je suis pas sur que ça vienne de là, mais tu peux tester. Sinon je te dis, c'est parce que ta requête Mysql n'aboutit pas.
Penses à faire des tests sous Phpmyadmin avant de caler tes requêtes dans ton code.

Et vires éventuellement les espaces ici :
$login=htmlentities($_POST['pseudo']); 
Voilou !

Keep on coding in the free world !
Modifié en dernier par Morbid Scythe le 15 juin 2005, 23:38, modifié 1 fois.

Mammouth du PHP | 19672 Messages

15 juin 2005, 23:37

Le problème vient du second paramètre que tu mets dans la fonction mysql_query() : le problème, c'est que la ligne en question, là où tu sélectionnes la base de données, est absente du bout de code que tu nous montres.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: