|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
[PHP] Problema reindirizamento pagina
Devo far si che dopo la registrazione del account venga visualizzato un messaggio e dopo X secondi (in questo caso 3) l'utente venga reindirizzato alla pagina profilo.php.
Ho fatto nel seguente modo: Codice:
<?php
...
...
echo "Il tuo account è stato attivato!";
sleep(3);
header('Location: ' . $url . 'profilo.php');
?>
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
In alternativa ho trovato anche questo codice, ho provato ad inserirlo negli echo ma mi da errore, credo faccia casino con le virgolette del echo. Voi che dite?
Codice:
<meta http-equiv="Refresh" content="3;URL=sito.it"> |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Quote:
Comunque sappi che l'header non lo puoi modificare dopo che hai stampato qualcosa. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
Comunque questo è il file completo:
Codice:
<?php
include("connessioneDB.php");
// Controllo che la variabile "codice" ricevuta tramite GET abbia un valore
if(!IsSet($_GET['codice'])){ echo "ERRORE: Codice di attivazione non fornito!";}
else
{
$codice = $_GET['codice'];
$check = mysql_query("SELECT * FROM utenti WHERE codice='".$codice."'");
$appo = mysql_num_rows($check);
if ($appo != 1) { echo "Non corrisponde nessun account al codice di attivazione usato"; }
else
{
$curruser=mysql_fetch_array($check);
if($curruser['conf']=='1')
{
echo "Il tuo account è già stato attivato!";
echo "Tra pochi istanti verrai reindirizzato alla home.";
}
else
{
// Seleziono username e password degli utenti con il suddetto codice
$username = mysql_query("SELECT username FROM utenti WHERE codice='$codice'");
$password = mysql_query("SELECT password FROM utenti WHERE codice='$codice'");
// Creo una sessione con i selezionati dal DB
session_start ();
$_SESSION['username'] = $username;
$_SESSION['pass'] = $password;
// Attivo l'account settando il campo conf = 1
$activate = mysql_query("UPDATE utenti SET conf='1' WHERE codice='".$codice."'");
echo "Il tuo account è stato attivato con successo!";
echo "Tra pochi istanti verrai reindirizzato alla pagina del tuo profilo.";
}
}
}
sleep(3);
header('Location: ' . $url . 'profilo.php');
?>
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Quote:
header('Location: ' . $url . 'profilo.php'); |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
Non c'è un altro modo per modificarlo?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Devi fare il reindirizzamento in altro modo, o in html
Codice:
<META HTTP-EQUIV="Refresh" CONTENT="secondi; URL=http://url..."> Codice:
<script type="text/javascript"> window.location.href="http://url..."; </script |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
Grazie sono riuscito a risolvere usanto META HTTP-EQUIV
Ho un'altro problema, il codice scritto qui sotto non funziona. Ho provato ha visualizzare con un echo il contenuto delle variabili $username e $password e mi visualizza: - Resource id #6 - Resource id #7 Quindi deve esserci qualche errore nelle select, però non capisco dove... Codice:
// Seleziono username e password degli utenti con il suddetto codice
$username = mysql_query("SELECT username FROM utenti WHERE codice='".$codice."'");
$password = mysql_query("SELECT password FROM utenti WHERE codice='".$codice."'");
// Creo una sessione con i selezionati dal DB
session_start ();
$_SESSION['username'] = $username;
$_SESSION['pass'] = $password;
// Attivo l'account settando il campo conf = 1
$activate = mysql_query("UPDATE utenti SET conf='1' WHERE codice='".$codice."'");
// Memorizzo la data di login dell'utente nel campo data_ultima
mysql_query("UPDATE utenti SET data_ultima = NOW() WHERE (username = '$username')") or die (mysql_error());
echo "Il tuo account è stato attivato con successo!";
echo "Tra pochi istanti verrai reindirizzato alla pagina del tuo profilo.
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Oct 2001
Città: Firenze
Messaggi: 585
|
mysql_query restituisce un oggetto di tipo tabella, non una stringa. Per ottenere l'informazione che cerchi da questa tabella devi usare i metodi per "scansionarla".
__________________
http://www.gnu.org/philosophy/no-wor...hments.it.html http://gprime.net/flash/postingandyou.php [1510 kB] |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 307
|
ti da quei codici di errore perchè le variabili $username e $password non contengono una stringa come ti aspetti ma un array.
il risultato di una query in php è generalmente un array multidimensionale (in questo caso sono 2 array monodimensionali), ad ogni modo, per potere leggere i valori restituiti dalla query devi utilizzare la funzione mysql_fetch_array() Codice:
$username = mysql_query("SELECT username FROM utenti WHERE codice='".$codice."'");
$username=mysql_fetch_array($username);
Codice:
if(IsSet($_POST['posted_username']) && IsSet($_POST['posted_password'])){
$check=mysql_query("SELECT * FROM users WHERE username = '".$_POST['posted_username']."'")or die(mysql_error());
$info=mysql_fetch_array($check);
if($info['username']==($_POST['posted_username']) && $info['password']==md5($_POST['posted_password'])){
$_SESSION['user']=$_POST['posted_username'];
}
}
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
Grazie per l'aiuto.
E se invece di memorizzare la pass memorizzassi l'MD5 della pass? |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
Ho provato a correggere le query nel modo da te consigliato però non funziona ancora, adesso se visualizzo il contenuto delle variabili mi visualizza - - Array
- Array Il codice è questo: Codice:
// Seleziono username e password degli utenti con il suddetto codice
$query1 = mysql_query("SELECT username FROM utenti WHERE codice='".$codice."'");
$username = mysql_fetch_array($query1);
$query2 = mysql_query("SELECT password FROM utenti WHERE codice='".$codice."'");
$password = mysql_fetch_array($query2);
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 307
|
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 307
|
Quote:
Codice:
$query1 = mysql_query("SELECT username FROM utenti WHERE codice='".$codice."'");
$query1 = mysql_fetch_array($query1);
$username = $query[0];
|
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
Quote:
|
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Milano
Messaggi: 1310
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:16.




















