Problème de d'envoie sur une page

Attila54800 Messages postés 7 Statut Membre -  
medoc13 Messages postés 65 Statut Membre -
Bonjour,

J'ai un léger soucis avec mon site de jeux.

En effet j'ai ce message d'erreur :

Warning: Cannot modify header information - headers already sent by (output started at /home/s/p/a/spacewargame/www/spacewargame/includes/constants.php:1) in /home/s/p/a/spacewargame/www/spacewargame/login.php on line 36

Warning: Cannot modify header information - headers already sent by (output started at /home/s/p/a/spacewargame/www/spacewargame/includes/constants.php:1) in /home/s/p/a/spacewargame/www/spacewargame/login.php on line 39


Est-ce que vous pourriez m'aiguillez sur la démarche à suivre pour résoudre ce prooblème ?

Merci d'avance.
Configuration: Windows Vista
Firefox 2.0.0.16

13 réponses

  1. mjmdurand Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   44
     
    la fonction header en php, tu l'a bien mise au debut du fichier, avant les <DOCTYPE ect...ect...ect...

    ?
    0
  2. Attila54800 Messages postés 7 Statut Membre
     
    Ben la fonction se trouve ici, parce qu'elle doit être ici normalement ^^. Les deux lignes en gras posent problème apparament.

    if ($login['password'] == md5($_POST['password'])) {
    if (isset($_POST["rememberme"])) {
    $expiretime = time() + 31536000;
    $rememberme = 1;
    } else {
    $expiretime = 0;
    $rememberme = 0;
    }

    @include('config.php');
    $cookie = $login["id"] . "/%/" . $login["username"] . "/%/" . md5($login["password"] . "--" . $dbsettings["secretword"]) . "/%/" . $rememberme;
    setcookie($game_config['COOKIE_NAME'], $cookie, $expiretime, "/", "", 0);

    unset($dbsettings);
    header("Location: ./frames.php");
    exit;
    0
  3. medoc13 Messages postés 65 Statut Membre 21
     
    if ($login['password'] == md5($_POST['password'])) {
    if (isset($_POST["rememberme"])) {
    $expiretime = time() + 31536000;
    $rememberme = 1;
    } else {
    $expiretime = 0;
    $rememberme = 0;
    }
    @include('config.php');
    $cookie = $login["id"] . "/%/" . $login["username"] . "/%/" . md5($login["password"] . "--" . $dbsettings["secretword"]) . "/%/" . $rememberme;
    setcookie($game_config['COOKIE_NAME'], $cookie, $expiretime, "/", "", 0);
    unset($dbsettings);
    header("Location: ./frames.php");
    exit;

    quand tu utilise un header il ne faut aucune sortie affichage, et pas d'espace entre les lignes
    0
  4. Attila54800 Messages postés 7 Statut Membre
     
    J'ai supprimé les espaces mais j'ai toujours le même problème. :'(
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. medoc13 Messages postés 65 Statut Membre 21
     
    peux tu mettre la page entiere
    0
  7. Attila54800 Messages postés 7 Statut Membre
     
    <?php
    
    
    define('INSIDE'  , true);
    define('INSTALL' , false);
    
    $InLogin = true;
    
    $ugamela_root_path = './';
    include($ugamela_root_path . 'extension.inc');
    include($ugamela_root_path . 'common.' . $phpEx);
    
    	includeLang('login');
    
    	if ($_POST) {
    		$login = doquery("SELECT * FROM {{table}} WHERE `username` = '" . mysql_escape_string($_POST['username']) . "' LIMIT 1", "users", true);
    
    		if ($login) {
    			if ($login['password'] == md5($_POST['password'])) {
    				if (isset($_POST["rememberme"])) {
    					$expiretime = time() + 31536000;
    					$rememberme = 1;
    				} else {
    					$expiretime = 0;
    					$rememberme = 0;
    				}
    				@include('config.php');
    				$cookie = $login["id"] . "/%/" . $login["username"] . "/%/" . md5($login["password"] . "--" . $dbsettings["secretword"]) . "/%/" . $rememberme;
    				setcookie($game_config['COOKIE_NAME'], $cookie, $expiretime, "/", "", 0);
    				unset($dbsettings);
    				header("Location: ./frames.php");
    				exit;
    			} else {
    				message($lang['Login_FailPassword'], $lang['Login_Error']);
    			}
    		} else {
    			message($lang['Login_FailUser'], $lang['Login_Error']);
    		}
    	} else {
    		$parse = $lang;
    		$query = doquery('SELECT username FROM {{table}} ORDER BY register_time DESC', 'users', true);
    		$parse['last_user'] = $query['username'];
    		$query = doquery("SELECT COUNT(DISTINCT(id)) FROM {{table}} WHERE onlinetime>" . (time()-900), 'users', true);
    		$parse['online_users'] = $query[0];
    		$parse['users_amount'] = $game_config['users_amount'];
    		$parse['servername'] = $game_config['game_name'];
    		$parse['forum_url'] = $game_config['forum_url'];
    		$parse['PasswordLost'] = $lang['PasswordLost'];
    
    		$page = parsetemplate(gettemplate('login_body'), $parse);
    		display($page, $lang['Login']);
    	}
    
    // -----------------------------------------------------------------------------------------------------------
    // History version
    
    ?>
    


    Voilà le fichier login.php qui me pose problème aux llignes 35 et 37
    0
  8. medoc13 Messages postés 65 Statut Membre 21
     
    comme je te l'ai dit pas d'espace, pas d'echo, pas de html...
    //enleve tous les espace entre les ligne
    //l<?php doit etre sur la premiere ligne de ta page pas d'espace avant
    //bon la j'ai enleve tous les espace, mais tu peux les remplace par un commentaire // ou /* */
    <?php
    define('INSIDE' , true);
    define('INSTALL' , false);
    $InLogin = true;
    $ugamela_root_path = './';
    include($ugamela_root_path . 'extension.inc');
    include($ugamela_root_path . 'common.' . $phpEx);
    includeLang('login');
    if ($_POST) {
    $login = doquery("SELECT * FROM {{table}} WHERE `username` = '" . mysql_escape_string($_POST['username']) . "' LIMIT 1", "users", true);
    if ($login) {
    if ($login['password'] == md5($_POST['password'])) {
    if (isset($_POST["rememberme"])) {
    $expiretime = time() + 31536000;
    $rememberme = 1;
    } else {
    $expiretime = 0;
    $rememberme = 0;
    }
    @include('config.php');
    $cookie = $login["id"] . "/%/" . $login["username"] . "/%/" . md5($login["password"] . "--" . $dbsettings["secretword"]) . "/%/" . $rememberme;
    setcookie($game_config['COOKIE_NAME'], $cookie, $expiretime, "/", "", 0);
    unset($dbsettings);
    header("Location: ./frames.php");
    exit;
    } else {
    message($lang['Login_FailPassword'], $lang['Login_Error']);
    }
    } else {
    message($lang['Login_FailUser'], $lang['Login_Error']);
    }
    } else {
    $parse = $lang;
    $query = doquery('SELECT username FROM {{table}} ORDER BY register_time DESC', 'users', true);
    $parse['last_user'] = $query['username'];
    $query = doquery("SELECT COUNT(DISTINCT(id)) FROM {{table}} WHERE onlinetime>" . (time()-900), 'users', true);
    $parse['online_users'] = $query[0];
    $parse['users_amount'] = $game_config['users_amount'];
    $parse['servername'] = $game_config['game_name'];
    $parse['forum_url'] = $game_config['forum_url'];
    $parse['PasswordLost'] = $lang['PasswordLost'];

    $page = parsetemplate(gettemplate('login_body'), $parse);
    display($page, $lang['Login']);
    }
    // -----------------------------------------------------------------------------------------------------------
    // History version
    ?>
    0
  9. Attila54800 Messages postés 7 Statut Membre
     
    Bon j'ai essayer avec la version sans les espaces, mais ca ne change rien , j'ai toujours le meme problème sauf que le numéro de ligne a changé (normal puisqu'on a enlevé les espaces).

    Donc apparament le problème vient de cette ligne :

    setcookie($game_config['COOKIE_NAME'], $cookie, $expiretime, "/", "", 0);


    et de celle-ci :

    header("Location: ./frames.php");

    Ce sont les lignes 22 et 24
    0
  10. medoc13 Messages postés 65 Statut Membre 21
     
    il ya encore un espace

    $parse = $lang;
    $query = doquery('SELECT username FROM {{table}} ORDER BY register_time DESC', 'users', true);
    $parse['last_user'] = $query['username'];
    $query = doquery("SELECT COUNT(DISTINCT(id)) FROM {{table}} WHERE onlinetime>" . (time()-900), 'users', true);
    $parse['online_users'] = $query[0];
    $parse['users_amount'] = $game_config['users_amount'];
    $parse['servername'] = $game_config['game_name'];
    $parse['forum_url'] = $game_config['forum_url'];
    $parse['PasswordLost'] = $lang['PasswordLost'];
    //ici
    $page = parsetemplate(gettemplate('login_body'), $parse);
    display($page, $lang['Login']);
    0
  11. Attila54800 Messages postés 7 Statut Membre
     
    Apparemment ce n'est pas un problème d'espace :s

    J'ai toujours les mêmes messages d'erreurs
    0
  12. medoc13 Messages postés 65 Statut Membre 21
     
    tu peux aficher le nouveau message d'erreur
    0
  13. Attila54800 Messages postés 7 Statut Membre
     
    Warning: Cannot modify header information - headers already sent by (output started at /home/s/p/a/spacewargame/www/spacewargame/includes/constants.php:1) in /home/s/p/a/spacewargame/www/spacewargame/login.php on line 22

    Warning: Cannot modify header information - headers already sent by (output started at /home/s/p/a/spacewargame/www/spacewargame/includes/constants.php:1) in /home/s/p/a/spacewargame/www/spacewargame/login.php on line 24

    Les numéros de lignes ont changé car on a supprimé les espaces.
    0
  14. medoc13 Messages postés 65 Statut Membre 21
     
    je crois que tu as raison, il ya un probleme entre le cookie et le header
    essaye de mettre ton cookie en haut de la page dans un ob_start ... ob_flush(tappe sur google parceque je l'utilise pas)
    0