Warning: Cannot modify header information - headers already sent by [Résolu]

MisterCpp 3 Messages postés vendredi 17 février 2012Date d'inscription 20 février 2012 Dernière intervention - 17 févr. 2012 à 10:20 - Dernière réponse : MisterCpp 3 Messages postés vendredi 17 février 2012Date d'inscription 20 février 2012 Dernière intervention
- 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!
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
MisterCpp 3 Messages postés vendredi 17 février 2012Date d'inscription 20 février 2012 Dernière intervention - 17 févr. 2012 à 10:28
1
Merci
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

Merci MisterCpp 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de MisterCpp
Meilleure réponse
lherblot 18 Messages postés mardi 11 octobre 2011Date d'inscription 17 février 2012 Dernière intervention - 17 févr. 2012 à 15:46
1
Merci
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

Merci lherblot 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de lherblot
MisterCpp 3 Messages postés vendredi 17 février 2012Date d'inscription 20 février 2012 Dernière intervention - 20 févr. 2012 à 09:18
0
Merci
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
Commenter la réponse de MisterCpp

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.