- Home
- Categorie
- Coding e Sistemistica
- PHP
- richiamo form
-
mi da praticamente errore che non rinìconosce username e password dalla query.quindi il problema è che glieli devo far passare
-
Certo, se non glieli passi lui non li può sapere.
Normalmente si usa una variabile di sessione dove si memorizza lo username (la password non é necessario memorizzarla).
-
e come posso farlo?
-
questo è il file che verifica il login
<?php
//Avvio o continuo la sessione
session_start();
//Controllo che la sessione sia attiva
if(!IsSet($_SESSION['logged'])){
//Controllo se l' utente vuole loggarsi
//Recupero i valori da una Form
$username = @$_POST['username'];
$password = @$_POST['password'];//Controllo se l' username e la password non sono vuoti
if((!strlen($username) == 0) and (!strlen($password) == 0)){//Effettuo il controllo dei dati
$strSQL = "SELECT * FROM utenti WHERE username = '".$username."'";
$strSQL .= " AND password = MD5('".$password."')";
$result = mysql_query($strSQL);
$row = mysql_fetch_row($result);
//Controllo se l' utente e' stato trovato
if(!strlen($row[0]) == 0){
//Effettuo il Login:
$myArray = array($row[1], $row[2]);//Effettuo il Login
$_SESSION['logged'] = $myArray;
}
}
}//Libero la memoria
//mysql_free_result($result);if(@$_GET['logout'] == 1){ //Effettuo il Logout
$_SESSION = array(); //Desetto tutte le variabili di sessione
session_destroy(); //Distruggo le sessioni
}
?>
-
non sto capendo come passargli lo username
-
E' evidente che qua:
$_SESSION['logged'] = $myArray;
Memorizzi qualcosa sulla variabile di sessione (quali siano i campi che memorizzi, usando row[1] e row[2] noi non lo possiamo sapere)
Semplificando puoi mettere lì un:
$_SESSION['username'] = $username;
E nell'altro file puoi fare:
$username = $_SESSION['username'];
Dopo, chiaramente, aver fatto un session_start();
A quel punto usi $username per i tuoi scopi (leggi il record su DB etc. etc.)
-
nel db ce primo l'id poi lo username e poi la password
-
grazie per la'iuto ma ancora mi sn orientato
nel file verifica cosa ci devo mettere?
va bene come sta?
-
Allora nel file verifica fai così all'inizio:
<?php session_start(); $varSess = $_SESSION['logged']; // VEDO COSA C'E' NELLE VARIABILI DI SESSIONE print_r($varSess); $username = $varSess[0]; $password = $varSess[1]; ?>
Facendo così dovresti vedere (dal print_r) se le variabili sono settate. Se si nelle due variabili $username e $password hai ciò che ti serve!
-
ho fatto cosi
<?php
//testare la sessione
echo @$login_err;
if(IsSet($_SESSION['logged'])){
echo "<p>Benvenuto utente: "[EMAIL=".@$_SESSION"].@$_SESSION[/EMAIL]['logged'][0];}else{
echo "<p>Non sei autenticato !";
echo "<br><a href='login.php'>Effettua Login</a>";
}
?>e in questa pagina mi autentica
-
ora quale è il passo successivo?
-
che casino non sto capendo nulla....
-
Se hai fatto così in questa variabile hai lo username:
$_SESSION['logged'][0]
No?
A questo punto fai:$username = $_SESSION['logged'][0];
E usi la variabile $username nella pagina da cui sei partito e che dicevi non avevi il nome dell'utente.
-
ok perfetto grazie
per la password come faccio è necessaria oppure lascio solo cosi con l'username?
-
ora ho fatto cosi:
<?php
$username=$_SESSION['logged'][0];
//Effettuo il controllo dei dati
$strSQL = "SELECT * FROM utenti WHERE username = '".$username."'";
$result = mysql_query($strSQL);
$row = mysql_fetch_row($result);//Controllo se l' utente e' stato trovato
if(!strlen($row[0]) == 0){
$myArray = array($row[0], $row[1]);
}
$nome = $row['nome'];
// ECCETERA ECCETERA
// ECCETERA ECCETERA
?>e cosi nel campo <td width="155"> <input type="text" name="nome" value='<? echo $nome; ?>'></td>
ma non mi riconosce $nome xche?
-
nel db ho nome.
e ho prima id poi username poi password e poi nome
-
ora come faccio a riempire i campi del form
-
Invece di:
$nome = $row['nome'];
USA:
$nome = $row[4];
-
perfetto garzie mille
tutto ok