Non riesco più ad inviare email con il php

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
vuol dire che non hai messo niente nel link dopo il ?

attivazione.php? qui non hai messo niente
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Inoltre ho messo anche questo per capire perchè mi dava il triangolino giallo su $ctrl_login e su $id:

PHP:
echo $q;
var_dump($_GET);

$ctrl_login = mysql_query($q) or die(mysql_error());
             $id = $_REQUEST['id'];
var_dump($ctrl_login);
var_dump($id);

echo $id; 

echo $ctrl_login;
      die();

Il risulta è il seguente:

SELECT id FROM utenti WHERE email='' AND username=''array(0) { } resource(5) of type (mysql result) NULL Resource id #5

Cosa mi sta a significare tutto ciò ????
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
il link deve essere cosi
PHP:
$mail->MsgHTML('Grazie di esserti iscritto.<a href="http://utenti/fabio/MegaLaboratorio/attivazione.php?email=' . $_POST['email'] . '&password=' . $_POST['pass'] . '">clicca qui per attivare</a> il tuo account Grazie.');
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ma tu dalla mail non devi accedere prima di aver verificato i dati

arrivi ad una pagina di conferma che controlla se i dati sono presenti nel database

ma se non gli passi i dati che controllo vuoi fare?

ora vedo tra l'atro che hai tolto la query per aggiornare il campo "autorizzato"

non riesco piu a seguirti

fai un po di ordine
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Uhmm credo di avere fatto un gran casino. Dalla email deve arrivare alla pagina di login o di attivazione ??? Oppure deve arrivare ad attivare prima l'account e dopo passare al login ??? L'update sta sulla pagina attivazione se non erro. E c'hai ragione c'hai, come faccio l'update ??? Se me so magnato la stringa ??? Deve stare prima sull'attivazione o sul login ???
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
dalla mail vai

attivazione.php
qui verifichi se la mail e qualsiasi altro dato che hai nella pagina tipo la username sono presenti nel database con campo autorizzato pari a zero

se verificato aggiorni il campo autorizzato a 1

poi puoi passare al login
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Finalmente un po' di chiarezza. Quindi quella stringa che mi hai dato:

PHP:
$mail->MsgHTML('Grazie di esserti iscritto.<a href="http://utenti/fabio/MegaLaboratorio/attivazione.php?email=' . $_POST['email'] . '&password=' . $_POST['pass'] . '">clicca qui per attivare</a> il tuo account Grazie.');

E' corretta no ??? Ed è giusto che stia sulla pagina iscrizione.php Quindi, ci vuole una query che fa la verifica dell'email e password dopo di che fare l'update. Bel problemino da risolvere ehehehe. E come fare per decripatre la password ????? Basta questo ch emi avevi postato ???

PHP:
// includiamo il file di configurazione
        require_once("connetti.php");

        // qui bisognera decriptare
        
         $username = $_GET['username'];
         $email = $_GET['email'];  

        // controlliamo se i parametri sono presenti in tabella
$q = "SELECT id FROM utenti WHERE email='$email' AND username='$username'";

Praticamente c'è anche la query che dovrebbe servire a verificare se tali dati sono presenti nel db o sbaglio ????
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
questo dato pero nella pagina iscrizione non lo hai $_POST['pass']
si vede quando stampi la query $q

non ti serve decriptare per ora ti basta passare due parametri che puoi verificare

prova a ripostare iscrizione,php
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

Ho fatto na cosa del genere, la devo testare, ma intanto mi puoi dire se logicamente potrebbe andare ??? Grazie.

PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Account attivato</title>   
    </head>
    <body>
        <?php
        
        // includiamo il file di configurazione
        require_once("connetti.php");

        // qui bisognera decriptare
        
         $username = $_GET['username'];
         $email = $_GET['email'];  

        // controlliamo se i parametri sono presenti in tabella
$q = "SELECT id FROM utenti WHERE email='$email' AND password='$pass'";

$checktotal=mysql_query("SELECT id, email, pass FROM utenti WHERE id='$id', email='$$email',password='$pass'");
$vuota=mysql_num_rows($total);
if($vuota > 0){
	echo "<br> <br> <h1> Attenzione: non è presente nessun dato con i relativi dati richiesti. </h1>";
echo "<meta http-equiv='Refresh' content=4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
exit();

}else{
  $q="UPDATE utenti SET attivo='1'";

  echo "Account attivato....";
}

    ?>

</body>
</html>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
direi che piu o meno puo andare
non ti serve il redirect altrimenti la pagina continuera a ricaricarsi

PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Account attivato</title>   
    </head>
    <body>
        <?php
        // includiamo il file di configurazione
        require_once("connetti.php");

        // qui bisognera decriptare

        $username = $_GET['username'];
        $email = $_GET['email'];

        // controlliamo se i parametri sono presenti in tabella
        $q = "SELECT id FROM utenti WHERE email='$email' AND username='$username'";

        $checktotal = mysql_query($q);
        $vuota = mysql_num_rows($total);
        if ($vuota > 0) {
            echo "<br> <br> <h1> Attenzione: non è presente nessun dato con i relativi dati richiesti. </h1>";
            echo "Impossibile continuare";
            exit();
        } else {
            $q = "UPDATE utenti SET attivo='1'";

            echo "Account attivato....";
        }
        ?>

    </body>
</html>
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Provo e ti dico. Hi fatto degli impacchi su un dito che mi è cascato un bicchiere e mi sono tagliato. Eovviamente è gonfio come un palloncino.

Mi da il segunte errore:

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /volume1/web/utenti/fabio/MegaLaboratorio/attivazione.php on line 22 Account attivato....

Cosa vuol dire ???? E ovviamente non mi fa entrare.
 
Ultima modifica:

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

La formula dell'update è giusta ???


PHP:
$q="UPDATE utenti SET attivo='1'";

