problème incompréhensible de header

Petit nouveau ! | 3 Messages

07 mai 2006, 15:48

Bonjour !

Bon je me suis mis au php y'a pas très longtemps et je travaille actuellemnt à la réalisation d'un système d'identification pour créer des comptes sur un site ...
Bref mon problème est le suivant : j'ai une première page avec un formulaire où l'utilisateur entre son pseudo et son password, le tout est envoyé en POST à un un fichier "login.php". Celui-ci doit traiter ces données c'est à dire : se connecter à la table "comptes" qui contient les noms et passwords correspondants, et envoyer l'internaute soit sur la page "compte.php" s'il est identifier correctement soit vers "erreur.php".

Voila le code de "login.php" :
<?php
$host = "***";
$login = "***";
$password = "***";
$database ="***";
$user_name=$_POST['name'];
$user_password=$_POST['password'];
mysql_connect($host,$login,$password);
mysql_selectdb($database);
$sql = 'SELECT password FROM comptes WHERE name=\''.$name.'\''; 
$req = mysql_query($sql);
$a=mysql_fetch_array($req );
if(empty($user_name) or empty($user_password)){
		$page="erreur.php";
}else if( ($a['password'])==($user_password) ){
		$page="compte.php";
}else{
		$page="erreur.php";
};
header("location: ".$page);
?>
Mais alors en testant ce code sur mon espace chez free et en local avec apache j'ai ce message :

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started .../login.php:1) in .../login.php on line 20
En me documentant en détail sur "header" j'ai pu lire que la principale erreure était de faire sortir du texte (avec des espaces qui trainent pas exemple ...) avant le header, ce que semble dire ce message pourtant j'ai bien vérifié plsuieurs fois, rien n'y fait ... :(

Donc si quelqu'un a une idée j'aimerais bien enfin comprendre ce qui ne tourne pas rond. Merci :)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

07 mai 2006, 17:56

Salut,

quelle est la ligne 20 du script ?
Juste pour voir, enlève ce point-virgule :
}; // <------------------------------
header("location: ".$page); 

Petit nouveau ! | 3 Messages

07 mai 2006, 18:09

Raaaaah !
Merci pour ton aide ouckileou mais je viens tout juste de comprendre d'où venait le problème : j'utilisais Notepad++ pour coder mes fichiers php et en enregistrant en UTF-8 il m'avait rajouté en début de fichier des symbols inutils que je ne voyait pas ... ce n'est que là en ouvrant mon fichier avec bloc note que j'ai m'en apercevoir et en les supprimant tout rentre déjà dans l'ordre ! :)

Donc désolé pour cette fausse question lol :? :)
(et au passage la morale : vive bloc note la seul vraie valeur sûre du codeur ;) ).

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

07 mai 2006, 18:45

Alors tu peux clique sur Résolu ;)