Warning: Cannot modify header information - headers already sent by

Résolu
MisterCpp Messages postés 3 Date d'inscription vendredi 17 février 2012 Statut Membre Dernière intervention 20 février 2012 - 17 févr. 2012 à 10:20
MisterCpp Messages postés 3 Date d'inscription vendredi 17 février 2012 Statut Membre Dernière intervention 20 février 2012 - 20 févr. 2012 à 09:18
Bonjour,

Je m'en remet à vous car j'ai épuisé toutes les possibilités que j'ai pu trouver sur les forums et autre..
J'ai développer un site vitrine basique en Php pour une entreprise avec inscription et connexion base de donnée mysql en local sur ma machine, le site fonctionne parfaitement.
Je le met donc sur le serveur fournis par l'entreprise en changeant les paramètres de connexion ... et la c'est le drame!

J'ai deux erreurs:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/.sites/51/site255/web/web-orange/pages/action/actionConnexion.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /home/.sites/51/site255/web/web-orange/pages/action/actionConnexion.php:19) in /home/.sites/51/site255/web/web-orange/pages/action/actionConnexion.php on line 29

Et voici mon fichier actionConnexion.php (sans les paramètres de connexion bien sur )appelé via un formulaire de connexion:
<?php
session_start(); 
//On ouvre une session on a donc toutes les variales de sessions déclarée lors de la connexion disponibles exemple : $_SESSION['connect']
$login=$_POST['nom'];
$mdp=MD5($_POST['passe']);
//Ouverture Connexion
$connexion=mysql_connect('...','...','...');
//Choisir Base de Données
$db=mysql_select_db('...',$connexion);
//Requête : On Compte le nombre d'utilisateur enregistré dans la base comportant le nom et le login passé dans le formulaire de connexion_membre.php
$sql="SELECT iD_USERS, COUNT(*) AS nb FROM utilisateurs WHERE nom='".$login."' AND mdp='".$mdp."'";
$resultat=mysql_query($sql);
$resultat2= mysql_fetch_array($resultat);	
if($resultat2['nb']==1){ 					//Si un utilisateur est authentifié				
$_SESSION['connect'] ="true";	//On en déclare deux : une pour vérifié l'authentification
$_SESSION['nom'] = $login;		//Une pour stocker le nom de l'utilisateur connecté			
$_SESSION['id_utilisateur'] = $resultat2['iD_USERS'];		
}
mysql_close($connexion); //fermeture de la connexion mysql
//On se redirige vers l'index ou on pourra alors utiliser les variables ainsi déclarée
header("../../index.php");
?>


Ps: en précisant que j'ai déjà essayé d'enlever tous les espaces, le '@' devant le 'mysql_fetch_array' ne résout pas mon problème mais lève seulement l'affichage de l'erreur.

SVP Help!

3 réponses

MisterCpp Messages postés 3 Date d'inscription vendredi 17 février 2012 Statut Membre Dernière intervention 20 février 2012 1
17 févr. 2012 à 10:28
Correction j'ai enlevé certain espace voila les vrai lignes d'erreur:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/.sites/51/site255/web/web-orange/pages/action/actionConnexion.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /home/.sites/51/site255/web/web-orange/pages/action/actionConnexion.php:13) in /home/.sites/51/site255/web/web-orange/pages/action/actionConnexion.php on line 21
1
lherblot Messages postés 18 Date d'inscription mardi 11 octobre 2011 Statut Membre Dernière intervention 17 février 2012 1
17 févr. 2012 à 15:46
Salut.

Alors, déjà, ta deuxième erreur vient de ta première : la fonction header() ne fonctionne que si aucun caractère n'a été envoyé. Et là ce n'est pas le cas puisqu'un message de Warning est envoyé. Donc si tu corriges l'erreur du fetch_array ça devrait résoudre la seconde erreur.

Pour le fetch_array. Essaie déjà de mettre ta ligne comme ça :
$sql="SELECT iD_USERS, COUNT(*) AS nb FROM utilisateurs WHERE nom='$login' AND mdp='$mdp'";
car les concaténations sont inutiles ici (tu utilises des ", autant t'en servir comme il faut : les variables sont interprétées à l'intérieur).

Sinon, ta requête a l'air correcte. Peut-être un problème sur le iD_USERS qui devrait peut-être être ID_USERS plutôt, non ?

Si ça ne vient pas de là, balance ta requête dans PhpMyAdmin ou ta console pour voir l'erreur renvoyée, ça peut aider.

Cheers !

-----------------------------------------
Loïc Herblot
Créateur de sites web pour professionnels
http://www.loicherblot.fr

Je suis ouvert aux propositions de partenariat professionnel avec d'autres développeurs web, des web designers, rédacteurs web
1
MisterCpp Messages postés 3 Date d'inscription vendredi 17 février 2012 Statut Membre Dernière intervention 20 février 2012 1
20 févr. 2012 à 09:18
Parfait!!
En effet je n'ai pas vue les concaténations ,je n'ai plus d'erreur après avoir corriger le fetch_array!
Merci lherblot
0
Rejoignez-nous