Gestione profilo utente tramite Form

ettorpa66

Nuovo Utente
22 Gen 2021
4
0
1
Salve a tutti,



Mi sono appena registrato su questo fantastico forum.

Gradirei avere un aiutino con qualche idea, circa il mio problema.

Vi spiego:

Ho realizzato una form di registrazione con i classici campi (id,nome,cognome,email,username e password) dove l'utente inserisce tutti i dati, finalizzati poi nel DB.

Poi nella form di login, ho i classici 2 campi: (username e password)


Quindi effettuo il controllo se l'utente esiste nel database e se è tutto ok, punto successivamente alla pagina di “Benvenuto utente" e tramite la session mi stampo la username.

Io però vorrei prelevare il campo nome e cognome dalla form di registrazione utente, per poi stampare a video il Benvenuto con nome e cognome, anzichè con la username.

Ho provato a passare le variabili "nome" e "cognome" dalla pagina di registrazione ad altre pagine (non collegate al form login) e fin qui tutto bene...ma quando tento di passare le variabili alla pagina di login, la variabile risulta sempre vuota.


Quindi ho provato a passare le variabili sull'URL e nell'altra pagina le recupero con successo, questo perchè c'è l'azione del submit.

Il problema è che io vorrei mostrare gli altri campi del DB (nome,cognome,email,etc) e quindi credo che l’unico modo sia quello di usare una query select specifica che estragga i dati sia dai campi della form_Login (username,password) che in quelli della form_Registration (nome,cognome,email,etc) in base all’utente loggato.


Potreste darmi una dritta per come impostare la query?


Vi posto i codici delle 2 pagine login.php e registration.php:

LOGIN.PHP

Codice:
<?php
session_start();


    require('db.php');
    if (isset($_POST['username'])){
    
        $username = stripslashes($_REQUEST['username']);
        $username = mysqli_real_escape_string($con,$username); //escapes special characters in a string
        $password = stripslashes($_REQUEST['password']);
        $password = mysqli_real_escape_string($con,$password);
 
        $query = "SELECT * FROM `tabella` WHERE username='$username' and password='".md5($password)."'";
        $result = mysqli_query($con,$query) or die(mysql_error());
        $rows = mysqli_num_rows($result);
        if($rows==1){
        $_SESSION['username'] = $username;
        $_SESSION['password'] = $password;
?>
<div class="content">
<p>Benvenuto: <?=$_SESSION['username']?></p>
<p>La tua password è: <?=$_SESSION['password']?></p>

<?
            }else{
                echo "<div class='form'><h3>Username/password is incorrect.</h3><br/>Click here to <a href='login.php'>Login</a></div>";
                }
    }else{
?>
<div class="form">
<h1>Login</h1>
<form action="" method="post" name="login">
<input type="text" name="username" placeholder="Username" required />
<input type="password" name="password" placeholder="Password" required />
<input name="submit" type="submit" value="Login" />
</form>
<p>Non sei registrato? <a href='registration.php'>Registrati ora</a></p>

<br /><br />

REGISTRATION.PHP

Codice:
<?php
session_start();

    require('db.php');
    if (isset($_REQUEST['username'])){


        $nome = stripslashes($_REQUEST['nome']);
        $nome= mysqli_real_escape_string($con,$nome); //escapes special characters in a string
        $cognome = stripslashes($_REQUEST['cognome']);
        $cognome = mysqli_real_escape_string($con,$cognome);
        $email = stripslashes($_REQUEST['email']);
        $email = mysqli_real_escape_string($con,$email);
        $username = stripslashes($_REQUEST['username']); // removes backslashes
        $username = mysqli_real_escape_string($con,$username); //escapes special characters in a string
        $password = stripslashes($_REQUEST['password']);
        $password = mysqli_real_escape_string($con,$password);

        $trn_date = date("Y-m-d H:i:s");
        $query = "INSERT into `tabella` (nome,cognome,email,username,password,trn_date) VALUES ('$nome','$cognome','$email','$username','".md5($password)."','$trn_date')";
        $result = mysqli_query($con,$query);
        if($result){
 
?>
<br>
<br>
<br>

<?
echo "<div class='form'><h3>Ti sei registrato con successo.</h3><br/>Click here to <a href='login.php'>Login</a></div>";
}
?>

<div class="content">
<?
    }else{

?>


<div class="form">
<h1>Registrazione</h1>

<form name="registration" action="" method="post">
<input type="text" name="nome" placeholder="Nome" required />
<input type="text" name="cognome" placeholder="Cognome" required />
<input type="email" name="email" placeholder="Email" required />
<input type="text" name="username" placeholder="Username" required />
<input type="password" name="password" placeholder="Password" required />
<input type="submit" name="submit" value="Register" />
</form>
<br /><br />
</div>
<?php } ?>


</div>
<?php } ?>


