Xeon Posté 6 Octobre 2005 Posté 6 Octobre 2005 Bonjour, J'ai un message d'erreur sur le code d'une page qui suit une inscription par formulaire : <?php /* Program: nouveaumembre.php * Desc: Affiche une page de bienvenue à l'attention du nouveau membre en l'appelant par son prénom et nom. Il a ensuite le choix entre visiter les pages * à accès réservé ourevenir à la page d'accueil du site Web */ _AT_session_start(); # if (@$_SESSION['auth'] != "yes") # { header("Location: login.php"); exit(); } include("xxxx.inc"); # $connection = mysql_connect($host,$user,$password) or die ("Couldn't connect to server."); # $db = mysql_select_db($database, $connection) or die ("Couldn't select database."); # $sql = "SELECT prénom,nom FROM Membre WHERE nomLogin='{$_SESSION['logname']}'"; $result = mysql_query($sql) or die("Couldn't execute query 1."); $ligne = mysql_fetch_array($result,MYSQL_ASSOC); extract($ligne); #31 echo "<html> <head><title>Bienvenue au nouveau membre</title></head> <body> <h2 align='center' style='margin-top: .7in'> Bienvenue $prénom $nom</h2>\n"; ?> Voici l'erreur Warning: extract() [function.extract]: First argument should be an array in /home/matieco/public_html/php/anicata/passe/nouveaumembre.php on line 31 Ne pas s'occuper des #N° de page. La ligne 31, dans le code c'est extract($ligne); Merci si vous pouvez m'aider car je ne comprends pas.
Cariboo Posté 6 Octobre 2005 Posté 6 Octobre 2005 Une évidence d'abord : ta fonction extract attend qu'on lui passe un argument de type "array". Logique, puisque normalement, si ton script fonctionne, $ligne est bien un array. Sauf que ta requête ne renvoie rien, en toute probabilité. Pour déboguer la chose : affiche la requête à coups de "echo $sql". Et teste la requête obtenue, si tu ne vois pas le problème au premier coup d'oeil, dans phpmyadmin par exemple, tu auras sans doute une explication supplémentaire. C'est peut-être un problème avec la syntaxe de {$_SESSION['logname']}
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant