PDA

View Full Version : PHP username e password


misterx
13-03-2006, 13:27
devo implementare la funzionalità di autenticazione ad un server ed in base a questa, mostrare o meno alcune caratteristiche delle pagine.

Ho usato l'array $_SESSION che da quanto ho capito è settabile a piacere però, se non ricorro all'uso dei coockies, al caricamento di una nuova pagina ogni volta perdo i dati inseriti da un utente.

Sinceramente dopo aver visto qualche esempio in giro non è che ci abbia capito molto; se vate qualche dritta.

non ho messo insieme molto


<form action="permessi.php" method="post">
username: <input type="text" name="username">
password: <input type="text" name="password">
<input type="submit" value="Invia dati">
</form>



<?

// permessi.php
$_SESSION['usern'] = $_POST["username"];
$_SESSION['paswd'] = $_POST["password"];


?>

Xalexalex
13-03-2006, 13:50
Qui manca tutto!!!
Ogni pagina deve iniziare con la funzione session_start() (senza argomenti), altrimenti i dati non passano, e poi scusa, permessi.php non dovrebbe controllare un file o un database per vedere se l'utente è registrato??

Per qualsiasi chiarimento resto a disp, anche su msn.

Ciao,
Alex

P.S.: se usi php 4 session_start() deve essere la prima cosa che c'è nella pagina, se invece usi il 5 puoi anche metterla un po' dopo, ma ovviamente prima di utilizzare il superglobale $_SESSION.

Ri-Ciao

misterx
13-03-2006, 14:06
beh, immagino che manchi un bel pò di codice.
Ho trovato in rete alcuni esempi ma ho notato che sono costituiti da parecchie linee di codice ed ho pensato: "strano che per autenticarsi serve tutta qualla roba lì" :)

Io pensavo che "creando" quell'array, divenisse poi il contenuto "globale" per tutta una sessione di una stessa connessione (c'era un qualcosa che parlava di persistent ma non ricordo se era a questo proposito :D pardon! )

Uso permessi.php per memorizzare 'username' e 'password' una sola volta e poi a mano a mano che mi serbe nelle varie pagine, li richiamo.

Forse è il principio di funzionamento che ho in testa che è sbagliato e che mi frega.

Mi viene il dubbio che ad ogni cambio pagina cada la connessione.

Xalexalex
13-03-2006, 14:21
Allora... Facciamo il punto.

In tutte le pagine all'inizio devi mettere session_start();

Permessi.php va bene come funzionamento, ma devi fare in modo di autenticare l'utente solo se il suo username e la sua password sono uguali a quelle salvate in precedenza, in un db o in un file.

Se metti session_start() la "connessione" tra pagine non "cade" (anche se in realtà le pagine non sono connesse), ma prendilo così per buono.

Ciao,
Alex

misterx
13-03-2006, 14:51
ho trovato un articoletto che sembra molto chiaro:

http://www.phpnews.it/content/view/74/80/1/2/

ma se almeno funzionasse :muro:


Warning: open(/tmp\sess_e5e3484b77d1990ff44cf917a6fcf08f, O_RDWR) failed: No such file or directory (2) in c:\programmi\apache group\apache\test\permessi.php on line 3

Warning: open(/tmp\sess_e5e3484b77d1990ff44cf917a6fcf08f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

misterx
13-03-2006, 14:59
niente, era un problema di percorso nel file php.ini :)

misterx
13-03-2006, 15:17
Alex ho risolto, spartano ma funziona

grazie 1000 :)

misterx
14-03-2006, 10:50
ho una tabella dove un campo è impostato con PRIMARY KEY e ciò mi evita duplicati quindi, l'univocità dei dati però:

quando memorizzo i dati nella tabella, uso un codice del genere:

$ri = mysql_db_query( $dbname, $query, $conn );

e studio il valore di ritorno della variabile $ri ma ha il seguente problema; sia che il database esista o la chiave sia duplicata, non ho modo di diversificare i due tipi di errori in quanto, in entrambi i caso ho di ritorno un NULL.

Come si fa a diversificare i due casi ?
Non dovrebbe esistere un numero di errore differente ?

grazie

misterx
14-03-2006, 12:56
trovato!