Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di ada50
    Registrato dal
    Aug 2009
    Messaggi
    27
    Ok provato non mi dà più errore, mi invia i dati al db ed invia la mail con il link alla pagina del download ma non genera la password.

    Non so se è la riga riguardante la password del DB ad essere impostata male la mia è così:

    varchar(255) latin1_swedish_ci Sì NULL


    Mentre quella della validità è:

    validità int(1) Sì NULL

    Ho provato anche: validità varchar (255) latin1_swedish_ci Sì NULL
    ada50

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    23
    Non viene generata o non viene inserita nel DB? Per verificare, inserisci un echo nello script dove viene generata la password, se l'echo visualizza la password, il problema sta nell'invio al DB, quindi controlla che il nome della variabile che contiene la password casuale sia uguale anche nella query per l'inserimento nel DB... o comunque controlla se ci sono errori di scrittura. Se hai problemi posta il codice... :-)

    ah, un ultima cosa, modifica i valori min e max del rand():

    codice:
    <?php
    
    $pws_down   = rand(10000,99999);
    
    ?>
    così almeno ottieni una password a 5 cifre
    Se sei padrone di te stesso sei padrone
    del mondo...

  3. #3
    Utente di HTML.it L'avatar di ada50
    Registrato dal
    Aug 2009
    Messaggi
    27

    Codice

    Ciao cerco di rispondere al meglio alle tue domande:

    • la password non viene generata, non viene inserita nel db, non compare nella email generata dallo script dove compare invece il link
    • Riguardo l'inserimento dell'echo nello script ammetto la mia ignoranza di php ne so veramente poco, ho comunque ovviato, e non so se è un test valido, ho caricando lo script nella root del sito e ho puntato il file, mi dà "errore (generico)" come risultato.
    • controllando script e query per quanto ne posso capire mi sembra che le variabili siano le stesse (forse mi sbaglio e per questo ti posto i codici:


    Funzione rand

    Codice PHP:
    <?php
     $email
    $_POST['email']; //recupero l'email inserita nel form d' iscrizione
     
    $pws_down  rand(10000,99999); // genero una password casuale tramite la funzione rand()
     
     // mi connetto al DB
     
     
    $connessione mysql_connect("host","utente","password");
     
    mysql_select_db("db");
     
     
    // Inserisco nella tabella degli iscritti l'email, la password e imposto la sua validità a 1
     
    $inserimento_dati mysql_query ("INSERT INTO utenti_news (nome,email,password,validità) VALUES ('$pws_down','1')");
     
     
    // Invio una email contenente la password usa e getta
     
    $destinatario "$email";
     
    $oggetto "Password download e-book";
     
    $messaggio"<p>La sua password per accedere al download è: $pws_down</p>";
     
    $messaggio"<p>Link per il download: <a href='http://miosito/download.php'>Download</a></p>";
     
    $mittente "Pamela <io@io.net>";
     
    $html "MIME-Version: 1.0\r\n";
     
    $html .= "Content-type: text/html; charset=iso-8859-1\r\n";
     
     if(@
    mail($destinatario$oggetto$messaggio$html "From: $mittente")) {
     
     echo 
    "Email Inviata";
     
     } else {
      
      echo 
    "Errore!";
      }
      
    mysql_close($db);
      
    //chiudo la connessione al db
      
     //reindirizzo l'utente a una pagina di ringraziamento, dove gli comunico che gli è stata inviata una email contenete la password e il link per il download.
     
    header("Location: ../pagina_ringraziamento.php");
      
    ?>
    Query

    Codice PHP:
    <?php
    $pws_down 
    $_POST['pws_down']; //recupero la password inserita nel form
    // mi connetto al DB
    $connessione mysql_connect("host","user","password");
    mysql_select_db("db");
    //controllo se nella tabella utenti_newsletter esiste la password inserita dall'utente e che sia ancora attiva (validità = 1)
    $query_controllo  mysql_query("SELECT * FROM utenti_news WHERE password = '$pws_down' AND validità ='1' ");
    //controllo se i risultati ottenuti dalla query sono maggiori di 0
    $conteggio_record  mysql_num_rows($query_controllo);
    //Se i risultati sono maggiori di 0, modifico il valore del campo validità da 1 a 0 rendendo non più valida e reindirizzo l'utente alla pagina del download
    if ($conteggio_record  0){
     
    $modifica_validità mysql_query("UPDATE utenti_newsletter SET validità = '0' WHERE password = '$pws_down' ");
    echo 
    '<script language=javascript>document.location.href = "http://miosito.net/cartella/file.pdf";</script> ';
    } else {
     
    // in caso contrario, reindirizzo l'utente a una pagina di errore
    echo '<script language=javascript>document.location.href ="http://miosito.net/news_eror_download.php";</script> ';}
    ?>
    Per darti un'informazione completa i file li ho gestiti in notepad++ usando come formato carattere "UTF8" chiaramente l'estensione dei file è php.

    Ultima informazione riguarda la pagina del form d'iscrizione alla news letter, ho provato ad utilizzare il metodo post come tu mi avevi consigliato, da quello che so questo metodo utilizza l'indirizzo email dell'iscritto per l'invio, saprai sicuramente che il sistema non piace a Google a agli altri motori, infatti usando questo metodo non mi arrivava neanche l'email.


    Ho dirottato sullo script che ho postato qualche post fa che utilizza il metodo "built in php" che utilizza la mia casella email per gestire tutto. Il tuo script l'ho inserito facendo le prove sia dopo il mio che prima ma il risultato è quello che ti ho riportato all'inizio.


    Spero di averti fornito tutte le info del caso

    Ciao e grazie
    ada50

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    23
    L'errore è nella query che esegui per inviare i dati dell'iscritto al DB (compreso la password casuale):

    codice:
    // Inserisco nella tabella degli iscritti l'email, la password e imposto la sua validità a 1
     $inserimento_dati = mysql_query ("INSERT INTO utenti_news (nome,email,password,validità) VALUES ('$pws_down','1')");
    la query è scorretta, perchè indichi che devi inserire 4 valori in 4 campi (nome,email,password,validità), ma gli passi solo due valori($pws_down e 1)

    I campi devono combaciare con i valori, se per esempio vuoi inserire solo l'email,la password e la validità devi fare così:

    codice:
    $inserimento_dati = mysql_query ("INSERT INTO tua_tabella (email,password,validità) VALUES ('$email','$pws_down','1')");
    Se invece vuoi inserire solo password e la validità:

    codice:
    $inserimento_dati = mysql_query ("INSERT INTO tua_tabella (password,validità) VALUES ('$pws_down','1')");
    Per quanto riguarda il form d'iscrizione, ti confesso che non sono informato sul fatto che a google il sistema non gli è simpatico.

    prova correggendo la query e poi fammi sapere
    Se sei padrone di te stesso sei padrone
    del mondo...

  5. #5
    Utente di HTML.it L'avatar di ada50
    Registrato dal
    Aug 2009
    Messaggi
    27
    Scusami ma mi sono incasinato e credo che sia meglio che rifaccia tutto daccapo, dopo aver risolto un problema che ho con il computer, mi si è installato qualcosa che non riesco ad individuare e quindi a disinstallare neanche applicando le procedure suggerite da Microsoft.
    Mi rifaccio vivo appena pronto
    ciao
    ada50

  6. #6
    Utente di HTML.it L'avatar di ada50
    Registrato dal
    Aug 2009
    Messaggi
    27
    @Dr.chm, ciao e mi scuso per il notevole ritardo, sono riuscito a risolvere il problema del pc mi si era installato Wjam che mi ha complicato non poco la vita, poi ci si è messo anche Windows che ha i server degli aggiornamenti con problemi ancora adesso, infatti sto lavorando con Win7 installazione pulita con il service.pack1 scaricato manualmente, il computer è un po' lento ma almeno è pulito.
    Ho provato il tuo script e funziona per quelli che passano dalla pagina d'iscrizione alla newsletter, mi resta il problema di Google che lo dà ancora come collegamento nei risultati della ricerca seppur come "Untitled", chi clicca su arriva al file tranquillamente. Ho messo il disallow per il file nel robot.tex una ventina di giorni fa, credo che dovrò aspettare ancora qualche giorno perché sparisca dalla ricerca, se non sbaglio Google ci mette trenta giorni per prendere in considerazione la variazione.


    Per evitare questo in futuro sto pensando di creare una cartella con inserito .htaccess usando la password per accedere alla cartella e non al file.
    Grazie per l'assistenza
    ada50

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    23
    Ciao, tranquillo!
    Quello di creare una cartella con un il file .htaccess è una buona idea. Ti conviene farlo subito, così nel frattempo che google prende in considerazione la variazione del file robot.txt, tu stai abbastanza tranquillo. Comunque, una volta creato il tutto, ti conviene testare il link del download... non vorrei che il file venga bloccato anche agli utenti che si iscrivono alla newsletter.

    Ciaoo
    Se sei padrone di te stesso sei padrone
    del mondo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.