- Home
- Categorie
- Coding e Sistemistica
- Coding
- Sessioni
- 
							
							
							
							
							
Esattamente. 
 
- 
							
							
							
							
							Con il select non mi estrae niente...stò sbagliando qualcosa... 
 
- 
							
							
							
							
							
Una volta effettuato il login, dovresti inserire nel database gli utenti, con una query insert e dopo estrarli con la select, se posti lo script ti do una mano... 
 
- 
							
							
							
							
							Ciao, Dovresti postare anche il form. 
 
- 
							
							
							
							
							Grazie! Allora questo è il tuo login.php [PHP]<?php 
 // Includo la connessione al database
 require('config.php');// Se il modulo viene inviato... 
 if(isset($_POST['login']))
 {// Dati Inviati dal modulo 
 $cognome_utente = (isset($_POST['cognome_utente'])) ? trim($_POST['cognome_utente']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
 $nome_utente = (isset($_POST['nome_utente'])) ? trim($_POST['nome_utente']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
 $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''// Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza 
 if (!get_magic_quotes_gpc()) {
 $cognome_utente = addslashes($cognome_utente);
 $nome_utente = addslashes($nome_utente);
 $pass = addslashes($pass);
 }// Crypto la password e la confronto con quella nel database 
 $pass = md5($pass);// Controllo l'utente esiste 
 $query = mysql_query("SELECT id FROM utenti WHERE cognome_utente = '$cognome_utente' AND nome_utente = '$nome_utente' AND pass = '$pass' LIMIT 1");// Se ha trovato un record 
 if(mysql_num_rows($query) == 1)
 {
 // prelevo l'id dal database
 $login = mysql_fetch_array($query);// Creo una variabile di sessione 
 $_SESSION['login'] = $login['id'];// reindirizzo l'utente 
 header('Location: privata.php');
 exit;
 }
 // se non esiste da l'errore
 else
 die('Nome Utente o Password errati');
 }
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Login</title>
 </head><body> 
 <form action="" method="post">
 <input name="cognome_utente" type="text" id="cognome_utente" value="COGNOME" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
 <input name="nome_utente" type="text" id="nome_utente" value="NOME" 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>[/PHP]La pagina "inserimento_dati.php" dove vorrei comparisse il cognome e nome di chi compila è questa: [PHP] 
 $query="INSERT INTO inserimento_dati (
 accettato_da,
 cognome,
 nome)
 VALUES('" .
 addslashes ( $_POST['accettato_da'] ) . "', '" .
 addslashes ( $_POST['cognome'] ) . "', '" .
 addslashes ( $_POST['nome'] ) . "', '" . //tagliato codice...troppo lungo...ci sono altre voci...$risultato = mysql_query( $query ) or die ( "query '$query' fallita " . mysql_error() );while ( $inserimento_dati = mysql_fetch_array( $risultato ) ) 
 {echo "<table> 
 <head>
 <style>
 table {
 border: solid 2px #000000;
 text-align: center;
 }
 td {
 solid 1px;
 color: Black;
 background: #F1EBAD;
 }
 </style>
 </head><tr> <td><b>ACCETTATO DA: </b> " . stripslashes($inserimento_dati['accettato_da']) . "</td></tr> <td><a href=\"accettazione2.php\">COGNOME " . stripslashes($inserimento_dati['cognome']) . "</a></td></tr> <td><b>NOME:</b> " . stripslashes($inserimento_dati['nome']) . "</td></tr> //tagliato codice...per troppe voci[/PHP] Praticamente, ora dove c'è scritto ACCETTATO DA: scrivo manualmente cognome e nome, ma vorrei che lo scrivesse in modo automatico con le sessioni e autenticazioni. Questo è il form.html [HTML]<html> 
 <head>
 <title>accettazione cliente</title>
 </head><center><b><font size=5>ACCETTAZIONE</font></center></b><br> 
 <form action="inserimento_dati.php" method="post" name="inserimento_dati">
 <input name="id" type="hidden" value="<?php echo $id;?>">
 <input type="hidden" name="id"><br><br>
 ACCETTATO DA:<input type="text" name="accettato_da"><br><br>
 COGNOME: <input type="text" name="cognome"><br><br>
 NOME: <input type="text" name="nome"><br><br>
 <br><br><input type="submit" value="INVIA I DATI"> </form> 
 </body>
 </body>
 </html>[/HTML]Grazie!!!  
 
- 
							
							
							
							
							Per mettere come value i dati attuali puoi fare cosi, ma devi rinominare il file form.html in form.php: 
 [php]
 <?php
 if(isset($_SESSION['login']))
 $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
 <html>
 <head>
 <title>accettazione cliente</title>
 </head><center><b><font size=5>ACCETTAZIONE</font></center></b><br> 
 <form action="inserimento_dati.php" method="post" name="inserimento_dati">
 <input name="id" type="hidden" value="<?php echo $id;?>">
 <input type="hidden" name="id"><br><br>
 ACCETTATO DA:<input type="text" name="accettato_da"><br><br>
 COGNOME: <input type="text" name="cognome" value="<?php echo $default['cognome_utente']; ?>"><br><br>
 NOME: <input type="text" name="nome" value="<?php echo $default['nome_utente']; ?>"><br><br>
 <br><br><input type="submit" value="INVIA I DATI"> </form> 
 </body>
 </body>
 </html>
 [/php]
 
- 
							
							
							
							
							Modificato. Faccio il login, entro nella pagina privata.php, clicco per compilare il form, ma non mi compila su accettato il mio nome e cognome... 
 
- 
							
							
							
							
							Se devi mettere nome e cognome di seguito devi fare cosi: 
 [php]
 ACCETTATO DA:<input type="text" name="accettato_da" value="<?php echo $default['nome_utente'].' '.$default['cognome_utente']; ?>"><br><br>
 [/php]
 
- 
							
							
							
							
							Che scemo è vero, senno il collegamento come lo faccio?  Però ora mi dà variabile da definire  
 
- 
							
							
							
							
							Che variabile? 
 
- 
							
							
							
							
							Mi scrive dentro la casella "ACCETTATO DA" questo: Notice: Undefined variable: default in c:\programmi\easyphp1-8\www\inserimento_dati.php on line 23 Notice: Undefined variable: default in c:\programmi\easyphp1-8\www\inserimento_dati.php on line 23 La riga 23 è quella che abbiamo modificato. 
 
- 
							
							
							
							
							Ma la pagina l'hai messa cosi: 
 [php]
 <?php
 if(isset($_SESSION['login']))
 $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
 <html>
 <head>
 <title>accettazione cliente</title>
 </head>
 <body>
 <center><b><font size=5>ACCETTAZIONE</font></center></b><br>
 <form action="inserimento_dati.php" method="post" name="inserimento_dati">
 <input name="id" type="hidden" value="<?php echo $id;?>">
 <input type="hidden" name="id"><br><br>
 ACCETTATO DA:<input type="text" name="accettato_da" value="<?php echo $default['nome_utente'].' '.$default['cognome_utente']; ?>"><br><br>
 COGNOME: <input type="text" name="cognome" value="<?php echo $default['cognome_utente']; ?>"><br><br>
 NOME: <input type="text" name="nome" value="<?php echo $default['nome_utente']; ?>"><br><br>
 <br><br><input type="submit" value="INVIA I DATI"> </form> 
 </body>
 </html>
 [/php]
 
- 
							
							
							
							
							Ora me le dà su tutte e tre le caselle i notice... 
 
- 
							
							
							
							
							Ma nella pagina hai messo il controllo per vedere se sei loggato? 
 Perchè se non sei loggato e quindi $_SESSION['login'] non è definita è normale dia notice.
 
- 
							
							
							
							
							No, come faccio a mettere il controllo? Io ho fatto solo il normale login e sono entrato nella pagina privata...:bho: 
 
- 
							
							
							
							
							[php] 
 <?php
 if(!isset($_SESSION['login']))
 {
 header('Location: /login.php');
 exit;
 }
 $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
 <html>
 <head>
 <title>accettazione cliente</title>
 </head>
 <body>
 <center><b><font size=5>ACCETTAZIONE</font></center></b><br>
 <form action="inserimento_dati.php" method="post" name="inserimento_dati">
 <input name="id" type="hidden" value="<?php echo $id;?>">
 <input type="hidden" name="id"><br><br>
 ACCETTATO DA:<input type="text" name="accettato_da" value="<?php echo $default['nome_utente'].' '.$default['cognome_utente']; ?>"><br><br>
 COGNOME: <input type="text" name="cognome" value="<?php echo $default['cognome_utente']; ?>"><br><br>
 NOME: <input type="text" name="nome" value="<?php echo $default['nome_utente']; ?>"><br><br>
 <br><br><input type="submit" value="INVIA I DATI"> </form> 
 </body>
 </html>
 [/php]
 
- 
							
							
							
							
							Capito qual'è il controllo  Ma mi dà errore nella riga 12 che sarebbe il tag html  
 
- 
							
							
							
							
							[php] 
 <?php
 if(!isset($_SESSION['login']))
 {
 header('Location: /login.php');
 exit;
 }
 $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
 ?>
 <html>
 <head>
 <title>accettazione cliente</title>
 </head>
 <body>
 <center><b><font size=5>ACCETTAZIONE</font></center></b><br>
 <form action="inserimento_dati.php" method="post" name="inserimento_dati">
 <input name="id" type="hidden" value="<?php echo $id;?>">
 <input type="hidden" name="id"><br><br>
 ACCETTATO DA:<input type="text" name="accettato_da" value="<?php echo $default['nome_utente'].' '.$default['cognome_utente']; ?>"><br><br>
 COGNOME: <input type="text" name="cognome" value="<?php echo $default['cognome_utente']; ?>"><br><br>
 NOME: <input type="text" name="nome" value="<?php echo $default['nome_utente']; ?>"><br><br>
 <br><br><input type="submit" value="INVIA I DATI"> </form> 
 </body>
 </html>
 [/php]
 
- 
							
							
							
							
							<?php 
 if(!isset($_SESSION['login']))
 {
 header('Location: /login.php');
 exit;
 }
 $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));?> Con questo script non mi trova la pagina. Errore 404. Lo tolto e mi riappare. 
 
- 
							
							
							
							
							Sostituisci /login.php con il percorso corretto per la pagina di login. EDIT: Ovviamente devi includere il config.php cosi da fare anche il session_start.