Avatar billede nomisweb Nybegynder
10. oktober 2007 - 23:28 Der er 8 kommentarer

mail() stripslahes() virker ikke?!

Hej Jeg troede jeg havde løst mit mail() problem, ved at tilføje stripslashes(), men der er noget pudsigt som sker!
Jeg bruger tinyMCE editor til at lave links i min tekst i mailen, hvis jeg skriver linket ind, virker det ikke når jeg har sent min mail, menhvis jeg sætter den ind (copy/paste) virker det fint!?
Er det ikke lidt mærkeligt var?

Min kode ser sålede ud:
<?
        $nyhedsbrev=mysql_query("select * from nyhedsbrev order by id");
        while($nyhedsbrev_data=mysql_fetch_row($nyhedsbrev))
        {
            $emails .= "$nyhedsbrev_data[1], ";
        }

$name =$_POST['navn'];
$message =$_POST['message'];
$sendtil = $emails;
$subject= $_POST['subject'];
$frommail = "mail@mail.dk";
$sendto = "mail@mail.dk";

if (isset($_POST['message']))
    {
    $message = stripslashes($_POST['message']);
    } else {
    $message='';
    }
   
if (isset($_POST['send']))
    {
    $send = $_POST['send'];
    } else {
    $send = false;
    }

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";   
$headers .= 'From: '. $frommail . "\r\n";
$headers .= 'Bcc: '.$sendtil."\r\n";
?>

<table>
<form method="post" action="<?php echo "$PHP_SELF";?>">
<input type="hidden" name="send" value="1">
<tr><td colspan="2" id="overskriftvin">Send en nyhedsmail<br></td></tr>
<tr><td>Emne</td><td><input type="text" name="subject" size="60"></td></tr>
<tr><td>Besked</td><td><textarea name="message" id="message" cols="63" rows="15"><br><hr><br>Ønsker du ikke længere at modtage dette nyhedsbrev kan du klikke på dette <a href="http://www.minside.dk/vin/nyhedsbrev.php" target="_blank">link</a> og afmelde dig</textarea></td></tr>
<tr><td></td><td><input type="submit" value="Send"></td><tr>
</form>

</table>

<?php
if ($send) {
mail($sendto, $subject, $message, $headers);
if ($insertMail=mysql_query("INSERT INTO nyhedsmail (dato, overskrift, text) VALUES (NOW(), '$subject', '$message')")){
echo "Mail er blevet sendt og gemt";}
 
}


Hvis der er gode forslag til ændringer, modtages de også gerne!

tak
Avatar billede zurekk Nybegynder
11. oktober 2007 - 00:50 #1
Hvad er det helt præcist der ikke virker =/?
Hvorfor virker linket ikke? Splittes den, eller?

Stripslashes fjerner jo bare /'s
Avatar billede jakobdo Ekspert
11. oktober 2007 - 08:10 #2
Jeg mener at tinyMCE levere koden i htmlentites, er det ikke korrekt?
Så hvis du prøve at smide teksten via:

$new_message = html_entity_decode($message);
Avatar billede nomisweb Nybegynder
11. oktober 2007 - 09:00 #3
Zurekk > linksne kommer til at få lidt ekstra fyld: x-msg://11/%22http://www.minside.dk/vin/vinrejse.php/%22
Men igår da det ikke virkede så jeg at der var ekstra \ og de blir så fjernet med stripslashes så vidt jeg kan forstå.

jakobdo > Jeg skal ikke kunne sige om det levers i htmlentities, men du plejer at have ret så helt sikkert! Jeg ved ikke rigtig hvad htmlentities er, men det skal der lige læses op på!

Det virker umiddelbart som om det hjalp, men tester lidt videre med forskellige ting bare for at være sikker!
Avatar billede nomisweb Nybegynder
11. oktober 2007 - 09:56 #4
Hehe...det er lidt morsomt det her. Hver gang jeg ændre en ting så er der en anden der ikke virker...
Med html_entity_decode virkede det at skrive linket ind, men nu kan jeg ikke bruge paste (ctrl+v).
Det kan da ikke være rigtigt det skal være på den måde?

andre forelag?
Avatar billede majbom Novice
11. oktober 2007 - 11:54 #5
jeg har et site hvor jeg bruger tinyMCE og stripslashes inden mailen bliver sendt, og det virker fint, hvis jeg skriver f.eks. http://www.exp.dk og hvis jeg kopierer linket fra browseren...

bruger du bare mail() til at sende med?

overvej evt. class'en phpmailer: http://phpmailer.sourceforge.net/
Avatar billede nomisweb Nybegynder
11. oktober 2007 - 13:53 #6
Splazz > ja bruger bare mail() til at sende med som du kan se ovenfor.

Det ser lidt uoverskueligt ud med phpmailer, men det kunne da være jeg skulle prøve det. Jeg kan vel ikke rigtig ændre i php.ini filen når sitet hostes hos one? skal jeg så bare smide: $mail->PluginDir = "/path/to/phpmailer/dir"; ind først et sted og så eller bare fyre resten af smøren ind?

Er der hvor du bruger tinyMCE og stripslashes sat meget anderledes op end mit ovenfor?
Avatar billede majbom Novice
11. oktober 2007 - 14:04 #7
det er rigtig nemt at bruge phpmailer
placer class.phpmailer.php et sted på din server, f.eks i roden eller en mappe hvor du har andre filer der bliver inkluderet på dine sider

brug en require("ditdir/class.phpmailer.php");

og brug så klassen, som der bliver beskrevet på forsiden af phpmailer.sourceforge.net
du kan godt undvære delen med smtp...
Avatar billede majbom Novice
21. januar 2009 - 10:07 #8
nomisweb?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester