Visualizzazione risultati 1 fino 11 di 11

Discussione: [php]problema header

  1. #1
    Guest

    Predefinito [php]problema header

    sto creando uno script per il login
    Codice PHP:
    <?
    $path
    = '..';

    if (
    $_SESSION['user'] == ""){

    $user = $_POST['user'];
    $pass = $_POST['pass'];

    include(
    "include/function.php");
    $risultato = connetti("SELECT pass FROM ".$prefix."utenti WHERE user='".$user."' LIMIT 1; ");
    $row = mysql_fetch_array($risultato);

    if (
    md5($pass) == $row[0])
    {
    header("Location: $path/index.php");
    exit;
    } else {
    header("Location: $path/ec/errorePass.php");
    exit;

    }

    } else {
    // errore
    header("Location: $path/ec/erroreLog.php");
    exit;
    }
    ?>
    e il file function.php
    Codice PHP:
    function connetti($sql){
    include(
    'config.php');
    $db = mysql_connect($db_host, $db_user, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione a MySql");
    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database $db_name nel host $db_host per l'utente $db_user.");
    $query = "$sql";
    $risultato = mysql_query($query, $db) or die ("Impossibile mostrare $sql - db: $database<br>".
    mysql_error());
    return
    $risultato;
    }
    Il tutto mi da errore. Sia che io metta la password giusta sia sbagliata. Mi da errore nell'uso di header, come se ci fosse qualcosa di scritto prima...

    Sapete darmi qualche dritta

  2. #2
    Guest

    Predefinito

    che errore ti dà?

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    non puoi usare header() se hai già fatto dell'output, perchè nella comunicazione gli header vengono prima del testo. Quindi se una qualche riga precedente da errore e mostra un messaggio, avrai anche l'errore su header.

    Commenta le chiamate ad header(), o sostituiscile con semplici echo e guarda cosa succede prima

    edit: se non c'è altro codice in quella pagina, gli exit non ti servono: i rami dell'if sono mutuamente esclusivi !
    Ultima modifica di dreadnaut : 16-10-2006 alle ore 18.25.16

  4. #4
    Guest

    Predefinito

    Codice PHP:
    Warning: Cannot modify header information - headers already sent by (output started at /Users/eraser/Sites/marco/ec/include/function.php:18) in /Users/eraser/Sites/marco/ec/registraSql.php on line 24
    La linea di function 18 corrisponde a:
    Codice PHP:
    ?>
    e non credo che sia quello il problema da che c'è anche l'apertura del codice php.


    Senza l'headers tutto funziona correttamente.



    EDIT:
    Citazione Originalmente inviato da dreadnaut
    non puoi usare header() se hai già fatto dell'output, perchè nella comunicazione gli header vengono prima del testo. Quindi se una qualche riga precedente da errore e mostra un messaggio, avrai anche l'errore su header.

    Commenta le chiamate ad header(), o sostituiscile con semplici echo e guarda cosa succede prima

    edit: se non c'è altro codice in quella pagina, gli exit non ti servono: i rami dell'if sono mutuamente esclusivi !
    il codice è solo cosi' non c'è nient'altro. Forse perchè richiamo una funzione che mi ritorna un valore...dici che questo viene inteso come output.
    Gli exit li ho messi facendo tentativi, adesso li togliero'



    FunCool: Non fare UP, usa il tasto Edita.
    Ultima modifica di funcool : 17-10-2006 alle ore 16.15.25

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da sql
    Codice PHP:
    Warning: Cannot modify header information - headers already sent by (output started at /Users/eraser/Sites/marco/ec/include/function.php:18) in /Users/eraser/Sites/marco/ec/registraSql.php on line 24
    La linea di function 18 corrisponde a:
    Codice PHP:
    ?>
    e non credo che sia quello il problema da che c'è anche l'apertura del codice php.


    Senza l'headers tutto funziona correttamente.
    e la linea 24 del file sql.php?

  6. #6
    Guest

    Predefinito

    in questo caso è l'ultimo header, la riga di errore cambia a seconda delle condizioni. Cmq sono i 3 header.

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    output started at /Users/eraser/Sites/marco/ec/include/function.php:18
    L'errore è decisamente li, basta trovarlo. Non è che ci sono un paio di spazi dopo il ?> ?

  8. #8
    Guest

    Predefinito

    Quando mi capita che la linea contenente l'errore è quella con ?> di solito mi sono dimenticato qualche }.

  9. #9
    Guest

    Predefinito

    il codice è tutto quello che vi ho postato. Niente di più niente di meno. Probabilmente c'è qualche problema di fondo che non so...altre idee??

  10. #10
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    E' la mia stessa impressione, anche perché spesso viene sottovalutato,
    quindi darei un po' più di attenzione alla domanda di dreadnut:
    Citazione Originalmente inviato da dreadnaut
    Non è che ci sono un paio di spazi dopo il ?> ?
    Basta uno spazio fuori dal codice php e viene considerato output, quindi controllerei meglio.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  11. #11
    Guest

    Predefinito

    ooppps....non avevo letto il messaggio precedente. Ho visto e ci sono degli spazi dopo ?>. Li ho tolti, adesso pero' non ho la possibilità di provare. Vi sapro' a dire.



    --------
    EDIT: Ok risolto. Grazie
    Ultima modifica di sql : 18-10-2006 alle ore 08.54.10

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •