Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    29

    problema sull'uso corretto di header e sulle sessioni

    salve ragazzi è da questa mattina che provo a usare in modo corretto le sessioni e gli header ma non ci riesco, vi spiego il mio problema:
    una pagina html acquisicre username e password e le manda tramite un metodo post ad una pagina php
    la pagina php controlla all'interno di un database se sono presenti username e password se non sono presenti deve rindirizzare verso una pagina di errore in formato html altrimenti deve (tramite le sessioni ) rindrizzare verso una pagina php
    vi posto il mio codice e vi spiego i miei dubbi/errori
    Codice PHP:
    <?php

    session_start
    ();
    $connessione=mysql_connect("localhost","root","") or die("connessione fallita");


            
    mysql_select_db("utenti",$connessione)             or die("database non trovato");
                            
    $righe=0;
                                

                                
    $user=$_POST['email'];
                                
    $pass=$_POST['password'];
                                
                                
    $query=mysql_query("SELECT * FROM credenziali WHERE email = '$user' AND password = '$pass';",$connessione) or die("query sbagliata");
                                
    $righemysql_num_rows($query);
                                if(
    $righe==0){
                                
    header('location: errore.html');
                                }
                                else{
                                
    $_SESSION['email']=$righe[0]; *
                                
    header('location : main.php');**
                                    
                                
                                }


    ?>
    * nella session['email']=$righe[0]; ho un forte dubbio credo che facendo così non salvo solo l'username ma tutta la riga che è composta da username e password.
    ** header('location : main.php); non reindirizza a nessuna pagina e non riesco a capire come è possibile, nella parte dell'else ci entra sicuramente perché ho provato facendo delle stampe, il file main.php esiste e se lanciato singolarmente digitando http://localhost:8080/main.php viene visualizzato un messaggio di benvenuto (che successivamente dovrò modificare facendolo diventare benvenuto e affianco il nome dell'utente che si è connesso).
    Non sò più come fare!

  2. #2
    Il redirect non avviene perchè $righe non è un array ma un resultset e l'istruzione $righe[0] manda in errore lo script.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    29
    Quindi dovrei trasformare questa variabile righe da resultset ad un array?

  4. #4
    Codice PHP:
    ...
    $result mysql_fetch_row($righe);
    ... 

    mysql_fetch_row()
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    29
    quindi mi salvo in un array la conversione da resultset ad array tramite la funzione mysql_fetch_row($righe);
    poi mi prendo l'elemento 0 che corrisponde all'username. Questo valore come lo salvo all'interno di una sessione per mandarlo ad un'altra pagina php?

  6. #6
    Quote Originariamente inviata da broke31 Visualizza il messaggio
    ...poi mi prendo l'elemento 0 che corrisponde all'username.
    No. Siccome fai una (select *) il valore alla posizione 0 è quello corrispondente alla prima colonna della tabella "credenziali" che potrebbe anche essere lo username ma non necessariamente.
    Se invece facessi: "select username, ... from credenziali where ...." allora nella posizione 0 ci sarebbe il campo "username"


    Quote Originariamente inviata da broke31 Visualizza il messaggio
    Questo valore come lo salvo all'interno di una sessione per mandarlo ad un'altra pagina php?
    Esattamente come stavi facendo.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    29
    molte grazie per i consigli in pochi attimi mi sta diventando tutto molto più chiaro! ma lo stesso non riesco a fare il header alla pagina php anche dopo questi cambiamenti ti posto la parte dell'else che ho cambiato
    Codice PHP:

    $result
    =mysql_fetch_row($query) or die ("errore");
                                
    $_SESSION['email']=$result[0];
                                
    header('location : main.php'); 

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ciao,

    ti do un consiglio rapido, magari ti può servire, o magari lo sai già, quando vuoi sapere che cosa contiene una variabile fai:
    codice:
    var_dump ($nomeVariabile);
    Ti può evitare molti mal di testa!

    Attento però, se stampi a schermo qualche cosa, usando header ti darà errore!

    Ciao
    Ultima modifica di robynosse; 02-11-2014 a 00:19

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Quote Originariamente inviata da broke31 Visualizza il messaggio
    molte grazie per i consigli in pochi attimi mi sta diventando tutto molto più chiaro! ma lo stesso non riesco a fare il header alla pagina php anche dopo questi cambiamenti ti posto la parte dell'else che ho cambiato
    Codice PHP:

    $result
    =mysql_fetch_row($query) or die ("errore");
                                
    $_SESSION['email']=$result[0];
                                
    header('location : main.php'); 
    e che errore ti da il redirect nel header? se metti dati sbagliati il redirect funziona?

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    29
    Quote Originariamente inviata da clasku Visualizza il messaggio
    e che errore ti da il redirect nel header? se metti dati sbagliati il redirect funziona?
    l'errore era che nell'hader("location : nomeFile.php") se noti tra il location e il due punti c'è uno spazio, togliendo questo spazio tutto funziona, grazie mille per il consiglio dell'utente di sopra che mi ha consigliato var_dump() molte grazie! :-)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.