JeuWeb - Crée ton jeu par navigateur

Version complète : Problème lors de ma connexion
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Bonjour à tous !

J'ai commencé à tester mon jeu avec ifrance (rigolez pas ... arrêtez) et ça allait plus où moins à part la vieille pub en haut.
Puis j'ai découvert Olympe-network. C'est mieux je trouve.
Lorsque j'ai changé mon hébergeur (je n'ai pas oublié de changer les données pour la BDD), des problèmes apparaissent ...

En voici un ici qui perdure ...


J'ai utilisé un tuto de ce forum pour faire mon inscription/connexion.

Donc mon code erreur est celle-ci :

Citation :Vous êtes actuellement redirigé vers l'accueil.
Warning: Cannot modify header information - headers already sent by (output started at /www/monjeu/login.php:3) in /www/reignofdarkness/login.php on line 120

Vous avez oublié de remplir un champ.

Warning: Cannot modify header information - headers already sent by (output started at /www/monjeu/login.php:3) in /www/reignofdarkness/login.php on line 124


Voici comment j'ai agencé le chmilblik sur cette fameuse page Login.php :

J'ai ceci tout en haut de ma page, avant le HTML :

Code PHP :
<? 
session_start
();
mysql_connect("sql.olympe-network.com", "héhé", "haha");
mysql_select_db("tatata");
?>

Mon cade html est là, et puis de nouveau :

Code PHP :
<?

if(isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['mdp'])) {
extract($_POST);
$sql = "select mdp from membres where pseudo='".$pseudo."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req); }
if(
$data['mdp'] != $mdp) {
echo
'<p>Mauvais identifiants, merci de r&eacute;essayer.</p>';
exit;
}
else {
session_start();
$_SESSION['pseudo'] = $pseudo;


echo
'Vous &ecirc;tes actuellement redirig&eacute; vers l\'accueil.';

header( "Location:game_connexion.php");
}
{
echo
'<p>Vous avez oubli&eacute; de remplir un champ.</p>';
header( "Location:index.php");
}
?>

Le problème est détecté aux lignes 120 et 124, qui sont les deux header :
header( "Location:game_connexion.php");
et
header( "Location:index.php");

J'ai lu le topic sur l'erreur "Headers already sent by" qui dit que tout code doit être inséré avant le html, mais même en changeant ça, ça ne va pas ...
Voilà où j'en suis ...
Pouvez-vous m'éclairer s'il-vous-plait ?

Merci d'avance,

Cédric
Ton header location doit être tout en haut de ta page. S'il y a du code html avant cela ne marchera pas.

EDIT : Grilled :p
Je repost vu que j'avais mal lu le message, et la réponse suivant l'ex-mienne est nettement plus juste ^^

Donc en fait, vires juste les echo dans ton code et ça marchera, à l'exception de :

Code PHP :
<?php 
echo '<p>Mauvais identifiants, merci de r&eacute;essayer.</p>';

Et au passage, je reposte ce que je disais : les deux causes principales de l'erreur que tu disais si on ne voit pas d'echo sont des espaces ou des retours à la ligne en début de fichier, et un mauvais encodage (particulièrement l'UTF-8, suivant les serveurs il peut poser problème, pensez à encoder sans BOM éventuellement)
Plop !

J'te conseille de t'orienter vers les fonctions [ob_*] pour gérer aisément ce genre de situation :]

@tchaOo°
Les fonctions de bufferisation de sortie ne gère cependant pas les problèmes liés à un mauvais encodage :-p Et accessoirement, ici de toutes façons les echos sont inutiles puisque le navigateur va rediriger la personne immédiatement, ils ne seront donc pas lus de toutes manières.
Merci à tous pour vos réponses !

J'ai enlevé les echo mais j'ai toujours le même problème ...


Citation :Warning: Cannot modify header information - headers already sent by (output started at /www/monjeu/login.php:3) in /www/reignofdarkness/login.php on line 23

Warning: Cannot modify header information - headers already sent by (output started at /www/monjeu/login.php:3) in /www/reignofdarkness/login.php on line 26

Est-ce normal ?
Coucou,

Sur la page :
http://reignofdarkness.olympe-network.com/

Je vois qu'il y 'a au moins 3 espaces blanc : 1 en début de page, et 2 après les Warnings.
Code :
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /www/reignofdarkness/login.php:3) in <b>/www/reignofdarkness/login.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /www/reignofdarkness/login.php:3) in <b>/www/reignofdarkness/login.php</b> on line <b>23</b><br />


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
Je pense que tu dois avoir un "echo" qui fout la grouille ... ou que tout simplement l'accès à la BDD est planté et te renvoie un message nul. Tu aurais pas un die ('') qui trainerait ? Cela pourrait-il te mettre un message bout de code d'erreur ?

En tous les cas, le bug est fastidieux à trouver ... mais je pense que ce n'est qu'une erreur dans tes scripts.

kéké
PS : tu pourrais rajouter un lien vers jeuweb dans tes liens ! (ou vers mon jeu aussi ^^)
Pas forcément un echo qui fout le bazar d'ailleurs, un simple saut de ligne en trop peut faire ça. Ca m'est arrivé une fois, j'avais un espace à la toute fin d'un fichier php que j'incluais avant la session, donc ca faisait ?> et l'espace après...

Ca vient forcément (99,9% des chances) d'un truc comme ça.
je plussoie Paul ^^

kéké (je dirais même plus ! 99,99%)
Plop !

D'où l'intérêt de ne jamais fermer les fichiers PHP qui sont inclus.
Et la gestion des buffers permet très facilement de gérer ce genre de désagrément.

@tchaOo°
Pages : 1 2