La cosa brutta, è che se vado su phpmyadmin, e faccio la modifica manuale da 0 a 1 ed eseguo il login.php. Non mi fa entrare ugualmente :( Non so più che fare e soprtautto non so dove sia lo sbaglio :( :dipser:
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
stampa la query
PHP:
echo $q;
die();
andra in errore prche non gli arriavano i dati nel modo giusto

ew posta iscrizione.php che è la pagina che crea il link
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ok, Faccio subito. Questo è quello che mi appare:

SELECT id FROM utenti WHERE email='[email protected]' AND password=''

Non gli piace la password. Ti allego il login, tante volte ci fosse un errore la.

login.php

PHP:
<?php
require_once("connetti.php");

if (!isset($_POST['log'])) {
    ?>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Loggati</title>

        <center>   <H2>DIGITARE USERNAME & PASSWORD. PREMERE <a href="iscrizione.php"> QUI</a> </H2> 

            <form action= '' method="POST">
                <font face="Comic Sans MS">
                Username: <input type="text" name="username"  maxlength="30" size ="32"> <br> <br>
                Password: <input type="password" name="password"  maxlength="12" size ="14"> <br> <br>
                </font> 
                <center>
                    <input type="submit" name="log" value="Loggati" />
                    
                </center> </form>
        </head>
    </body>
    <?php
} else {

    session_start();
//Query originale
    
  $query = "SELECT id,username, nome, attivo FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . md5($_POST['password']) . "'";     


$cerco = mysql_query($query);

if (!isset($_POST['esci'])) {

    if (!$cerco) {
        echo "Errore query: <br/>$query<br/>" . mysql_error();
        mysql_error();
    } else {
     
    if (mysql_num_rows($cerco) == 1) {
        $row = mysql_fetch_assoc($cerco);        
        $_SESSION['username'] = $row['username'];
        $_SESSION['id'] = $row['id'];  
        //$_SESSION['autorizzato'] = $row['autorizzato'];
        $_SESSION['attivo'] = 1;

        
       
        header("Refresh: 0;URL=paginaris.php");   
    } else {

    echo "<h2> <center>";    
echo 'Premere su <a href="javascript:history.back();">back</a> Indietro per riprovare </h2>';
echo "Utente non trovato";

header("Refresh: 1;URL=paginaris.php");     
  echo "</h2> <center>";    
}  
}
}
}

?>
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ragazzi ovviamente rivolto a tutto lo staff,

ho sgamato che non mi fa l'update e la cosa brutta è che vado su phpmyadmin, e modifico attivo = 0 ad attivo = 1 non mi accetta la modifica ???? Coim'è sta storia ????? O meglio m el'accetta ma non mi fa entrare ugualmente.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non gli piace la pass perch enon gli arriva come parametro nel link

avevo scritto

e posta iscrizione.php che è la pagina che crea il link

ma probabilmente non mi ascolti
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

No assolutamente, anzi ti ascolto eccome. Solo che poi facio alcune prove per vedere senza ottenere risultati:A nche quella ch emi avevi detto tu. L'ho modificata mettendo la password ma niente non me la legge. E poi ripeto. Non fa l'update al campo attivo. Se lo facesse sarebbe un passo avanti. Ora ti posto l'iscrizione.php

PHP:
<?php

require_once("connetti.php");


if (!isset($_POST['reg'])) {
    ?>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Modulo d'iscrizone</title>

        <center>   <H1>BENVENUTO NEL SITO D'ISCIRIZIONE PROVA</H1>

            <form action= '' method="POST">

                <font face="Comic Sans MS">

                Nome:     <input type="text" name="nome"  maxlength="30" size ="32"> <br> <br>
                Cognome:  <input type="text" name="cognome"  maxlength="30" size ="32"> <br> <br>
                Username: <input type="text" name="username"  maxlength="30" size ="32"> <br> <br>
                 Email:    <input type="text" name="email"  maxlength="40" size ="42"> <br> <br>
                 Rip-Email: <input type="text" name="ripemail"  maxlength="40" size ="42"> <br> <br>
                 Password: <input type="password" name="password"  maxlength="12" size ="14"> <br> <br>
                 Rip-Passw: <input type="password" name="passw"  maxlength="12" size ="14"> <br> <br>
                </font>
                <center>
                    <input type="submit" name="reg" value="Invio iscrizione" />
                    <input type="submit" name="uscita" value="Uscita" />
                </center> </form>
        </head>
        <body>



    <?php
    
} else {
    $nome = mysql_real_escape_string(strtolower(trim ($_POST['nome'])));
    $cognome = mysql_real_escape_string(strtolower(trim ($_POST['cognome'])));
    $username = mysql_real_escape_string(strtolower(trim ($_POST['username'])));
    $password = mysql_real_escape_string(trim ($_POST['password']));
    $passw = mysql_real_escape_string(trim ($_POST['passw']));
    $email = mysql_real_escape_string(trim ($_POST['email']));
    $ripemail = mysql_real_escape_string(trim ($_POST['ripemail']));


//crittografa la passowrod

$pass = mysql_real_escape_string(md5(trim($_POST['password'])));
 
// verifico la presenza dei campi obbligator
    
$ok_ko ="";

 //controllo campi compilati

if($nome ==""){$ok_ko .=  "Attenzione: il campo nome deve essere compilato. <br> <br>";}
if($cognome ==""){$ok_ko .=  "Attenzione: il campo cognome deve essere compilato. <br> <br>";}
if($username ==""){$ok_ko .=  "Attenzione: il campo username deve essere compilato. <br> <br>";}
if($email ==""){$ok_ko .=  "Attenzione: il campo email deve essere compilato. <br> <br>";}
if($password ==""){$ok_ko .=  "Attenzione: il campo password deve essere compilato. <br><br>";}
 
 
 if($password != $passw){$ok_ko .=  "Attenzione: le due password non coincidono. <br> <br>";}
 
// Controllo se lo username è presente nel db

$checkusername=mysql_query("SELECT username FROM utenti WHERE username='$username'");
$vuota=mysql_num_rows($checkusername);
if($vuota > 0){
    echo "<br> <br> <h1> Attenzione: lo username: ".$username." è già presente nell'archivio. Si prega di cambiare email. Grazie !!! </h1>";
echo "<meta http-equiv='Refresh' content=4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
exit();

}
  
//controllo scrittura corretta dell'email
 
 if(!filter_var($email, FILTER_VALIDATE_EMAIL)||!filter_var($ripemail,FILTER_VALIDATE_EMAIL)){
     
             $ok_ko .= "indirizzo email non valido<br>";
 //   } //chiude il controllo scrittura corretta dell'email 

        // Controlla se le due email coincidono

if($email != $ripemail){$ok_ko .=  "Attenzione: le due email non coincidono. <br> <br>";}
} //chiude il controllo scrittura corretta dell'email

// Controllo se esiste l'email nel db

$checkemail=mysql_query("SELECT email FROM utenti WHERE email='$email'");
$vuota=mysql_num_rows($checkemail);
if($vuota > 0){
    echo "<br> <br> <h1> Attenzione: l'email: ".$email." è già presente nell'archivio. Si prega di cambiare email. Grazie !!! </h1>";
echo "<meta http-equiv='Refresh' content=4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
exit();

}

if($ok_ko !=""){
        echo "<h1>$ok_ko</h1>";
        echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
exit();
}else{
 
 $query="INSERT INTO utenti(nome, cognome, username, email, password)  VALUES('$nome','$cognome','$username','$email','$pass')";
//var_dump($query);//qui dovresti vedere se la query si forma come dovrebbe
$q_i=mysql_query($query);//qui se registra, se bool false errore, se resuorce... è a posto
var_dump($q_i);
   

// Parte riguardante l'invio email

//require_once ("/class.phpmailler.php");

require_once 'phpmailer/class.phpmailer.php';  
$mail  = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP


$mail->Username   = "@gmail.com";  // GMAIL username


$mail->Password   = "";            // GMAIL password

$mail->SetFrom("[email protected]");
 
$mail->Subject    = "Attivazione account.";


//$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->CharSet = "UTF-8";  //Content-Type" content="text/html;    


$mail->AddAddress($_POST['email']);

//$mail->MsgHTML('Grazie di esserti iscritto.  <a href="http://utenti/fabio/MegaLaboratorio/login.php?username=' . $_GET['username'] .'&password=' . $_GET['pass'].'">clicca qui per attivare</a></b>'." "."per attviare l'account. Grazie."); 

$mail->MsgHTML('Grazie di esserti iscritto.  <a href="http://utenti/fabio/MegaLaboratorio/login.php?email=' . $_POST['email'] .'&password=' . $_POST['password'].'">clicca qui per attivare</a></b>'." "."per attviare l'account. Grazie."); 

if(!$mail->Send()) {
    echo "Errore";
} else {
    echo "<h1> <br>Utente registrato correttamente. E' stata inviata un'email di conferma per attivare l'account</h1>";
    header("Refresh: 10;URL=login.php");
}
      
}
}
?>

Come puoi vedere dalla riga, che ti posto singolarmente che ti ascolto, sennò non starei qua a rompere le scatole se non ascoltassi no ????


PHP:
$mail->MsgHTML('Grazie di esserti iscritto.  <a href="http://utenti/fabio/MegaLaboratorio/login.php?email=' . $_POST['email'] .'&password=' . $_POST['password'].'">clicca qui per attivare</a></b>'." "."per attviare l'account. Grazie.");
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
nel link invii password e nella pagina attivazione recuperi l'username
è questo il problema
modifica cosi questo pezzo e riprova
PHP:
        // qui bisognera decriptare
        
         $pass= $_GET['password'];
         $email = $_GET['email'];  

        // controlliamo se i parametri sono presenti in tabella
$q = "SELECT id FROM utenti WHERE email='$email' AND password='$pass'";
 
Discussioni simili
Autore Titolo Forum Risposte Data
W Non riesco più a modificare i dati di una tabella da phpmyadmin MySQL 0
A Non riesco più a visualizzare il codice sicurezza nel forum Supporto Mr.Webmaster 3
C Non riesco più ad entrare su WordPress...."È richiesto l'aggiornamento del database" WordPress 0
C Non riesco più a pubblicare il web con Front Page HTML e CSS 8
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
L Non riesco a riprodurre uno sfondo Photoshop 0
R Non riesco a rinnovare l'immagine di sfondo PHP 1
G non riesco a capire quale sia l'errore [SQL] MySQL 2
R Non riesco a cambiare l'immagine di sfondo PHP 4
I Non riesco ad accedere ftp tramite IP in LAN Reti LAN e Wireless 6
Leshabituelles Non riesco ad aggiornare PHP PHP 0
D [HTML] Non riesco aprire foto singole in un album creato con "iWebAlbum" HTML e CSS 1
D [MS Access] aiuto non riesco a capire MS Access 6
T [PHP] aiuto....Fatal error: Uncaught Error:non riesco a capire PHP 1
O PHP 5.6 non riesco ad abilitare TSL 1.2 PHP 1
C non riesco a inviare la posta con account alice Posta Elettronica 1
L [Javascript] aiuto non riesco a inviare in get dal server web locale su altervista con httpRequest Javascript 0
G [Javascript] non riesco a usare ace - ReferenceError: define is not defined 1 ace.js:37:1 Javascript 0
booklisa Non riesco a connettermi: Connection timed out CMS (Content Management System) 3
A Non riesco ad inviare una mail attraverso PHP su Xampp PHP 2
otto9due Lampeggiamento solo su .hover(), inizia ma non riesco a fermarlo! jQuery 2
ANDREA20 [PHP] Non riesco ad impostare reset password invio via email PHP 6
S [PHP] Aiuto! Non riesco a richiamare una variabile PHP 2
V [PHP] Non riesco a trovare errore PHP 25
SimooRu [PHP] Non riesco a far passare i dati con i form PHP 4
elpirata [HTML] Non riesco a centrare menu orizzontale HTML e CSS 5
CristianB72 Non riesco a connettermi al DB tramite PDO Database 10
G Non riesco a spostare un cerchio fatto con tracciati in photoshop Photoshop 1
gandalf1959 IPN Listener di Paypal, non riesco a registrare utente nel mio DB PHP 14
G Non riesco a colorare una campitura con lo strumento penna Photoshop 1
P non riesco a visualizzare i dati dopo aver inserto l'id PHP 36
P Non riesco a capire dove sta l'errore e perchè non mi memorizza il contenuto PHP 14
marino51 non riesco a caricare un allegato percgè non riesco a ridimensionare la finestra Supporto Mr.Webmaster 0
napuleone XP non riesco a cambiare le impostazioni delle cartelle Windows e Software 2
E non riesco a installare git su mac Mac e Software 0
Shyson Non riesco a modificare i commenti del visitatori Social Media Marketing 0
T Non riesco ad installare il composer su xampp Apache 0
A Non riesco a fare backup sito perchè Filezilla non scarica tutti i file! Web Server 4
P non riesco a registrarmi a MrW.Tools.it Comunicazioni dallo Staff 4
neo996sps Non riesco a fare un parse XML con PHP PHP 1
M non riesco a configurare Apache 0
S non riesco a capire la struttura di questo sito in PHP PHP 0
S [RISOLTO]aiuto, non riesco afar funzionare il camp odi ricerca per un DB con PHP PHP 5
Monital variabili nei link, non riesco a passarle PHP 8
L Non riesco a far funzionare un plugin (probabilmente ho sbagliato qualcosa nel richiamare lo script) jQuery 10
S non riesco ad eliminare dei caratteri in PHP - Excel PHP 10
A Html e css non riesco a capire l'errore HTML e CSS 13
C Non riesco ad attivare il sito in locale (nè in rete) - PHP / EasyPHP PHP 4
P Befana che vola non riesco a trovarla Javascript 6
A Non riesco a visualizzare il file PHP 2

Discussioni simili