Infine mi stampo a video l'elenco dei record :

USER.PHP

Codice:
<?php
session_start();

$servername = "localhost";
$username = "test";
$password = "test";
$dbname = "prova";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id,nome,cognome,email,username,password,trn_date FROM tabella";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {


        echo "<tr><td>".$row["id"]."</td><td>".$row["nome"]."</td><td>".$row["cognome"]."</td><td>".$row["email"]."</td><td>".$row["username"]."</td><td>".$row["password"]."</td><td>".$row["trn_date"]."</td><td><a href='modifica.php?id=".$row['id']."'><img src='../images/modifica.gif' border='0' alt='Modifica'></a></td><?</td><td><a href='delete.php?id=".$row['id']."'><img src='../images/cestino.gif' border='0' alt='Modifica'></a></td><?</td></tr>";
                                                                                                                                                                              
    }
    echo "</table>";

        
} else {
    echo "0 results";
}
$conn->close();
?>


Spero che qualcuno di Voi possa aiutarmi.
Grazie :)
 

Tommy03

Utente Attivo
6 Giu 2018
614
58
28
18
Vicenza
la soluzione più veloce credo sia cambiare questa parte da così:
PHP:
$query = "SELECT * FROM `tabella` WHERE username='$username' and password='".md5($password)."'";
        $result = mysqli_query($con,$query) or die(mysql_error());
        $rows = mysqli_num_rows($result);
        if($rows==1){
        $_SESSION['username'] = $username;
        $_SESSION['password'] = $password;
?>
<div class="content">
<p>Benvenuto: <?=$_SESSION['username']?></p>
<p>La tua password è: <?=$_SESSION['password']?></p>
A cosi:
PHP:
$query = "SELECT * FROM `tabella` WHERE username='$username' and password='".md5($password)."'";
        $result = mysqli_query($con,$query) or die(mysql_error());
        $rows = mysqli_num_rows($result);
        if($rows==1){
        $_SESSION['username'] = $username;
        $_SESSION['password'] = $password;
while($get_row = mysqli_fetch_assoc($result)){
$nome = $get_row['nome'];
$cognome = $get_row['cognome'];
}
?>
<div class="content">
<p>Benvenuto: <?php echo "$nome $cognome";?></p>
<p>La tua password è: <?=$_SESSION['password']?></p>
(P.S. eviterei di stampare a video la password, spero sia solo una prova :) )

In alternativa, se vuoi, io quando ho tante pagine di solito faccio così: creo un file (lo chiamo ad esempio get_details.php), in cui metto una funzione che preleva uno specifico dato dalla tabella utenti, e in questo modo evito di mettere query uguali in tante pagine, ti faccio l'esempio:
PHP:
function getUtenti($username, $parametro, $conn){
$query = "SELECT * FROM `tabella` WHERE username='$username'";
$result = mysqli_query($conn,$query) or die(mysql_error());
while($get_row = mysqli_fetch_assoc($result)){
$risultato = $get_row[$parametro];
}
return $risultato;
}
Poi nei vari file la puoi richiamare così, senza fare query:
PHP:
<?php
$nome = getUtenti($_SESSION['username'], "nome", $conn);
?>
 

ettorpa66

Nuovo Utente
22 Gen 2021
4
0
1
Buongiorno Tommy,

Innanzitutto ti ringrazio per avermi risposto.

Si certo, mostrare la password era solo un test per verificare appunto se mi stampava la variabile.

Hai ragione, credo sia molto meglio creare un include con la funzione e richiamare soltanto le session.

Faccio delle prove e ti faccio sapere.

Grazie mille e buona giornata.
 

ettorpa66

Nuovo Utente
22 Gen 2021
4
0
1
Ciao Tommy,

Non avevo dubbi, il codice è perfetto.

Ho risolto finalmente il mio problema e grazie a te.

Seguirò il tuo consiglio, mettendo l'include nelle pagine e inserendo poi il richiamo delle session.

Grazie per tutto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Creazione cookie e gestione accessi PHP 0
B form gestione input PHP 2
sbolde91 Consiglio gestione Hosting Hosting 2
S cerco esperto gestione ecommerce Offerte e Richieste di Lavoro e/o Collaborazione 0
P Curiosità su grandi aziende e la gestione delle grafiche. Discussioni Varie 1
M Consiglio sulla gestione di Gerarchie Database 0
A attributo "min" per input gestione date PHP 8
L Gestione DB ASP.NET 2
L Consiglio SEO gestione dominio + free hosting SEO e Posizionamento 3
G [PHP] gestione mouse PHP 2
B Gestione Prenotazioni con Mysql Database 21
D CREAZIONE E GESTIONE SITO E-COMMERCE Offerte e Richieste di Lavoro e/o Collaborazione 2
P (Cerco) Collaboratori per gestione social media Offerte e Richieste di Lavoro e/o Collaborazione 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
brasoft2019 [PHP] Sistema di gestione presenze PHP 29
W Preventivo gestione ecommerce Discussioni Varie 1
E Cerco partner / socio per gestione sito di annunci incontri Offerte e Richieste di Lavoro e/o Collaborazione 0
K e-commerce per distribuzione e dettaglio con gestione magazzino E-Commerce 0
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
Jonn [WordPress] Gestione categorie e tags per sito eventi WordPress 2
felino Gestione dispositivi e Altri dispositivi Windows e Software 4
D Software per gestione account facebook? Social Media Marketing 1
D Cero Software Facebook gestione account Vendere e Acquistare pubblicita' online 0
M Offro servizio Incremento Follower e Gestione Profili Istagram Offerte e Richieste di Lavoro e/o Collaborazione 0
S elementi statistici - Matrice e Gestione Array PHP o Javascript Javascript 0
J [offro] hosting / installazione certificati ssl / gestione server Offerte e Richieste di Lavoro e/o Collaborazione 0
F [PHP] gestione meteo manuale per un gioco di ruolo PHP 1
bianca_dimulescu Gestione tabella e MySQL PHP 4
T Servizio gestione pagina Instagram Offerte e Richieste di Lavoro e/o Collaborazione 0
G Gestione e/o vendita hosting come libero professionista Leggi, Normative e Fisco 4
MatMac System [PHP] Gestione dinamica select-option PHP 3
xone [Vendo] Script gestionale php-mysql gestione pratiche Altri Annunci 0
S [PHP] Gestione coupon PHP 3
lxella [PHP] Aree riservate e gestione utenti PHP 1
D Gestione punteggi php PHP 1
B Cercasi socio per gestione sito web Offerte e Richieste di Lavoro e/o Collaborazione 0
G gestione pagina facebook Social Media Marketing 0
Cavalinho08 [Offro gestione pagine instagram, prezzo bassissimo] Annunci servizi di Social Media Marketing 3
D [VENDO] Gestione account instagram Annunci servizi di Social Media Marketing 2
N [VENDO] Gestione pagine FB Annunci servizi di Social Media Marketing 2
ientii [PHP] Gestione CheckBox PHP 1
W Consiglio su gestione di un form con XMLHttpRequest Ajax 0
booklisa Compressione immagini e gestione media CMS (Content Management System) 1
T gestione livelli sessioni php msqli PHP 1
giuseppe_123 [PHP] Gestione corsi PHP 1
A [WordPress] Plugin gestione ordine prodotto. WordPress 0
V [PHP] [OOP]Gestione errori connessione db PHP 5
R [PHP] Software gestione interventi e creazione registro (log) PHP 1
C [RETRIBUITO] Sviluppo applicazione web gestione fantacalcio Offerte e Richieste di Lavoro e/o Collaborazione 0
L [PHP] gestione $_GET che non funziona per colpa di mod_rewrite? PHP 1

Discussioni simili