Utente - Periodo di prova

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
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;
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
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 :)
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
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:

Nickname

Utente Attivo
18 Set 2013
122
0
0
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
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
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!";

}
?>
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
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] )
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
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:

Nickname

Utente Attivo
18 Set 2013
122
0
0
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 ?
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
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:

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
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) ";
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
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.
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
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.
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
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? =(
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
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
Autore Titolo Forum Risposte Data
I nome utente non esiste nel database PHP 1
I carica foto profilo sessione utente PHP 2
I sessione utente elimina chat PHP 12
I invia inserisci nome utente invia messaggio PHP 0
I cartella privata utente PHP 4
I caricamento file in sottocartella nome utente PHP 3
felino [Wordpress] Gallery con foto selezionabili dall'utente WordPress 0
M Mostrare testo (o parte di esso) in base a utente PHP 0
G Bentrovati da un nuovo utente Presentati al Forum 1
C Rinominare file in base all'id dell'utente loggato PHP 0
E Gestione profilo utente tramite Form PHP 3
I visualizza profilo utente utente in chat PHP 0
F Nuovo utente Presentati al Forum 0
R Plugin per Registrazione Utente e Pagamento prodotto WordPress 2
A Dare l'accesso ad una pagina solo ad un utente specifico PHP 0
G Registrazione utente su pagina asp Classic ASP 14
M Lanciare alert se il codice fiscale è già presente nel db e lasciare la scelta di inserire all'utente PHP 42
W Nuovo utente Presentati al Forum 0
J Nuovo utente Presentati al Forum 1
G Nuovo utente Presentati al Forum 1
R Obbligare all'utente un pagamento al momento della registrazione PHP 3
F [PHP] Verifica utente presente nel DB PHP 13
A [PHP] Bloccare utente tramite indirizzo IP PHP 3
A [PHP] registrazione utente in un database sql con confronto PHP 1
R [WordPress] Calendario Personale per ogni Utente WordPress 0
R [PHP] Estrarre id utente loggato.? PHP 4
KOMODO_JOE [WordPress] Area privata per ogni utente su altervista WordPress 1
L Nuovo utente Presentati al Forum 0
L [PHP] Visualizzare utente dopo login PHP 0
M Nuovo Utente Presentati al Forum 0
Robpagna Nuovo utente Presentati al Forum 2
U [PHP] Differenza tra amministratore e utente PHP 2
svtmaster Salve , un saluto a tutti voi sono un nuovo utente . Grazie Presentati al Forum 0
G Sono un nuovo utente questo sito Presentati al Forum 0
R [PHP] creare pagina profilo per ogni utente PHP 4
M [PHP] Eliminazione utente e tutti i suoi file caricati in una cartella PHP 8
A [PHP] Controllo nome utente form di registrazione PHP 4
M [MySQL] Come associare stats ad ogni utente. MySQL 0
joomeph Cambiare Nome Utente Supporto Mr.Webmaster 3
A [PHP] Cancellare riga database a scelta dell'utente PHP 2
A [PHP] Modificare campo database in base alla scelta dell'utente PHP 2
A Cambio password utente DB Database 0
J [PHP] Estrapolare utente dominio da pc PHP 2
B [PHP] hp script creare un utente diminuendo -1 e cosi via PHP 1
P [PHP] Limitare login ad un solo utente per volta PHP 12
A Un saluto da un nuovo utente Presentati al Forum 2
giancadeejay [PHP] Pagina profilo UTENTE modificabile PHP 2
D [Javascript] [HTML] Countdown su Mobirise di 24 ore relative per ogni utente. Javascript 4
A [PHP] Riconoscimento Utente Loggato PHP 7
Shyson [Javascript] Nascondere avviso se utente può registrarsi Javascript 0

Discussioni simili