Visualizzazione risultati 1 fino 8 di 8

Discussione: MAILING LIST PHP

  1. #1
    Guest

    Predefinito

    Ho una mailing list in php sul server, solo che, i messaggi che invio hanno
    sempre un errore, se io inserisco l'apostrofo, mi da quest'errore

    Esempio di scritto sul server:

    L'ologramma

    diventa

    L\'ologramma


    Ma com'è possibile? Dov'è l'errore?

    La mailing è composta così:

    un file php da dove posso mandare i messaggi
    un file php che processa le richieste di cancellazione e registrazione
    un file php di configurazione
    un file .txt di lista registrati e i file html di riferimento per
    cancellazione, registrazione, etc.

    Mi hanno detto di inserire le stripslashes ma dove vanno?
    mi hanno detto che bisogna metterle nella stringa che processa l'invio... non me ne intendo molto...

    Mi aiutate?
    :?

    Vi allego il file:

    <?
    if (!$PHP_AUTH_USER || !$PHP_AUTH_PW)
    {
    header('WWW-Authenticate: Basic realm="Sopravvoliamo Online - Gestione Mailing List "');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Authorization Required.';
    exit;
    }
    else
    {
    $tu = strtolower($PHP_AUTH_USER);
    $pu = strtolower($PHP_AUTH_PW);
    include("config.php");
    if ($tu == strtolower($adminusername) && $pu == strtolower($adminpassword))
    {
    $fd = fopen ($listfile, "r");
    $contents = fread ($fd, filesize ($listfile));
    fclose ($fd);
    $entries = explode(",",$contents);
    for($i=0;$i<count($entries);$i++)
    {
    if ($entries[$i] != "")
    $choices .= "<OPTION VALUE=\"$entries[$i]\"> ".$entries[$i]."\n";
    }

    if ($cmd != "send")
    {
    $output = "
    <form action=\"?cmd=send\" method=\"post\">
    <table align=\"left\">
    <tr>
    <td>
    <SELECT MULTIPLE SIZE=5 NAME=sendto[]>
    <OPTION VALUE=\"A tutti\" selected>Invia a tutti
    $choices
    </select>
    </td>
    </tr>
    </table>
    <table align=\"center\">
    <tr>
    <td nowrap>Oggetto:</td><td><input type=\"text\" size=\"30\" name=\"subject\"></td>
    </tr>
    <tr>
    <td nowrap valign=\"top\">Testo:</td><td><textarea name=\"body\" rows=\"8\" cols=\"50\"></textarea></td>
    </tr>
    <tr>
    <td></td>
    <td><input type=\"checkbox\" name=\"useheader\" value=\"yes\"> Includi l'Header <input type=\"checkbox\" name=\"usefooter\" value=\"yes\"> Includi il Footer</td>
    </tr>
    <tr>
    <td> </td>
    </tr>
    <tr>
    <td></td>
    <td><input type=\"submit\" value=\"Invia!\"></td>
    </tr>
    <tr>
    <td> </td>
    </tr>
    <tr>
    <td> </td>
    <td>
    Gestione Mailing List v 1.0</td>
    <td>
    webmaster@sopravvoliamo.cjb.net</td>
    </tr>
    </table>
    ";
    }else
    {
    for ($i=0;$i<count($sendto);$i++)
    {
    echo "".$sendto[$i]." <br>";
    }

    $footerd = fopen ($footerfile, "r");
    $thefooter = fread ($footerd, filesize ($footerfile));
    fclose ($footerd);

    $headerd = fopen ($headerfile, "r");
    $theheader = fread ($headerd, filesize ($headerfile));
    fclose ($headerd);

    if ($useheader == "yes")
    $message .= "".$theheader."\n\n";

    $message .= "".$body."\n\n";

    if ($usefooter == "yes")
    $message .= "".$thefooter."";

    if ($sendto[0] == "A tutti")
    {
    for($i=0;$i<count($entries);$i++)
    {
    mail($entries[$i], $subject, $message,
    "From: ".$fromemail."");
    }
    }
    else
    {
    for($i=0;$i<count($sendto);$i++)
    {
    mail($sendto[$i], $subject, $message,
    "From: ".$fromemail."");
    }
    }
    $output = "Il messaggio è stato inviato!";
    }
    echo $output;


    }
    else
    {
    echo " <html><body>Il login o la password che hai inserito non sono validi. Per informazioni: webmaster@sopravvoliamo.cjb.net</body></html> ";
    }
    }

  2. #2
    Guest

    Predefinito

    le "\" sono caratteri speciali per fare in modo che i caratteri che seguono tale simbolo siano interpretati "letteralmente" dal sistema. Un caso classico è appunto l'apice. Per evitare che compaiano nel testo del messaggio (dovrebbero comparire anche nel caso di virgolette " ) puoi usare la funzione stripslashes. In pratica, prima che nel codice venga richiamata la funzione mail() devi inserire la riga:
    $message = stripslashes($message);

    Nel caso non dovesse funzionare potresti anche fare:
    $message = str_replace( "//'", "", $message)

    Lo so, sembra che non abbia senso, eppure è così. Se controlli ne converrai :o

  3. #3
    Guest

    Predefinito

    nn ci capisco niente, lo puoi inserire nel file php che ho allegato?

    Grazie

  4. #4
    Guest

    Predefinito

    scusa, adesso ho fatto l'edit della citazione, ho evidenziato una riga, è lì che devo sostituire la stringa che mi hai dato tu?

    @ndrea

  5. #5
    Guest

    Predefinito

    http://php4all.altervista.org

    vieni a trovarci sul nostro forum e ti aiuteremo ^_^

    hihi viva la pubblicità!

  6. #6
    Guest

    Predefinito

    Direi che il posto migliore è la riga dopo a:

    if ($usefooter == "yes")
    $message .= "".$thefooter."";


    ovvero un attimo prima di iniziare ad inviare i messaggi con la funzione mail() :o

  7. #7
    Guest

    Predefinito

    Ah non va al postoi di $message .= "".$body."\n\n";

  8. #8
    Guest

    Predefinito

    FUNZIOOOOOOOOOOOOOOOOOONNNNAAAAAAAAAAAAAAAAAAAAAA!

    GRAZIE RAGAZZI

    @NDREA

Regole di scrittura

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