Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909

    autenticazione con session

    Salve, ho un grosso problema nell'autenticazione su un server windows cosa che su linux non mi succede

    posto l'errore ed il codice:
    codice:
    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\inetpub\easyphp1-8\www\nuovo-portale\login.php:3) in c:\inetpub\easyphp1-8\www\nuovo-portale\login.php on line 4
    
    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\inetpub\easyphp1-8\www\nuovo-portale\login.php:3) in c:\inetpub\easyphp1-8\www\nuovo-portale\login.php on line 4
    
    Notice: Undefined index: requiredpassword in c:\inetpub\easyphp1-8\www\nuovo-portale\login.php on line 22
    
    Notice: Undefined variable: trov in c:\inetpub\easyphp1-8\www\nuovo-portale\login.php on line 41
    qua vedo diversi errori il primo è che non posso utilizzare i cookie x l'autenticazione
    il secondo e che devo definire tutte le variabili (altrimenti non le riconosce) poi questo "undefined index" non l'avevo mai sentito

    lo script è il seguente:

    codice:
    <?php 
    session_start(); 
    
    include ("dati.txt");
    
    mysql_connect($host,$user,$password);
    
    mysql_select_db("$db");
     print ("");
    $requiredpassword = $_POST["requiredpassword"];
    $requirednome = $_POST["requirednome"];
    $dati = mysql_query ("select * from tabellaxxx WHERE password='$requiredpassword' AND nome='$requirednome'");
    while ($array = mysql_fetch_array($dati)) 
    { 
         switch ($array[password]){ 
    case ucccdelete: 
                 header ("location: link1.php");
            $trov=1; 
            break;
    case ucccadd: 
               ("location: link2.php");
            $trov=1; 
            break;
               
            } 
    } 
    
    if ($trov!=1) 
    
    { 
    echoAccesso Negato"; 
    } 
    
    if ($trov=1) 
    { 
       $_SESSION['login_effettuato'] = true; 
    } 
    ?>
    spero possiate aiutarmi...P.S il server l'ho messo su io con easy php.....Grazie!

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    un bagno di sangue insomma...


    1. Non è perchè non puoi usare i cookie, ma perchè hai cercato di far partire una sessione dopo aver mandato in output qualcosa sullo schermo (più precisamente alla riga 4 della login.php).
    Potrebbe essere anche un semplice ritorno a capo dopo il tag di chiusura del php.

    2. Se cerchi di accedere all'indice "requiredpassword" di un array che non ce l'ha, ottieni quell'errore se il php è configurato in modo da mostrare anche i cosiddetti "notice" (ad esempio in easyphp), che sono degli avvisi e non degli errori veri e propri. (infatti non precludono il funzionamento dello script).

    3. vedi il punto 2 per variabili non inizializzate.


  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    corregetemi se sbaglio:

    se scrivo :
    codice:
    <?php 
    session_start(); 
    ?>
    <?
    include ("dati.txt");
    mysql_connect($host,$user,$password);
    mysql_select_db("$db");
     print ("");
    $requiredpassword = $_POST["requiredpassword"];
    $requirednome = $_POST["requirednome"];
    $dati = mysql_query ("select * from tabellaxxx...
    non dovrei aver problemi?
    per quanto riguarda l'indice di requiredpassword sinceramente non l'ho capito cmq sia requirednome che requiredpassword li invio tramite POST (per cui non vedo xkè non dovrebbe trovarli)

    Altra curiosità dici che le notice abilitate in easyphp mi rimandano questi messaggi pur lascindo agire lo script...e per didabilitarli?

    spero possiate aiutarmi, grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    no,non funziona mi aiutate gentilmente a creare n login (su questa base) che si serva dei cookie?

    grazie

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    non c'è bisogno che tu apra e chiuda il tag php per il session_start. Comunque cosi dovrebbe andare.

    per il required password, controlla, o nell'esperimento di cui hai postato il codice non hai riempito il campo o non so... (comunque l'errore è abbastanza eloquente).


    i notice puoi toglierli tranquillamente, andando a modificare la direttiva error_reporting nel file php.ini (se guardi è ben commentato).

    Comunque non sarebbe male abituarsi a programmare in modo da non generare nemmeno i notice.

    ciao

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    cerca tra gli articoli di php.html.it c'è spiegato un esempio tipo per la creazione di un'area privata con le sessioni.

    Il tuo codice non l'ho letto, ma spero che in dati.txt non ci siano i dati del db, altrimenti sono in chiaro e un malintenzionato che conosce il nome del file e dove lo metti potrebbe tranquillamente cancellarti il contenuto...

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    che significa sono in chiaro?

    se il file dati.txt viene richiamato tramite include in un file.php non credo che tu possa vedere il contenuto di un file.php se non mi sbaglio tu vedi solo ciò che il risultato di un'interrogazione del browser al file.php...quindi solo l'html..


    sbaglio?

    grazie x la nota si cmq sto guradando la pillola ma dovrei gestire più utenti (in base alla password devono andare in una o in un'altra pagina)

    grazie

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da yusizu
    che significa sono in chiaro?

    se il file dati.txt viene richiamato tramite include in un file.php non credo che tu possa vedere il contenuto di un file.php se non mi sbaglio tu vedi solo ciò che il risultato di un'interrogazione del browser al file.php...quindi solo l'html..


    sbaglio?
    in questo no, ma se io conosco l'indirizzo del file dati.txt me lo leggo tranquillamente



    grazie x la nota si cmq sto guradando la pillola ma dovrei gestire più utenti (in base alla password devono andare in una o in un'altra pagina)

    grazie
    Non è corretto come metodo, perchè a seconda della password?
    e se l'utente la cambia?
    anche se non può cambiarla non è il metodo corretto.
    Per una cosa del genere devi prevedere un campo aggiuntivo nella tabella utenti, ad esempio un campo int che identifichi il livello di privilegi di un utente, oppure una lettera che ti dica a cosa deve accedere l'utente.


    ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    sono ancora in alto mare!

    non riesco a togliere sti benedetti notice del file php.ini (sto disabilitando tutto tranne quello che dovrei!)

    ora mi spunta un'altro errore:

    codice:
    Notice: Undefined index: requiredpassword in c:\inetpub\easyphp1-8\www\nuovo-portale\login.php on line 22
    
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\inetpub\easyphp1-8\www\nuovo-portale\login.php on line 24
    
    Notice: Undefined variable: trov in c:\inetpub\easyphp1-8\www\nuovo-portale\login.php on line 40
    mi dice che mysq_fetch_array non è un argomento valido?????
    mha tutte ora le sto vedendo!

    please help

  10. #10
    il POST non contiene quel lungo_nome di variabile, il resource id non valido significa che la query non e' valida e poi ancora ti manca una variabile (risultato della query?)

    comincia a verificare perche' POST e' vuoto. Poi metti mysql_error() dopo l'esecuzione della query (mysql_query() ) ed eventualmente stampa la query stessa per vedere come si risolvono eventuali variabili.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.