Utente - Periodo di prova

Ciao, ti converrebbe intanto mettere la condizione:

PHP:
if(isset($_GET['passkey'])){ 
//
 }
e un'altro parametro di controllo nela url che mandi all'email che gestisci in un'altro file php. Per il problema che la data al click sul link non si vede. prova intanto a fare un print_r() dopo che hai prelevato i dati dalla tabella utenti_temp:
PHP:
if($contauser == 1){

$rows = mysql_fetch_array($risultatouser);
print_r($rows);
 }
exit;
 
Ciao, ti converrebbe intanto mettere la condizione:

PHP:
if(isset($_GET['passkey'])){ 
//
 }
e un'altro parametro di controllo nela url che mandi all'email che gestisci in un'altro file php. Per il problema che la data al click sul link non si vede. prova intanto a fare un print_r() dopo che hai prelevato i dati dalla tabella utenti_temp:
PHP:
if($contauser == 1){

$rows = mysql_fetch_array($risultatouser);
print_r($rows);
 }
exit;

Mm comunque lo script funziona perché lo utilizzo per la registrazione normale funziona tutto benissimo.
Con print_r($rows); non mi dà niente comunque, mi continua tutto normale.
Aiutami per favore, so che in tutte le discussioni lo ripeto sempre, ma è molto urgente.
Grazie comunque dell'aiuto che mi stai dando, questo forum è fantastico :)
 
Con print_r($rows); non mi dà niente

appunto, se tutto ok la funzione print_r() di deve restituire il contenuto di $rows.

Crea un altro file php che chiami al click sul link dell'attivazione e inserisci questo codice in modo da vedere dove sta l'errore:

