Visualizzazione risultati 1 fino 14 di 14

Discussione: Problema Con Script Newsletter (NO AV)

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Question Problema Con Script Newsletter (NO AV)

    Ciao ho uno script per la newsletter che quando uno si iscrive funziona ma quando uno si vuole cancellare viene dato il messaggio che l'utente è stato eliminato dal database della newsletter (txt) ma invece poi se io vado a controllare il database manualmente l'utente cancellato ancora si trova, inoltre quando io invio le mail sembrano che non giungano agli utenti in lista...questo lo so perchè mi sono autoiscritto alla mia newsletter.

    Attendo Risposta Grazie
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92
    Attendo Risposta Grazie
    E secondo te cosa dovremmo risponderti?
    Senza informazioni utili, tipo lo script che usi, come possiamo aiutarti?


    Ciao!

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Giusto scusami, credo che la pagina interessata sia questa:
    Codice PHP:
    <?
    error_reporting
    (0);
    include(
    "impostazioni.php");

    function
    checkmail ($email)
    {
    global
    $listfile;
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);

    if (@
    stristr($contents,$email))
    $valid = "invalid";
    if (
    eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $email) && !isset($valid))
    $valid = "valid";
    else
    $valid = "invalid";

    return
    $valid;
    }

    if (
    $action == "subscribe" && isset($email))
    {
    $valid = checkmail($email);
    if (
    $valid == "valid")
    {
    $fp = fopen($listfile, 'a+');
    flock($fp,2);
    fwrite($fp,"".strtolower($email).",");
    fclose($fp);
    header ("Location: ".$welcome."");
    exit;

    }
    else {
    header ("Location: ".$error."");
    exit;
    }
    }
    elseif (
    $action == "unsubscribe" && isset($email))
    {
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
    $allpeople = "";
    $entries = explode(",",$contents);
    for(
    $i=0;$i<count($entries);$i++)
    {
    if (
    strtolower($email) == strtolower($entries[$i]))
    $found = "yes";
    elseif (
    $entries[$i] != "")
    $allpeople .= "".$entries[$i].",";
    }
    if (
    $found == "yes")
    {
    $fp = fopen($listfile, 'w');
    fwrite($fp,$allpeople);
    fclose($fp);
    }
    header ("Location: ".$goodbye."");
    exit;

    }
    else
    header ("Location: ".$error."");
    exit;
    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Guest

    Predefinito

    Innanzitutto togli querl error_reporting che non ti fa visualizzare nessun tipo di errore di sintassi.

    dopo questa stringa:
    elseif ($action == "unsubscribe" && isset($email))
    {

    aggiungi:

    echo "$email - $listfile";

    Assicurati anche che $email sia passata in maniera corretta (sospetto che con l'auto_globals ad off, ciò non avvenga)


    Ciaoooo!!!!!

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Cioè non ho capito il codice sarebbe cosi?
    Codice PHP:
    <?
    include("impostazioni.php");

    function
    checkmail ($email)
    {
    global
    $listfile;
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);

    if (@
    stristr($contents,$email))
    $valid = "invalid";
    if (
    eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $email) && !isset($valid))
    $valid = "valid";
    else
    $valid = "invalid";

    return
    $valid;
    }

    if (
    $action == "subscribe" && isset($email))
    {
    $valid = checkmail($email);
    if (
    $valid == "valid")
    {
    $fp = fopen($listfile, 'a+');
    flock($fp,2);
    fwrite($fp,"".strtolower($email).",");
    fclose($fp);
    header ("Location: ".$welcome."");
    exit;

    }
    else {
    header ("Location: ".$error."");
    exit;
    }
    }
    elseif (
    $action == "unsubscribe" && isset($email))
    echo
    "$email - $listfile";
    {
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
    $allpeople = "";
    $entries = explode(",",$contents);
    for(
    $i=0;$i<count($entries);$i++)
    {
    if (
    strtolower($email) == strtolower($entries[$i]))
    $found = "yes";
    elseif (
    $entries[$i] != "")
    $allpeople .= "".$entries[$i].",";
    }
    if (
    $found == "yes")
    {
    $fp = fopen($listfile, 'w');
    fwrite($fp,$allpeople);
    fclose($fp);
    }
    header ("Location: ".$goodbye."");
    exit;

    }
    else
    header ("Location: ".$error."");
    exit;
    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    Guest

    Predefinito

    No, dewvi inserire quella stringa che ho scritto dopo la parentesi graffa di apertura dell'else.
    Poi, mi son dimenticato di dirti, togli tutti gli header momentaneamente (commentali con // )

    Stiamo facendo un debug per capire cosa non va.


    Ciaooo!!

  7. #7
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Scusami ma non ho capito, io non riesco a cancellare gli utenti ma non riesco nemmeno a far giungere le mail agli utenti. Perchè?
    Apprezzi l'aiuto? Offrimi un caffè!

  8. #8
    Guest

    Predefinito

    Per la spedizione di e-mail via php, vi sono alcuni limiti, fai qualche ricerca sul forum.

    Per il resto, hai fatto come ti ho detto?
    Risultato?
    Posta il codice modificato.


    Ciao!

  9. #9
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Codice PHP:
    <?
    include("impostazioni.php");

    function
    checkmail ($email)
    {
    global
    $listfile;
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);

    if (@
    stristr($contents,$email))
    $valid = "invalid";
    if (
    eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $email) && !isset($valid))
    $valid = "valid";
    else
    $valid = "invalid";

    return
    $valid;
    }

    if (
    $action == "subscribe" && isset($email))
    {
    $valid = checkmail($email);
    if (
    $valid == "valid")
    {
    $fp = fopen($listfile, 'a+');
    flock($fp,2);
    fwrite($fp,"".strtolower($email).",");
    fclose($fp);
    ///header ("Location: ".$welcome."");
    exit;

    }
    else {
    ///header ("Location: ".$error."");
    exit;
    }
    }
    elseif (
    $action == "unsubscribe" && isset($email))
    { echo
    "$email - $listfile";
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
    $allpeople = "";
    $entries = explode(",",$contents);
    for(
    $i=0;$i<count($entries);$i++)
    {
    if (
    strtolower($email) == strtolower($entries[$i]))
    $found = "yes";
    elseif (
    $entries[$i] != "")
    $allpeople .= "".$entries[$i].",";
    }
    if (
    $found == "yes")
    {
    $fp = fopen($listfile, 'w');
    fwrite($fp,$allpeople);
    fclose($fp);
    }
    ///header ("Location: ".$goodbye."");
    exit;

    }
    else
    ///header ("Location: ".$error."");
    exit;
    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  10. #10
    Guest

    Predefinito

    Quando tenti di disiscrivere un indirizzo cosa visualizzi?
    Se non visualizzi nulla vuol dire che qualche variabile non è valorizzata come dovrebbe.

    Leggi il post #4


    Ciaoooo!!!

  11. #11
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Si ho letto il post#4 ma non capisco il fatto dell'l'auto_globals cosa dovrei fare?
    Comunque no non visualizzo errori mi dice che l'email è stata cancellata dal database (cosi l'ho chiamato io ma e un txt) dei contatti ma invece non è vero.
    Prima facevo si che il db.txt (dove risiedono i contatti) fosse pubblico ma ora l'ho protetto da .htaccess per motivi di privacy ma il risultato e lo stesso!
    Apprezzi l'aiuto? Offrimi un caffè!

  12. #12
    Guest

    Predefinito

    Il fatto dell'auto_globals vuol dire che, a seconda di come invii i dati, devi usare $_GET['nomevar'] o $_POST['nomevar'] anzichè $nomevar.

    Se i dati li passi via GET (quindi tramite link o form con method=get) usi la prima, altrimenti la seconda.

    Per testare, avendo fatto queste modifiche, sostituisci echo "$email - $listfile"; con echo $_POST['email']." - ".$_POST['listfile']; (ovviamente metti GET se usi get).


    Ciaoooo!!!!

  13. #13
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Cosi?
    Codice PHP:
    <?
    include("impostazioni.php");

    function
    checkmail ($email)
    {
    global
    $listfile;
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);

    if (@
    stristr($contents,$email))
    $valid = "invalid";
    if (
    eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $email) && !isset($valid))
    $valid = "valid";
    else
    $valid = "invalid";

    return
    $valid;
    }

    if (
    $action == "subscribe" && isset($email))
    {
    $valid = checkmail($email);
    if (
    $valid == "valid")
    {
    $fp = fopen($listfile, 'a+');
    flock($fp,2);
    fwrite($fp,"".strtolower($email).",");
    fclose($fp);
    ///header ("Location: ".$welcome."");
    exit;

    }
    else {
    ///header ("Location: ".$error."");
    exit;
    }
    }
    elseif (
    $action == "unsubscribe" && isset($email))
    {
    $_POST['email']." - ".$_POST['listfile'];
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
    $allpeople = "";
    $entries = explode(",",$contents);
    for(
    $i=0;$i<count($entries);$i++)
    {
    if (
    strtolower($email) == strtolower($entries[$i]))
    $found = "yes";
    elseif (
    $entries[$i] != "")
    $allpeople .= "".$entries[$i].",";
    }
    if (
    $found == "yes")
    {
    $fp = fopen($listfile, 'w');
    fwrite($fp,$allpeople);
    fclose($fp);
    }
    ///header ("Location: ".$goodbye."");
    exit;

    }
    else
    ///header ("Location: ".$error."");
    exit;
    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  14. #14
    Ospite Guest

    Predefinito

    Occhio,che non hai sostituito tutte le occorrenze
    Per esempio:
    Codice PHP:
    elseif ($action == "unsubscribe" && isset($email))
    va trasformato in
    Codice PHP:
    elseif ($_GET['action'] == "unsubscribe" && isset($_GET['email']))
    se passi i dati tramite GET o in:
    Codice PHP:
    elseif ($_POST['action'] == "unsubscribe" && isset($_POST['email']))
    se il metodo utilizzato è POST.

    ricontrolla lo script riga per riga

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •