- Home
- Categorie
- Coding e Sistemistica
- PHP
- Messaggio di benvenuto in iscrizione php
-
Messaggio di benvenuto in iscrizione php
Salve a tutti.
Passo subito al sodo.
Io ho un'iscrizine creata interamente in php con 4 campi:
-username
-e-mail
-nome
-password
In questa iscrizione vorrei fare in modo che quando gli utenti loggano (inserendo username e password) fosse stampato nella parte alta della pagina
"Bentornato $suo_nome in miosito.com
Logout | Cancellati"
Ecco insomma qualcosa del genere.
Se vi servono vi posto qui di seguito il codice delle pagine 'iscrizione.php' e 'login.php'iscrizione.php
</SPAN>codice PHP:<?php
if(isset($_POST['submit']) && (trim($_POST['submit']) == "Iscriviti"))
{
if((!isset($POST['email'])) || (!eregi("^([a-z0-9.-]+)(@[a-z0-9.-]+)(.{1}[a-z]{2,4})$", $_POST['email'])))
{
echo "Attenzione, formato email non valido.";
}else{
$email = $_POST['email'];
$user = $_POST['user'];
$nome = $_POST['nome'];
$password = $_POST['password'];@include "config.php";
$ctrl_mail = @mysql_query("SELECT id FROM iscrizioni WHERE email='$email'") or die (mysql_error());
if(@mysql_num_rows($ctrl_mail)>0)
{
echo "L'email risulta già stata registrata.";
}$ctrl_user = @mysql_query("SELECT id FROM iscrizioni WHERE user='$user'") or die (mysql_error());
if(@mysql_num_rows($ctrl_user)>0)
{
echo "L'username è già stato utilizzato.";}else{
if(@mysql_query("INSERT INTO iscrizioni (email, user, nome, password) VALUES('$email','$user','$nome','$password')") or die (mysql_error()))
{echo "Conferma l'iscrizione tramite la mail che ti abbiamo inviato.";
$headers = "From: $admin_email\nreply-To: noreply\r\n";
$subject = "Conferma la tua iscrizione a robyonweb.com.";
$messaggio = "Benvenuto $nome,";
$messaggio .= "Ti ringraziamo per la tua iscrizione.\n";
$messaggio .= "La tua user è: ".$user."\n";
$messaggio .= "La tua password è: ".$password."\n";
$messaggio .= "Per confemare vai alla pagina <a href="robyonweb.com/login.php" target="_blank">robyonweb.com/login.php</a>";
$messaggio .= "e inserisci i dati per l'autenticazione.\n";
$messaggio .= "Adesso portai accedere a molte più funzionalità di robyonweb.com!\n";
$messaggio .= "Lo STAFF di robyonweb.com!\n";@mail($email, stripslashes($subject),stripslashes($messaggio),$headers);
}
}
}
}
else {
?>
<h1>Modulo d'iscrizione:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Email:<br>
<input name="email" type="text" size="20"><br>
Username:<br>
<input name="user" type="text" size="20"><br>
Nome:<br>
<input name="nome" type="text" size="20"><br>
Password:<br>
<input name="password" type="password" size="20" maxlength="10"><br>
<input name="submit" type="submit" value="Iscriviti">
</form>
<?
}
?>login.php
codice PHP:<?php
session_start();
if( isset($_POST['submit']) && (trim($_POST['submit']) == "Conferma") )
{
$user = $_POST['user'];
$password = $_POST['password'];
@include "config.php";
$ctrl_login = @mysql_query("SELECT id FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
if(@mysql_num_rows($ctrl_login)==0)
{
echo "Login incorretto.";
}else{
$obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
$query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id='".$obj->id."'") or die (mysql_error());
$_SESSION['id'] = $obj->id;
// redirect alla pagina degli iscritti
echo "Login effettuato.";
}
}else{
?>
<h1>Modulo di conferma:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Username:<br>
<input name="user" type="text" size="20"><br>
Password:<br>
<input name="password" type="password" size="20" maxlength="10"><br>
<input name="submit" type="submit" value="Conferma">
</form>
<?php
}
?>
Come potete aiutarmi?
Grazie e ciao...
Steave67
-
Nessuno riesce ad aiutarmi? E' una cosa tanto difficile da risolvere?
-
Ciao,
puoi utilizzare le sessioni per farlo.
Al momento del login memorizzi nella sessione tutte le variabili che ti interessano, come ad esempio il nome che dell'utente che vuoi visualizzare.Alessandro
-
Ok grazie, adesso provo...
-
No, non funziona.
La pagina "login.php" l'ho modificata in questo modo:
[PHP]
<?php
session_start();
if( isset($_POST['submit']) && (trim($_POST['submit']) == "Conferma") )
{
$user = $_POST['user'];
$password = $_POST['password'];
@include "config.php";
$ctrl_login = @mysql_query("SELECT id,nome FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
if(@mysql_num_rows($ctrl_login)==0)
{
echo "Login incorretto.";
}else{
$obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
$query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id='".$obj->id."'") or die (mysql_error());
$_SESSION['id'] = $obj->id;
$_SESSION['nome'] = $obj->nome;
// redirect alla pagina degli iscritti
echo "Login effettuato.";
}
}else{
?>
<h1>Modulo di conferma:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Username:<br>
<input name="user" type="text" size="20"><br>
Password:<br>
<input name="password" type="password" size="20" maxlength="10"><br>
<input name="submit" type="submit" value="Conferma">
</form>
<?php
}
?>
[/PHP]Dicendo di selezionare non solo l'id ma anche il 'nome'.
Che poi successivamente l'ho salvato nella sessione.
Il codice che ho fatto per dare il benvenuto è invece:
[PHP]
<php?
if(isset($_SESSION['nome']))
{
echo "Bentornato "$_SESSION['nome']"!";
}
?>
[/PHP]Perchè non mi funzia? Cos'ho sbagliato?
-
Intanto mancano un paio di punti in questa riga di codice:
[php]echo "Bentornato ".$_SESSION['nome']."!";[/php]Poi, nelle pagine dove dovrebbe comparire il msg di benvenuto hai inserito all'inizio session_start()?
A volte capita di dimenticarlo.
-
Sì certo il session_start() l'ho inserito, ma nel codice non se vedeva perchè sta più in alto.
Comunque grazie per avermi segnalato i due punti adesso dovrebbe funzionare.
Comunque provo...
-
No non funziona, ma non mi visualizza proprio niente dove dovrebbe comparire.
All'inizio ho messo session_start()
E il codice che ho fatto è:
<php?
if(isset($_SESSION['nome']))
{
echo "Bentornato ".$_SESSION['nome']."!";
}
?>Prova vedere con i tuoi occhi.
vai su robyonweb.com/conferma.php
ed inserisci:
user: prova
password: default
Se il login è corretto ti dirà che il login è tato effettuato.
Dopo di chè vai sul link robyonweb.com/index.php e sopra a Logout e cancellati come vedi non c'è niente mentre ci dovrebbe essere "Bentornato prova (il nome)"
Come mai?
Attendo risposte (spero :D)
-
Intanto che ragionate su questo problema vorrei porvi un'altra domanda:
Nella pagina avete visto:
Logout | Cancellati
Ma nella pagina cancellati vorrei che non si cancellassero immettendo di nuovo l'user e la password, ma in automatico.
Questa è la pagina di cancellazione:Cancellazione.php
[PHP]
<?php
if(isset($_POST['submit']) && (trim($_POST['submit']) == "Cancellati"))
{
//controllo sul formato dell'username
if(!isset($_POST['user']))
{
die("Formato username incorretto.");
}
$user = $_POST['user'];
$password = $_POST['password'];
include "config.php";
$ctrl = mysql_query("SELECT user FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
if(@mysql_num_rows($ctrl) == 0)
{
die("L'username non risulta registrata.");
}
$ctrl_mail = @mysql_query("DELETE FROM iscrizioni WHERE user='$user' AND password='$password'") or die ("E' stato impossibile cancellarti : <br>".mysql_error());
echo "Cancellazione avvenuta!";
}
?>
<h1>Cancellati da robyonweb:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Username:<br>
<input name="user" type="text" size="20"><br>
Password:<br>
<input name="password" type="password" maxlength="10" size="20"><br>
<input name="submit" type="submit" value="Cancellati">
</form>
<?
?>
[/PHP]Come potete aiutarmi? E per la prima domanda con il mex di Benvenuto, è troppo difficile risorverlo?
-
Scusa, ma perchè "stai reinventando l'acqua calda" ? Nel senso: perchè stai rifacendo da 0 una cosa che i vari CMS fanno da sempre ? Perchè crei da zero qualche cosa che i vari framework gia' trattano e che tu potresti utilizzare per semplificarti la vita ?
-
Scusa ma non capisco cosa intendi!
E poi comunque io nella vita sono uno che le cose (specialmente nell'informatica) le voglio fare solo, cioè non nel senso che non voglio essere aiutato, perchè altrimenti non avrei postato in questo forum; in parole povere non voglio cose già prefatte, perchè voglio imparare!
E comunque non capisco a cosa ti riferisci...
Adesso che avete capito le mie intenzioni vorrei, perfavore, che mi risolviate questo problema se siete in grado di farlo, naturalmente!
-
Non capire male. Anche io sono sempre pronto ad imparare, ma non voglio imparare come si crea l'acqua calda, quando ci sono gia' tanti strumenti che la creano per me. Voglio imparare come "sfruttare/utilizzare" l'acqua calda. Nel tuo caso specifico, perchè impazzisci dietro a come creare una sezione di login/logout dell'utente, quando potresti imparare ad utilizzare un framework MVC come Zend Framework così da poter sfruttare meglio in seguito le tue conoscenze, magari trovando lavoro per qualcuno che ha bisogno di un programmatore PHP con conoscenze di ZF. Tutto qui. Non volevo offendere. M.
-
Avevo capito che non c'era niente di offensivo nel tuo messaggio,ma ormai ho iniziato con questo metodo e voglio finire almeno questo sito così.
Quindi perfavore aiutatemi...
-
Grazie a tutti coloro che mi hanno aiutato (specialmente in questi ultimi giorni...
), ma ho risolto tutto solo
senza l'aiuto di framework o cose varie...
Ciao steave67