2013-07-04 5 views
0

j'ai cherché beaucoup à travers le web, mais aucun de la solution résolu mon problem..and je reçois toujours cette erreur
Warning: session_start() [function.session-start ]: ne peut pas envoyer cookie de session - têtes déjà envoyés par (output started ici est mon codecomment supprimer Impossible d'envoyer erreur de cookie de session complètement

<?php 
    ob_start(); 
    session_start(); 

    $myusername = $_POST['username']; 
    $mypassword = $_POST['password']; 

    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 

    $mypassword = md5($mypassword); 

    $con = mysql_connect("localhost", "root", ""); 
    if(!$con) { 
     die('Error connecting to server :'.mysql_error()); 
    } 
    mysql_select_db("user_login",$con); 

    $result = mysql_query("SELECT username, password FROM user_info WHERE username='$myusername' && password='$mypassword'"); 
    if(!mysql_fetch_array($result, MYSQL_ASSOC)) { 
     //echo "<b><p>Wrong username or password.</p></b>"; 
     //echo "<br /><a href='http://localhost/simic/option.php?page=login'> 
     Go back to login page </a>"; 
     header('Location: option.php?page=attempt_to_login'); 
    } else { 
     $_SESSION['access'] = 1; 
     $_SESSION['user'] = $_POST[username]; 
     header('Location: option.php?page=online'); 
    } 
    mysql_close($con); 

    ob_flush(); 
?> 

alors comment puis-je résoudre ce s'il vous plaît ??? toute aide

+0

vous avez du texte [whitespace] avant DevZer0

+0

'session_start();' devrait être la première chose à démarrer le script, déplacez-le à la ligne 01 – jycr753

+0

@ jycr753 session_start() n'a pas d'importance, son accord sur la ligne 2 –

Répondre

1

Certains serveurs par défaut ajouter du contenu? au HTML généré, assurez-vous que ce n'est pas le ca se (vérifiez le fichier source généré dans le navigateur et voyez s'il y a quelque chose que vous n'attendriez pas).

Essayez également de supprimer l'en-tête de nomenclature (s'il s'agit d'un codage UTF-8) dans le fichier PHP. Cela ne devrait pas être un problème, mais ça vaut toujours la peine d'essayer.

La suppression de l'en-tête de nomenclature est différente pour chaque éditeur. Pour Notepad ++ allez dans le menu Encodage et assurez-vous que "Encoder en UTF-8 sans nomenclature" est sélectionné. Si vous utilisez Sublime Text 2, cliquez sur File> Save with Encoding> UTF-8 (pas UTF-8 avec BOM).

+0

thenx, mais où puis-je l'enlever? – KIUTA

+0

J'ai mis à jour ma réponse avec quelques instructions. –

0

Vous devez vérifier si le codage de votre fichier est correct. Il devrait être UTF-8 sans BOM.

0

Votre problème est que vous avez quelque chose sortie du texte au navigateur "trop ​​tôt". Le premier octet de texte envoyé, de n'importe quelle source, vide toutes les informations d'en-tête HTTP sur le navigateur et empêche toute autre opération de type "en-tête" (comme l'envoi d'un cookie de session). Il y a beaucoup de choses qui peuvent envoyer du texte au navigateur de façon inattendue: espace avant un <?php, un message d'erreur à l'écran, une marque de commande d'octet UTF-8 dans un fichier, ou juste une sortie de programme ou HTML en désordre le code de cookie). En regardant la source de la page HTML dans le navigateur (View> Page Source ou similaire), vous pourriez être en mesure de voir ce texte. Si votre page est UTF-8, passez le navigateur à un codage à un seul octet tel que Latin-1 pour vider une marque d'ordre d'octets hors de la dissimulation. Une fois que vous avez identifié ce texte, le gros travail consiste à retrouver d'où il vient et à le réparer.

Questions connexes