Aiuto, recupero dati dopo il login

Stato
Discussione chiusa ad ulteriori risposte.

dani0712

Utente Silver
17 Agosto 2010
10
4
0
56
Salve a tutti, ho bisogno d'aiuto.s
spiego il problema, io voglio recuperare i dati quando viene effettuato il login.
Esso vien fatto in form con un checklogin.php come action del form.
il problema è che sulla pagina che lo reinderizzo non riesco a recuperare i dati dal server di quel membro.
Come posso fare? il linguaggio che uso è php.
basterebbe avere l'username e da lì posso accedere a tutti i dati dal server di quel membro.
Grazie
 
Senza sorgenti posso provare a darti una mano.

invio.html
HTML:
<form id="form1" name="form1" method="post" action="checklogin.php">
<input type="text" id="username" name="username">
<input type="submit" value="Invia dati">
</form>

checklogin.php
PHP:
<?
$username=$_POST['username'];
echo $username;
?>
 
Senza sorgenti posso provare a darti una mano.

invio.html
HTML:
<form id="form1" name="form1" method="post" action="checklogin.php">
<input type="text" id="username" name="username">
<input type="submit" value="Invia dati">
</form>

checklogin.php
PHP:
<?
$username=$_POST['username'];
echo $username;
?>

fino a qui c'erò, ma nel checklogin, in caso positivo ho un
header("location: http://etc");

e io volevo sapere da lì come fare a identificare l'user in corso, penso sia una cosa di sessioni ma non sò come fare
 
Ultima modifica:
Capito tutto di quello che vuoi fare ;), praticamente a te serve una sessione sull'username per rintracciare attraverso esso tutti gli altri dati
Tramite sessione: in checklogin...
Codice:
//POST VALUE
$user = $_POST['user'];
$pass = $_POST['pass'];
//ANTI SQL INJECT
$user = addslashes(stripslashes($user));
$pass = addslashes(stripslashes($pass));
//CHECK
$check = mysql_query("SELECT * FROM tabella WHERE user='$user' AND pass='$pass'") or die ("error");
if(mysql_num_rows($check) > 0){
//CREAZIONE SESSIONE
$row = mysql_fetch_array($check);
$_SESSION['user'] = $row['user'];
header("Location: index.php");}else{ echo "Dati errati";}

Codice da inserire nelle altre pagine per capire se l'user è loggato o meno...
Codice:
if(!emtpy($_SESSION['user'])){ echo "Sei loggato con questo username:'".$_SESSION['user']."'!";}else{ echo "Non sei loggato";}

Rivacare i dati...
Codice:
$usx = $_SESSION['user'];
$ricave = mysql_query("SELECT * FROM tabella WHERE user='$usx'") or die ("error");
$row = mysql_fetch_array($ricave);
//COME SCRITTO E' UN ARRAY SQL QUINDI....
$row['valore sql']....
// SONO VALIDI TUTTI I VALORI SQL CORRISPONDENTI AL RECORD DELL'USER TROVATO

Adattati il codice ciao! E fammi sapere per eventuali problemi!
 
Concordo sulla prima e l'ultima parte, ma non rileva il $_SESSION['user']
il login l'effettua correttamente come rende giusti i valori se nel check gli metto
print($row['username']);
print($_SESSION['user']);
in entrambi dà il nome di chi si logga e fin qui ok.
Quando però entra nel file php indirizzato (quello dell'header) con
print($_SESSION['user']);
non restituisce nessun valore. inoltre mi dà un errore:
Fatal error: Call to undefined function: emtpy()

il codice nel file dell'header:
<?php
print($_SESSION['user']);
if(!emtpy($_SESSION['user'])){
echo "Sei loggato con questo username:'".$_SESSION['user']."'!";
}else{
echo "Non sei loggato";
}
?>
 
Ultima modifica:
Concordo sulla prima e l'ultima parte, ma non rileva il $_SESSION['user']
il login l'effettua correttamente come rende giusti i valori se nel check gli metto
print($row['username']);
print($_SESSION['user']);
in entrambi dà il nome di chi si logga e fin qui ok.
Quando però entra nel file php indirizzato (quello dell'header) con
print($_SESSION['user']);
non restituisce nessun valore. inoltre mi dà un errore:
Fatal error: Call to undefined function: emtpy()

il codice nel file dell'header:
<?php
print($_SESSION['user']);
if(!emtpy($_SESSION['user'])){
echo "Sei loggato con questo username:'".$_SESSION['user']."'!";
}else{
echo "Non sei loggato";
}
?>
Giusto scusa sono scemo, aggiungi session_start(); all'inizio di ogni pagina in cui utilizzi le sessioni e vedi che funziona!
 
Giusto scusa sono scemo, aggiungi session_start(); all'inizio di ogni pagina in cui utilizzi le sessioni e vedi che funziona!

Perfetto, lo rileva, ma mancava un piccolo aggiustamento

$con = mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$ricave = mysql_query("SELECT * FROM Dragons WHERE `username`='".$usx."'", $con) or die ("error");

sennò dava errore, ora comunque lo metto come include() i dati sul db e vedo se capisci la variabile.

Ti ringrazio della disponibilità e speriamo serva anche a altri

---------- Post added at 19:44 ---------- Previous post was at 18:30 ----------

Visto che l'empty dava errore, ho creato un nuovo campo nella tabella chiamato auto con valore 0
chi voglio autorizzare lo metto a 1 e nelle pagine metto il controllo con:
if ($row['auto'] == 0) {
header("location: http...login.php");
}

e in questo modo ho risolto sul fatto che chi vede le pagine è loggatto correttamente
 
Stato
Discussione chiusa ad ulteriori risposte.