• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Recuperare valori delle sessioni

freixhotel

Utente Medio
Autore del topic
24 Agosto 2012
144
0
Miglior risposta
0
Ragazzi questo è il log-in del mio sito:
<?php

require('config.php');



if(isset($_POST['login']))
{


$user = (isset($_POST['user'])) ? trim($_POST['user']) : '';
$pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';


if (!get_magic_quotes_gpc()) {
$user = addslashes($user);
$pass = addslashes($pass);
}


$pass =($pass);


$query = mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");


if(mysql_num_rows($query) == 1)
{

$login = mysql_fetch_array($query);


$_SESSION['login'] = $login['id'];
$_SESSION['username'] = $login['user'];


header('Location:
Perfavore, Entra oppure Registrati per vedere i Link!

exit;
}

else
die('Nome Utente o Password errati');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>

<body>
<form action="" method="post">
<input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
<input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
<input name="login" type="submit" value="Login" /><br />
</form>
</body>
</html>
Dopo del login ho messo che lo reindirizza nella home page del mio sito, però il brutto è che il login lo fanno, ma dopo il login non esce niente del loggatore, nel senso che non gli esce da nessuna parte il suo nome utente, e cose varie... sapete come faccio a far vedere il suo nome utente nella mia home page? Vi dico già che io con il PHP sono negato :emoji_smiley:
Grazie in anticipo
 
Riferimento: PHP

Ovvio, devi recuperare $_SESSION['username'] e $_SESSION['login'] registrate al momento del login.

Dopo il login, mettendo echo $_SESSION['username'] apparirà il nome. SPosto in assistenza tecnica, la prossima volta sei pregato di inserire un titolo adeguato.

jpjv29.jpg
 
Riferimento: Recuperare valori delle sessioni

Ok mi scuso per il titolo non consono ma stavolta non sapevo cosa scriverci oltre a login :emoji_slight_smile:
la funzione per stampare il nome devo scriverla così giusto: Benvenuto <?php $_SESSION['username'] ?> ?? se è così almeno questo lo sapevo già :emoji_slight_smile:
per recuperare $_SESSION['login'] e $_SESSION['username'] come devo fare?
dovrei far creare dal sito un cookie e poi riprenderlo per leggere i dati e stamparli nella pagina? però non so farlo... @Kaito
 
Ultima modifica:
Riferimento: Recuperare valori delle sessioni

Chiariamo..

COOKIE e SESSIONI son due cose diversi, usarle entrambe per gestire il login è inutile. In questo caso vengon usate le sessioni, tramite $_SESSION['nomesessione'] ne recuperi il valore (ricordati di mettere session_start() nella pagina prima di qualsiasi altro codice), se non conosci il PHP è meglio lasciar perdere..
 
Riferimento: Recuperare valori delle sessioni

beh infatti il php non lo conosco per questo chiedo aiuto a voi :emoji_slight_smile:
Quindi se ho capito bene dovrei fare così nella pagina dove deve comparire il nome utente:
<?php
require('config.php');

session_start()
$_SESSION['nomesessione, in questo caso username']
?>

poi per stampare il risultato sulla pagina:
<?php echo "$username" ?>
Se ho sbagliato ti chiedo di farmi un esempio, che poi io lo modifico almeno...​
 
Ultima modifica:
Riferimento: Recuperare valori delle sessioni

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Alcuni tuoi errori..

1. Non metti il ; dopo le istruzioni;
2. mandi echo $username (i doppi apici non servono) senza averlo dichiarato;
3. QUel $_SESSION là così è inutile..
 
Riferimento: Recuperare valori delle sessioni

Ok, grazie di avermi corretto, quindi
<?php
session_start(); // Attento, devi metterlo solo se non c'è già in config.php
require('config.php');
echo $_SESSION['username'];
?>

questo lo metto nella index, per esempio, e poi dove voglio far uscire il nome del loggatore apro il php e scrivo echo $_session['username'] e dovrebbe comparire il suo nome...

anzi, ti metto anche i file casomai vorresti vederli:
Config.php
<?php

session_start();

$db_host = 'localhost'; // Host
$db_utente = '******'; // Nome utente del Database
$db_password = '*******'; // Password del Database
$db_nomedb = '*******'; // Nome del Database
$user = '$db_host/Utenti/user' ; //Nome Utente

$dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore su db_host, db_utente o db_password');
mysql_select_db($db_nomedb);
?>

Login.php
<?php

require('config.php');



if(isset($_POST['login']))
{


$user = (isset($_POST['user'])) ? trim($_POST['user']) : '';
$pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';


if (!get_magic_quotes_gpc()) {
$user = addslashes($user);
$pass = addslashes($pass);
}


$pass =($pass);


$query = mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");


if(mysql_num_rows($query) == 1)
{

$login = mysql_fetch_array($query);


$_SESSION['login'] = $login['id'];
$_SESSION['username'] = $login['user'];


header('Location:
Perfavore, Entra oppure Registrati per vedere i Link!

exit;
}

else
die('Nome Utente o Password errati');
}
?>

Index.php
<?php
require('config.php');
echo $_SESSION['username']=$username;
?>

<html>
<body>
<center>Hai effettuato il login<?php echo '$username' ?></center>
</body>
</html>
 
Ultima modifica:
Riferimento: Recuperare valori delle sessioni

Per dichiarare le variabili si usa:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Non

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

e la funzione echo serve a stampare a video qualcosa, quindi l' index corretta:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Avevi anche scordato il punto e virgola dopo $username.. Se metti $username dentro agli apici singoli, verrà mostrato proprio $username. Per vedere il contenuto di una variabile non bisogna metterla tra apici (ma può esser messa tra quelli doppi). Nella sezione "Scuola di PHP & MySQL" trovi qualche lezione sugli apici.

Comunque, puoi anche controllare se ha effettuato il login o meno:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Riferimento: Recuperare valori delle sessioni

@Kaito
No niente, mi dice che devo eseguire il login.
prova tu stesso:
Perfavore, Entra oppure Registrati per vedere i Link!

con questi dati
nome: Sciax2
pass: Sciax2

index
<?php
require('config.php');
?>
<html>
<body>
<?php
if(isset($_SESSION['username'])) {
$username = $_SESSION['username'];
?>
<center>Hai effettuato il login<?php echo $username; ?></center>
<?php
} else {
?>
Esegui il login.
<?php
}
?>
</body>
</html>

login
<?php

require('config.php');



if(isset($_POST['login']))
{


$user = (isset($_POST['user'])) ? trim($_POST['user']) : '';
$pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';


if (!get_magic_quotes_gpc()) {
$user = addslashes($user);
$pass = addslashes($pass);
}


$pass =($pass);


$query = mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");


if(mysql_num_rows($query) == 1)
{

$login = mysql_fetch_array($query);


$_SESSION['login'] = $login['id'];
$_SESSION['username'] = $login['user'];


header('Location: index.php');
exit;
}

else
die('Nome Utente o Password errati');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>

<body>
<form action="" method="post">
<input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
<input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
<input name="login" type="submit" value="Login" /><br />
</form>
</body>
</html>
 
Ultima modifica:
Riferimento: Recuperare valori delle sessioni

Beh ovvio, nella query selezioni solo l' ID e non l' user anche, quindi rimarrà sempre vuota $_SESSION['username'].

Modifica:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

in:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Riferimento: Recuperare valori delle sessioni

Grande sei un mito!!!!!!!!! :emoji_smiley:
 
Riferimento: Recuperare valori delle sessioni

Ok bene :emoji_slight_smile: ultima cosa, ho trovato due registrati con lo stesso nome e email ma password diversa, funzione per evitare che una persona si registri con lo stesso nome o email? @Kaito
 
Ultima modifica:
Riferimento: Recuperare valori delle sessioni

Prima di registrare, devi fare una if con query, come quella del login, ma invece di user e password, metti WHERE user LIKE '$user'