Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    Gestire un errore nel Log-In

    Salve a tutti devo fare una pagina di log-in in cui uso la nuova classe mysqli.
    Il codice per connettersi al DB è questo :

    Codice PHP:
    $conn = @new mysqli(DB_HOST$_SESSION['user'], $_SESSION['password'], DB_DBASE);
            
            if(!
    $conn)  // La connessione non va a buon fine rifare il log-in
                   
    {
                      
    header("location: http://localhost/pippo/admin/");
              exit();
                   }

                   else
                  {
                     
    mostra_pagina();
                  } 
    Il codice non funziona mi potete aiutare?

    P.S.
    Questo codice è all'inizio della pagina, quindi non c'è nessun output prima della funzione header.

  2. #2
    Sarebbe utile sapere che cosa significa "non funziona".

  3. #3
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Per non funziona intendo che non si connette al DB.

    Questo è il codice non funzionante :
    Codice PHP:
    <?php
    session_name
    ('Log');
    session_start();


    $_SESSION['user'] = $_POST['user'];
    $_SESSION['password'] = $_POST['password'];

            
    //  Mi servono per vedere se le stringhe sono corrette e infatti le stampa
        
    echo "POST user: " $_POST['user'] ."
    \n"
    ;
        echo 
    "POST password: " $_POST['password'] ."
    \n"
    ;
        echo 
    "SESSION user: " $_SESSION['user'] ."
    \n"
    ;
        echo 
    "SESSION password: " $_SESSION['password'] ."
    \n"
    ;

    include 
    "../Libs-script-php/Libs/dbconninfo.inc";

    $conn = @new mysqli(DB_HOST$_SESSION['user'], $_SESSION['password'], DB_DBASE);
            
    if (
    mysqli_connect_errno())  // La connessione non va a buon fine rifare il log-in 
    {
        echo 
    "Connessione non riuscita";
        
    //header("location: http://localhost/pippocchio/admin/");
        
    exit();
    }
    ?>
    Paradossalmente invece questo funziona

    Codice PHP:
    <?php
    session_name
    ('Log');
    session_start();


    $_SESSION['user'] = $_POST['user'];
    $_SESSION['password'] = $_POST['password'];

            
    //  Mi servono per vedere se le stringhe sono corrette e infatti le stampa
        
    echo "POST user: " $_POST['user'] ."
    \n"
    ;
        echo 
    "POST password: " $_POST['password'] ."
    \n"
    ;
        echo 
    "SESSION user: " $_SESSION['user'] ."
    \n"
    ;
        echo 
    "SESSION password: " $_SESSION['password'] ."
    \n"
    ;
    $u "root";
    $p "pippo";
    include 
    "../Libs-script-php/Libs/dbconninfo.inc";

    $conn = @new mysqli(DB_HOST$u$pDB_DBASE);
            
    if (
    mysqli_connect_errno())  // La connessione non va a buon fine rifare il log-in 
    {
        echo 
    "Connessione non riuscita";
        
    //header("location: http://localhost/pippocchio/admin/");
        
    exit();
    }
    ?>
    Notate l'aggiunta delle variabili $u, $p.

  4. #4
    il session_start() deve stare prima di ogni altra istruzione...

  5. #5
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    E allora perchè il secondo codice funziona?
    E cmq la funzione session_start() sta all'inizio.

  6. #6
    Originariamente inviato da Samleo
    il session_start() deve stare prima di ogni altra istruzione...
    E da quando?

    Al massimo, deve stare prima di qualsiasi invio di dati al buffer d'uscita, ed anche in questo caso vi sono delle eccezioni.

    @wino_7

    Abilita la visualizzazione degli errori, rimuovi eventuali @ e richiama http://www.php.net/manual/en/mysqli.connect-error.php per ottenere eventuali errori di connessione non visualizzati.

  7. #7
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    Codice PHP:
    $conn = @new mysqli(DB_HOST$_SESSION['user'], $_SESSION['password'], DB_DBASE); 
    :master:

    non vedo (considerazione personale) il perche' di questo?
    ¿Hasta la pasta?

  8. #8
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Uso variabili di sessione perchè non devo avere in una sola pagina l'utente loggato, ma in un'intera sezione di sito, quindi cosa usare se non le variabili di sessione per trasportare i dati della connessione ?

  9. #9
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    session_start();
    te la porti in qualsiasi parte del tuo sito.
    Non capisco il perche' la porti sulla tua connessione al DB.
    se la tua connessione prevede:
    password=pippo
    user=rossi

    saranno sempre quelle!!!!

    o hai piu DB?
    ¿Hasta la pasta?

  10. #10
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Proprio perchè i dati della sessione me li posso portare in più pagine del sito uso le sessioni, altrimenti per ogni pagina dovrei rifar fare il log-in all'utente.

    Scusa ma tu come fai per far rimanere loggato un utente durante la navigazione?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.