if(isset($_GET['passkey'])) {

$passkey = $_GET['passkey'];

$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '".$passkey."'";
$risultatouser = mysql_query($sqlrecuperauser);

if(mysql_num_rows($risultatouser)>0) {


$rows = mysql_fetch_array($risultatouser);
print_r($rows);
}
else
{
echo "Nessun record trovato."
}



else {

echo "Errore!";

}

Cmq le valrei funzioni mysql_query,mysql_fetch_array,etc sono deprecate potresti cominciare ad usare mysqli
 
Ultima modifica:
appunto, se tutto ok la funzione print_r() di deve restituire il contenuto di $rows.

Crea un altro file php che chiami al click sul link dell'attivazione e inserisci questo codice in modo da vedere dove sta l'errore:

if(isset($_GET['passkey'])) {

$passkey = $_GET['passkey'];

$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '".$passkey."'";
$risultatouser = mysql_query($sqlrecuperauser);

if(mysql_num_rows($risultatouser)>0) {


$rows = mysql_fetch_array($risultatouser);
print_r($rows);
}
else
{
echo "Nessun record trovato."
}



else {

echo "Errore!";

}

Cmq le valrei funzioni mysql_query,mysql_fetch_array,etc sono deprecate potresti cominciare ad usare mysqli

Eh scusami ma di php so veramente pochissime cose, potresti spiegarmi meglio come fare per creare un altro file php che chiamo al click sul link dell'attivazione?

Eh per lo stesso motivo per ora non utilizzo mysqli, già so poco su tutto il resto :D scusami
 
Nell' email mandi ilcodice conferma con questo link:
PHP:
$message.="http://www.MIOSITO.it/attivazione.php?passkey=$codiceconferma";

crea una nuova pagina php e il link sara':
PHP:
$message.="http://www.MIOSITO.it/nuova_pagina.php?passkey=$codiceconferma";

Nella nuova metti questa porzione di codice per controllare se tutto ok, dopodiche' si va avanti:
PHP:
<?php

    ob_start();
    include 'config.php';
    connect(); 

if(isset($_GET['passkey'])) {

$passkey = $_GET['passkey'];



$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '".$passkey."'";
$risultatouser = mysql_query($sqlrecuperauser);

if(mysql_num_rows($risultatouser)>0) {


$rows = mysql_fetch_array($risultatouser);
print_r($rows);
}
else
{
echo "Nessun record trovato.";
}



else {

echo "Errore!";

}
?>
 
Nell' email mandi ilcodice conferma con questo link:
PHP:
$message.="http://www.MIOSITO.it/attivazione.php?passkey=$codiceconferma";

crea una nuova pagina php e il link sara':
PHP:
$message.="http://www.MIOSITO.it/nuova_pagina.php?passkey=$codiceconferma";

Nella nuova metti questa porzione di codice per controllare se tutto ok, dopodiche' si va avanti:
PHP:
<?php

    ob_start();
    include 'config.php';
    connect(); 

if(isset($_GET['passkey'])) {

$passkey = $_GET['passkey'];



$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '".$passkey."'";
$risultatouser = mysql_query($sqlrecuperauser);

if(mysql_num_rows($risultatouser)>0) {


$rows = mysql_fetch_array($risultatouser);
print_r($rows);
}
else
{
echo "Nessun record trovato.";
}



else {

echo "Errore!";

}
?>


Aallora, ho fatto come hai detto solo che nel codice ho dovuto aggiungere una parentesi graffa altrimenti me lo dà errato, non so se va bene lo stesso:

PHP:
if(isset($_GET['passkey'])) {

$passkey = $_GET['passkey'];



$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '".$passkey."'";
$risultatouser = mysql_query($sqlrecuperauser);

if(mysql_num_rows($risultatouser)>0) {


$rows = mysql_fetch_array($risultatouser);
print_r($rows);
}
else
{
echo "Nessun record trovato.";
}} else {

echo "Errore!";

}


Ora nella pagina mi dà questo:

Codice:
Array ( [0] => 6558197eb0b74a4f176fe0ee714366c7 [codiceconferma] => 6558197eb0b74a4f176fe0ee714366c7 [1] => Luca [username] => Luca [2] => Luca90 [password] => Luca90 [3] => 2013-12-05 [data] => 2013-12-05 [4] => [email protected] [email] => [email protected] [5] => Luca [nome] => Luca [6] => Luca Rossi [cognome] => Luca Rossi [7] )
 
OK, puoi modificare il codice in:
PHP:
if(isset($_GET['passkey'])) {

$passkey = $_GET['passkey'];



$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '".$passkey."'";
$risultatouser = mysql_query($sqlrecuperauser);

if(mysql_num_rows($risultatouser)>0) {


$rows = mysql_fetch_array($risultatouser);

$username = $rows['username'];
$email = $rows['email'];
$password = $rows ['password'];
$data = $rows ['data'];
$nome = $rows ['nome'];
$cognome = $rows ['cognome'];

   $passwordcript = md5($password);

$sqlconfermauser = mysql_query("INSERT INTO utenti (username, password, data, email, nome, cognome) VALUES ('$username', '$passwordcript', '$data', '$email', '$nome', '$cognome')");

//
if ($sqlconfermauser) {

echo "<br>Il tuo account è stato attivato con successo";
$sqleliminadati = mysql_query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");

} else {

echo "Errore!";

} 
//



}
else
{
echo "Nessun record trovato.";
}} else {

echo "Errore!";

}
 
Ultima modifica:
OK, puoi modificare il codice in:
PHP:
if(isset($_GET['passkey'])) {

$passkey = $_GET['passkey'];



$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '".$passkey."'";
$risultatouser = mysql_query($sqlrecuperauser);

if(mysql_num_rows($risultatouser)>0) {


$rows = mysql_fetch_array($risultatouser);

$username = $rows['username'];
$email = $rows['email'];
$password = $rows ['password'];
$data = $rows ['data'];
$nome = $rows ['nome'];
$cognome = $rows ['cognome'];

   $passwordcript = md5($password);

$sqlconfermauser = mysql_query("INSERT INTO utenti (username, password, data, email, nome, cognome) VALUES ('$username', '$passwordcript', '$data', '$email', '$nome', '$cognome')");

//
if ($sqlconfermauser) {

echo "<br>Il tuo account è stato attivato con successo";
$sqleliminadati = mysql_query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");

} else {

echo "Errore!";

} 
//



}
else
{
echo "Nessun record trovato.";
}} else {

echo "Errore!";

}

Perfetto !
Ora nella tabella utenti compare anche la data, cosa sbagliavo ?
 
Non ricordo,cmq hai risolto.
Mi raccomando appena puoi passa a mysqli...ciao

Si ho risolto ma in parte xD
Si certo sicuramente passerò a mysqli.

Volevo chiederti, ora vorrei che dopo 20 giorni l'utente, quando effettua il login, invece di effettuare normalmente l'accesso, gli compaia un messaggio che dice che sono scaduti i giorni di prova e vorrei fare in modo quindi che non riesca ad effettuare il login, quindi che sia come 'bloccato', come posso fare questo ?

E ancora, come posso fare in modo che dopo 25 giorni, quindi 5 giorni dopo l'avviso, l'utente sia cancellato del tutto ?

Grazie mille ancora :)
 
Ultima modifica:
Volevo chiederti, ora vorrei che dopo 20 giorni l'utente, quando effettua il login, invece di effettuare normalmente l'accesso, gli compaia un messaggio che dice che sono scaduti i giorni di prova
Basta che al login fai la query che ti ho postato all'inizio della discussione
PHP:
query=mysqli_query("SELECT * FROM utenti_temp WHERE username='".$username."' AND password='".$password."'  AND(TO_DAYS(NOW()) - TO_DAYS(data_inserimento) >= 20)",$conn);

if(mysqli_num_rows($query)>0)
{
  //qui fai viusalizzare il messaggio che vuoi...
header("location:pagina.php");
}
E ancora, come posso fare in modo che dopo 25 giorni, quindi 5 giorni dopo l'avviso, l'utente sia cancellato del tutto ?
PHP:
$query="DELETE FROM utenti_temp WHERE (TO_DAYS(NOW()) - TO_DAYS(data_inserimento) >= 25) ";
 
Basta che al login fai la query che ti ho postato all'inizio della discussione
PHP:
query=mysqli_query("SELECT * FROM utenti_temp WHERE username='".$username."' AND password='".$password."'  AND(TO_DAYS(NOW()) - TO_DAYS(data_inserimento) >= 20)",$conn);

if(mysqli_num_rows($query)>0)
{
  //qui fai viusalizzare il messaggio che vuoi...
header("location:pagina.php");
}

PHP:
$query="DELETE FROM utenti_temp WHERE (TO_DAYS(NOW()) - TO_DAYS(data_inserimento) >= 25) ";


Scusa se rispondo così tardi ma ho avuto molto da fare.

Io utilizzo questo script per far accedere, come posso integrarlo con quella parte che mi hai scritto tu ?

PHP:
// qui ovviamente c'è altro codice..
		
$recuperadati = mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password_cript'");
						
$verificadati = mysql_num_rows($recuperadati);
						
if($verificadati == 1){
						
$sessione = mysql_fetch_array($recuperadati);
$_SESSION['id'] = $sessione['id'];
$_SESSION['utente'] = $sessione['username'];
$_SESSION['email2'] = $sessione['email'];
$_SESSION['nome2'] = $sessione['nome'];
$_SESSION['cognome2'] = $sessione['cognome'];
// altri dati...

echo "Sto effettuando il Login";
header("Refresh: 1; URL= pagina.php");	

} else {

$messaggioalert2 = "Username o password sbagliati";
echo "<script type='text/javascript'>alert('$messaggioalert2');</script>"; // Qui ho usato javascript per alcuni motivi
header("Refresh: 1; URL= pagina2.php");	
// ecc. ecc.
 
Appunto, mandi in esecuzione la query di controllo data prima di effetturare la seconda query per effetuarre il login ovvero:
PHP:
// qui ovviamente c'è altro codice..
##########
 $query=mysql_query("SELECT * FROM utenti_temp WHERE username='".$username."' AND password='".$password."'  AND(TO_DAYS(NOW()) - TO_DAYS(data_inserimento) >= 20));

if(mysql_num_rows($query)>0)
{
  //qui fai visualizzare il messaggio che vuoi...
header("location:pagina.php");
}
##########        
$recuperadati = mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password_cript'");
                        
$verificadati = mysql_num_rows($recuperadati);
                        
if($verificadati == 1){
                        
$sessione = mysql_fetch_array($recuperadati);
$_SESSION['id'] = $sessione['id'];
$_SESSION['utente'] = $sessione['username'];
$_SESSION['email2'] = $sessione['email'];
$_SESSION['nome2'] = $sessione['nome'];
$_SESSION['cognome2'] = $sessione['cognome'];
// altri dati...

echo "Sto effettuando il Login";
header("Refresh: 1; URL= pagina.php");    

} else {

$messaggioalert2 = "Username o password sbagliati";
echo "<script type='text/javascript'>alert('$messaggioalert2');</script>"; // Qui ho usato javascript per alcuni motivi
header("Refresh: 1; URL= pagina2.php");    
// ecc. ecc.
 
Appunto, mandi in esecuzione la query di controllo data prima di effetturare la seconda query per effetuarre il login ovvero:
PHP:
// qui ovviamente c'è altro codice..
##########
 $query=mysql_query("SELECT * FROM utenti_temp WHERE username='".$username."' AND password='".$password."'  AND(TO_DAYS(NOW()) - TO_DAYS(data_inserimento) >= 20));

if(mysql_num_rows($query)>0)
{
  //qui fai visualizzare il messaggio che vuoi...
header("location:pagina.php");
}
##########        
$recuperadati = mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password_cript'");
                        
$verificadati = mysql_num_rows($recuperadati);
                        
if($verificadati == 1){
                        
$sessione = mysql_fetch_array($recuperadati);
$_SESSION['id'] = $sessione['id'];
$_SESSION['utente'] = $sessione['username'];
$_SESSION['email2'] = $sessione['email'];
$_SESSION['nome2'] = $sessione['nome'];
$_SESSION['cognome2'] = $sessione['cognome'];
// altri dati...

echo "Sto effettuando il Login";
header("Refresh: 1; URL= pagina.php");    

} else {

$messaggioalert2 = "Username o password sbagliati";
echo "<script type='text/javascript'>alert('$messaggioalert2');</script>"; // Qui ho usato javascript per alcuni motivi
header("Refresh: 1; URL= pagina2.php");    
// ecc. ecc.

Mm non funziona
L'ho dovuto modificare così altrimenti mi dava che era errato
PHP:
$controllodata = mysql_query("SELECT * FROM utenti_temp WHERE username = '.$username.' AND password='.$password.'  AND(TO_DAYS(NOW()) - TO_DAYS(data_inserimento) >= 20)");

if(mysql_num_rows($controllodata)>0){
echo "Hai superato i 20 giorni ecc..";
header("location: nuovapagina.php");
}

Ho provato poi a registrare l'utente ed a modificare la data nella tabella nel database e poi a fare il login ma non compare niente e non mi reinderizza alla pagina.
L'unica cosa che compare per un secondo mentre fa il login è warning ecc. alla linea 55 ovvero questa if(mysql_num_rows($controllodata)>0){
e compare in ogni caso.
Come posso fare? =(
 
Ci dev'essere un errore nella query, fai un controllo:
PHP:
if(!$controllodata)
{
  echo mysql_error();
}


http://www.edinweb.altervista.org

Compare questo


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\Inetpub\webs\sitowebit\index.php on line 55
Unknown column 'data_inserimento' in 'where clause'

La linea 55 è sempre la stessa che ho scritto nel commento prima.
 

Discussioni simili