• User

    Errore in Session-start

    Salve ragazzi, devo inserire uno script per la login...ma mi appare un errore all'avvio della pagina:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Programmi\Apache Group\Apache2\htdocs\identificazione\inizia.php:4) in C:\Programmi\Apache Group\Apache2\htdocs\identificazione\check.php on line 2

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Programmi\Apache Group\Apache2\htdocs\identificazione\inizia.php:4) in C:\Programmi\Apache Group\Apache2\htdocs\identificazione\check.php on line 2

    Non capisco qual'è la causa!
    In remoto su un dominio funziona tranquillamente...mentre in locale no!

    Sul mio pc ho installato:

    • PHP 5.1.2
    • Mysql 5.0.19
    • Apache 1.3.34

    Spero possiate aiutarmi!:D

    Grazie anticipatamente


  • Moderatore

    Ciao.

    Tale errore appare di solito quando stampi qualche carattere prima di inviar un header. A volte basta un solo spazio.

    Controlla che prima di session_start() non ci sia qualcosa. Cosa fa inizia.php ad esempio? Fa apparire qualcosa? 🙂


  • User

    Ciao Massy, si ma il remoto mi funziona!:( quindi nn penso sia questione di sintassi o errore vario...kmq ti incollo il codice...magari se puoi gli dai un'okkio:)

    Login.php

    <?php
    session_start&#40;&#41;;
    if &#40;isset&#40;$_POST&#91;"invio"&#93;&#41;&#41; &#123;
      $puntatore = fopen&#40;"pasx.txt", "r"&#41;;
      $trovato = 0;
      while &#40;&#40;!feof&#40;$puntatore&#41;&#41; && &#40;!$trovato&#41;&#41; &#123;
        $linea = fgets&#40;$puntatore&#41;;
        $trovato = stristr&#40;$linea, $_POST&#91;"userid"&#93;&#41;;
        $puntatore++;
      &#125;
      fclose&#40;$puntatore&#41;;
      list&#40;$nomeutente, $password&#41; = split&#40;"~:~", $linea&#41;;
      if &#40;&#40;$trovato&#41;  && &#40;$_POST&#91;"passwd"&#93; == trim&#40;$password&#41;&#41;&#41; &#123;
        session_register&#40;'autorizzato'&#41;;
        $_SESSION&#91;"autorizzato"&#93; = 1;
        $destinazione = "inizia.php";
      &#125; else &#123;
        $destinazione = "destroy.php";
      &#125;
      echo '<script language=javascript>document.location.href="'.$destinazione.'"</script>';
    &#125; else &#123;
      // HTML ?>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <html>
      <head>
      <title>Prova Login php</title>
      <meta name="Generator" content="EditPlus">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
      </head>
      <body>
      <form method=post action="login.php">
        <table width="300" cellpadding="4" cellspacing="1" border="0">
          <tr>
            <td colspan="2" align="left">
              <u>inserite nome utente e password</u>&#58;
            </td>
          </tr>
          <tr>
            <td>
              nome utente&#58;
            </td>
            <td>
              <input type="text" name="userid">
            </td>
          </tr>
          <tr>
            <td>
              password&#58;
            </td>
            <td>
              <input type="password" name="passwd">
            </td>
          </tr>
          <tr>
            <td colspan="2">
              <input type="submit" name="invio" value="invio">
              
              <input type="reset" name="cancella" value="cancella">
            </td>
          </tr>
        </table>
        
    
      </form>
      </body>
      </html>
    <? //fine HTML
    &#125;
    ?>
    

    Inizia.php

    <? include&#40;"check.php"&#41;; ?>
    
    
    <html>
    <head>
    <title> Pagina di test - PHP login </title>
    <!--meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="" -->
    </head>
    <body>
    Esempio&#58; login effettuato con successo
    </body>
    </html>
    >
    

    check.php

    <?php
    session_start&#40;&#41;;
    if &#40;!session_is_registered&#40;'autorizzato'&#41;&#41; &#123;
      echo "<h1>Area riservata - accesso negato</h1>";
      die;
    &#125;
    ?>
    

    Ecco qui il tutto....spero potrai aiutarmi!
    Grazie anticipatamenteeee...ciao ciao,Tony


  • Moderatore

    Ciao
    Ho dato uno sguardo al volissimo e mi sembra tutto a posto.

    A sto punto ipotizzo degli a capo prima di <? session_start().

    :ciauz: