- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Area privata
-
io avevo fatto queato ma nn funziona[php]<?php
// Includo la connessione al database
require('../area_privata/config.php');$user = $SESSION['userloggato'];
if ($user) {//user is logged in
if ($_POST['submit']) {
// check fields
$oldpassword = md5($_POST['vpass']);
$newpassword = md5($_POST['pass']);
$repeatnewpassword = md5 ($_POST['pass2']);//connect db
$db_host = "localhost";
$db_user = "ciberioegiro";
$db_password = "miapass";
$db_name = "my_ciberioegiro";//connetto il database
$db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');$queryget = mysql_query("SELECT pass FROM WHERE user='$user'") or die ("Query didnt work");
$row = mysql_fetch_assoc($queryget);$oldpassworddb = $row['pass'];
echo $olrdpassworddb."<br>";
echo $oldpassword."<br>";//check passwords
if ($oldpassword==$oldpassworddb)
{// check two new passwords
if ($newpasword==$repeatnewpassword){
//success
//change password in db$querychange = mysql_query("UPDATE utenti SET pass='$newpassword' WHERE user='$user'") or die ("Your password has been changed. <a href='index.php'>Rerturn to main page.");
} else {
print ("New passwords don't match!");
}
} else {
print ("Old password doesnt match!");
}
} else {
echo "";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="w3.org/1999/xhtml">
<?php include("../area_privata/configuratoriphp/head.php")?>
<div id="container">
<?php include("../area_privata/configuratoriphp/header.php")?>
<?php include("../area_privata/configuratoriphp/nav.php")?>
<?php include("../area_privata/configuratoriphp/colsx.php")?>
<div id="coldx"><div id="contenuti"> <div class="boxcontenuti">
<!--inizio contenuto principale-->
<!--<p> </p>-->
<br /><h2>AREA RISERVATA DOCENTI</h2>
<div id="centra_ingresso">
<form class="ingresso" name="logForm" id="logForm" action='cpassword.php' method='post'>
<fieldset><legend><strong>Modulo cambia password</strong></legend> <div> <label for="username">Username</label> <input class="required grigio" id="user" type='text' name='user' value="<?php echo $_SESSION['userloggato'];?>" /> </div> <div> <label for="vecchiapassword">Vecchia password</label> <input class="required password" id="vpass" type='password' name='vpass' /> </div> <div> <label for="password">Nuova password</label> <input class="required password" id="pass" type='password' name='pass' /></p> </div> <div> <label for="password2">Ripeti nuova password</label> <input class="required password" id="pass2" type='password' name='pass2' /> </div> <div> <p><input type='submit' value='CAMBIA PASSWORD'> </p> </div> </fieldset>
</form>
</div><!--fine contenuto principale-->
</div>
</div><!--fine sottocontenitore centrale-->
</div>
</div>
<?php include("configuratoriphp/footer.php");?>
</body>
</html>[/php]
-
Ciao greezle,
questa cosa è già stata trattata in alcuni post, ti basta togliere la pagina di registrazione.
Anche il cambio password mi sembra sia già stato trattato.
-
Ciao scusatemi ma nei post precedenti non ho trato niente per il reimposta password(non il recupera).
-
Ciao Thedarkita, il tutorial è veramente incredibile.
Ho seguito tutta la conversazione e attivato una versione di test funzionante del sistema di login.
Ora però proprio non riesco a capire come far in modo che, una volta loggato correttamente, ogni utente sia indirizzato ad una pagina specifica a lui dedicata: una pagina privata per ogni utente. Ho cercato nel corso del tutorial di capire come fare ma non ho trovato risposta. Potessi aiutarmi te ne sarei grato.
Ciao.
-
Puoi modificare l'header inviato all'utente, mettendo un location ad una pagina con il proprio username.
-
Ciao Thedarkita, grazie innanzitutto per la risposta.
Immagino tu stia parlando dell'istruzione presente nella pagina login.php in cui l'utente viene reindirizzato alla pagina privata.php, come di seguito riportato:
// reindirizzo l'utente
header('Location: privata.php');
exit;
Io ho provato ad adattarlo alle mie esigenze in questo modo:
-ho aggiunto un campo "pagina_personale" alla tabella del database in cui memorizzare, per ogni utente, la sua pagina con i relativi documenti- ho modificato l'istruzione riportata sopra in questo modo:
// reindirizzo l'utente
header('Location: pagina_personale.php');
exit;
In questo modo però non funziona. Mi sorge anche qualche dubbio perchè non vedo la necessità di creare di volta in volta una pagina personale quando sarebbe sufficiente che la pagina privata.php visualizzasse al suo interno soltanto i dati relativi all'utente loggato.
Ma per far funzionare le cose in questo modo come deve essere strutturato il database e come deve essere realizzata l'istruzione? Molti propongono di creare una tabella secondaria con foreign key all'interno della quale memorizzare i dati da restituire ad ogni utente ma il gestionale database che utilizzo (a**ba) pare non consentire l'impiego di chiavi esterne.
Insomma sono diversi giorni che giro intorno a questa cosa senza trovare il bandolo della matassa.
Grazie in anticipo.
- ho modificato l'istruzione riportata sopra in questo modo:
-
A quanto pare ho risolto il problema.
Come dicevo:- ho inserito nel database un campo aggiuntivo "pagina_personale" al cui interno è memorizzato il nome del file della pagina personale di ogni singolo utente, ovvero nome_utente.php (es. pippo.php, pluto.php ecc.)
- ho creato per ogni utente una pagina nome_utente.php al cui interno saranno inseriti i documenti relativi ad ogni singolo utente
- ho modificato nel file login.php l'istruzione che indirizza l'utente alla sua pagina in questo modo:
// reindirizzo l'utente
header('Location:' . $user . '.php');
exit;
A quanto pare funziona: l'utente si logga, viene riconosciuto ed indirizzato alla pagina a lui dedicata. Ovviamente per ogni utente iscritto deve essere creata una pagina specifica.
Che ne dici Thedarkita?
-
Buonanotte a tutti, visto l'orario, ho bisogno di capire un paio di cosette e se qualcuno può darmi una mano ne sarò più che felice.
Ho fatto tutta l'area riservata COMUNE A TUTTI gli utenti che si registrano, funziona, nonostante sia un principiante con poco tempo da dedicare allo studio causa lavoro, son riuscito a capire i funzionamenti, poi mi è sorta la necessità di avere delle pagine personalizzate SOLO PER ALCUNI utenti registrati.
Viste le mie esigenze ho creato un altro form per il login di accesso alle pagine riservate, dedicato a quest'ultimi; dopo un po' di sbattimenti e la dritta di doctorprivacy riesco a farlo funzionare, peccato però che ho dovuto fare una seconda tabella, chissà perchè in locale mi funziona correttamente, mentre sul web no.
Ora, capita che un utente registrato entri nell'area riservata comune, ma che una volta dentro voglia guardarsi la propria pagina personale, solo che mi manda sempre alla pagina di errore, mentre se dalla pagina personale, voglio passare alla zona riservata comune funziona correttamente; sarà l'ora tarda o sarò tardo io, ma qualcuno può dirmi cosa c'è di sbagliato in questo codice?<?php
require('../02_db/config.php');if(!isset($_SESSION['login']))
{
header('Location: ../02_db/01_rec.php');
exit;
}
// Sono all'interno dell'area riservata e voglio andare nella mia pagina personale schiacciando un pulsante
if(isset($_POST['perspage']))
{
$query = mysql_query("SELECT id FROM personal WHERE user = '$user' AND pass = '$pass' LIMIT 1");if(mysql_num_rows($query) == 1) { $perspage = mysql_fetch_array($query); { $_SESSION['login'] = $perspage['id']; header('Location: ../11_pers/'. $user .'.php'); exit; } } else { header('Location: ../11_pers/01_ops.php'); exit; }
}
?>Grazie a tutti
-
Ammetto che l'altra sera ero particolarmente stanco, ho risolto, scusate
-
Salve, ho due domande:
-
Come faccio a far visualizzare il nome della persona loggata nella sua pagina riservata?
-
Vorrei aggiungere una opzione simile a quella presente nei forum, tipo, la data della ultima connessione del utente.
Come potrei fare qualche input?
-
-
buongiorno
la guida registrazione e login è pefetta
ma per il recupero password ?
-
È presente nelle varie pagine della discussione:
http://www.giorgiotave.it/forum/scripting-e-risorse-utili/83033-tutorial-area-privata-post644949.html?highlight=recupero+password#post644949
-
Ciao Thedarkita e ciao a tutto il forum,
complimenti per la comunità viva e reattiva che avete costruito.
Volevo porre una questione su questo post "anzianotto" ma molto utile.Premetto che ho copiato gli script del tutorial e funziona tutto alla perfezione.
La mia questione è: creare una pagina privata uguale per tutti ma con differente contenuto. Il contenuto che dovrebbe essere differenziato sono i Todo di questo script che ho trovato sulla rete, (w w w.tutorialzine.com/2010/03/ajax-todo-list-jquery-php-mysql-css/)
qui c'è il link diretto al download (w w w.demo.tutorialzine.com/2010/03/ajax-todo-list-jquery-php-mysql-css/demo.zip).Non sono molto pratico di codici, però credo di aver capito la teoria:
I todo si memorizzano in una tabella "tz_todo", che ovviamente è uguale per tutti.
Quello che dovrei fare io è fare in modo che si memorizzino in riferimento ad un determinato id utente e richiamare poi quell'id per la pagina privata, giusto?!E come cacchio si faaa???
Lo so che vi sto chiedendo una cosa che vi farà perdere un mare di tempo, ma sono mesi che ci sbatto la testa, ho comprato libri e surfato il web alla ricerca di una soluzione, e questo post è quello che ci si avvicina di più. Putroppo gli angoli bui sono ancora tanti. Illuminatemi voi vi prego!
-
@ernando said:
(w w w.tutorialzine.com/2010/03/ajax-todo-list-jquery-php-mysql-css/)
qui c'è il link diretto al download (w w w.demo.tutorialzine.com/2010/03/ajax-todo-list-jquery-php-mysql-css/demo.zip).Ciao, Mi sembra non funzionare quel collegamento per il download, comunque ho guardato la fonte dal primo link e direi che devi solo modificare il file config.php o nome simile che contiene la configurazione di accesso al tuo Database Sql
P.s. stiamo uscendo dal topic principale.
-
Grazie bluedragon,
però nel connect.php ci sono solo le informazioni per andare a rilevare un determinato db. A me serve scrivere informazioni differenti a seconda dei differenti utenti.penso che sia questa la stringa chiave:
The edit method takes the ToDo item id and the new text of the ToDo. Updates the database. */ public static function edit($idt, $text){ $text = self::esc($text); if(!$text) throw new Exception("Wrong update text!"); mysql_query(" UPDATE tz_todo SET text='".$text."' WHERE id=".$idt ); if(mysql_affected_rows($GLOBALS['link'])!=1) throw new Exception("Couldn't update item!"); } /*
quella tabella tz_todo nel database non ha nessun dato per differenziare le informazioni a seconda dell'utente che le inserisce.
Come posso fare a creare queste informazioni?grazie
Ciao
-
ah! scusa adesso ho capito, vuoi che inserisca le note di uno specifico utente.
dovresti modificare abbastanza il codice:
premesso che non conosco quello script e non l'ho guardato, ma a livello generale, magari ti può aiutare a ricercare su internet se nessuno ti posta il codice pronto, penso dovresti modificare:
individua dove fa l' "update" e qui dovresti aggiungere:
Se l'utente esiste; (sessione login) > allora update dove nel database, nell'utente "x" (nella tabella di ogni utente oltre a password, username etc.. deve esserci un campo che da quanto scrivi si dovrebbe chiamare "text" )
-
Ciao a tutti. Ho un grosso dubbio sulle sessioni.
Come faccio a permettere l'accesso ad una pagina al solo utente a cui la pagina è riservata?
Il dubbio è che l'utente una volta loggato possa accedere a pagine riservate ad altri cambiando l'indirizzo della pagina.
Grazie per un chiarimento.
-
Ciao, ecco il mio problema... ho fatto una prova x vedere se riuscivo a registrarmi al mio sito ma dopo aver compilati i campi e cliccato registra mi dice:Errore 033, contattare l'amministratore No database selected.
Io per creare la tabella utenti, visto che il mio sito è su altervista, sono andato su tools►PhpMyAdmin e vado su Sql e ci copio quello che hai scritto tu per creare la tabella utenti.
Ora non so se è questo il problemama non so come risolverlo, mi aiuti???
-
Ciao xDPasqualeDx,
fai attenzione alle maiuscole e ad non usare lo stile sms nei tuoi messaggi.
Per quanto riguarda il problema, hai modificato il file di configurazione scrivendo i dati corretti per la connessione al database?
-
Beh veramente ho usato il solito copia e incolla del codice html o php (a me sembrano uguali) e li ho creati in file .php con il nome indicato.