Avatar billede nyst Nybegynder
08. oktober 2009 - 11:59 Der er 14 kommentarer og
1 løsning

Tip en ven php4 kontra php5

Hi, jeg har et problem med en velfungerende kode til php4, som nu ikke virker i php5.

fil 1

<?php echo '<a href="../design/send_test.php?url='.$_SERVER['REQUEST_URI'].'">Tip en bekendt</a>'; ?>

fil 2

<?php
if ($to_email && $message && $subject) {
$to = "\"$to_name\" <$to_email>";
$from = "\"$from_name\" <$from_email>";
$to = str_replace("\\'", "'", $to);
$from = str_replace("\\'", "'", $from);$subject = str_replace("\\'", "'", $subject);
$message = str_replace("\\'", "'", $message);
mail($to, $subject, $message, "From: $from\nX-Mailer: my@email.dk");
    echo "<br>... er nu sendt.<br><br>";
    echo "<a href=# onclick=history.go(-2);>&raquo; Retur forrige side</a><br><br>";
}
?>
&nbsp;&nbsp;Du sender dette link:<br>&nbsp;&nbsp;<?php echo ("http://$_SERVER[HTTP_HOST]$_GET[url]"); ?>
<br>&nbsp;&nbsp;med denne formular.
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
&nbsp;&nbsp;Til:<br>&nbsp;&nbsp;<input type=text size="11" style="width:150px" maxlength="128" name=to_name><br>
&nbsp;&nbsp;Til e-mail:<br>&nbsp;&nbsp;<input type=text size="11" style="width:150px" maxlength="128" name=to_email><br>
&nbsp;&nbsp;Fra:<br>&nbsp;&nbsp;<input type=text size="11" style="width:150px" maxlength="128" name=from_name><br>
&nbsp;&nbsp;Fra e-mail:<br>&nbsp;&nbsp;<input type=text size="11" style="width:150px" maxlength="128" name=from_email>
<input type=hidden name=subject value='Tip fra en bekendt.'>
<input type=hidden name=message value='Denne side vil sikkert interessere dig: <?php echo ("http://$_SERVER[HTTP_HOST]$_GET[url]"); ?>'><br>
&nbsp;&nbsp;<input type=submit value=Send style="font-size : 9px;">
</form>

----------------------------------

kan nogen hjælpe med hvad der kan være galt  ???
Avatar billede erikjacobsen Ekspert
08. oktober 2009 - 12:54 #1
Hvor kommer fx  $to_email fra?

I moderne installationer af PHP skal det hentes fra enten

  $_GET['to_email']

eller

  $_POST['to_email'];

afhængig af om <form>-en er GET eller POST.

I dit tilfælde kan du formentlig reparere på det med en

    $to_email=$_GET['to_email']

først i scriptet, og tilsvarende for de andre felter.

Men gør dig den tjeneste at følge op på den nyere udvikling omkring PHP.
Avatar billede nyst Nybegynder
08. oktober 2009 - 13:22 #2
Hi tak for du kigger på mit problem,

$to_email er feltet i <form> name=to_email - den email der skal sendes til.

I stedet for at repare vil jeg foretrække at opdatere scriptet.

Så prøver med POST osv.

:-)
Avatar billede nyst Nybegynder
08. oktober 2009 - 13:38 #3
Hej Erik,

har sat denne ind:

<?php
if ($_POST['to_email'] && $_POST['message'] && $_POST['subject']) {
mail($_POST['to_email'], $_POST['subject'], $_POST['message'], "From: $from\nX-Mailer: my@mail.dk");
echo "<br>... er nu sendt.<br><br>";
echo "<a href=# onclick=history.go(-2);>&raquo; Retur forrige side</a><br><br>";
}
?>

og ændret <form>-en til POST

Nu kommer den frem med der er sendt, men jeg modtager IKKE mailen.

Kan du se hvor problemt ligger?
Avatar billede nyst Nybegynder
08. oktober 2009 - 15:08 #4
Hej igen Erik,

nu har jeg fået denne til at sende fra PHP 5:

<?php
if ($_POST['to_email'] && $_POST['message'] && $_POST['subject']) {   
mail($_POST['to_email'], $_POST['subject'], $_POST['message']);
echo "<br />... er nu sendt.<br /><br />";
echo "<a href=# onclick=history.go(-2);>&raquo; Retur forrige side</a><br /><br />";
}
?>

men jeg mangler bare at få indsat fra og email i stedet for den bruger serverdata.

Må være headers der volder problemer.

Kan du hjælpe med det sidste?
Avatar billede dkfire Nybegynder
08. oktober 2009 - 15:58 #5
Til din kommentar #3:
Hvor får du $from fra ??
Avatar billede nyst Nybegynder
08. oktober 2009 - 16:33 #6
Hi, den kommer fra denne

<?php
if ($_POST['to_email'] && $_POST['message'] && $_POST['subject']) {
    $from = "\"$from_name\" <$from_email>";
mail($_POST['to_email'], $_POST['subject'], $_POST['message'], "From: $from\nX-Mailer: my@mail.dk");
echo "<br />... er nu sendt.<br /><br />";
echo "<a href=# onclick=history.go(-2);>&raquo; Retur forrige side</a><br /><br />";
}
?>

men den virker kun i php4 og ikke 5.

Sletter man $from osv så kan den virke i 5 men så kan jeg ikke få header fra navn og fra email frem.

:-)
Avatar billede dkfire Nybegynder
08. oktober 2009 - 16:43 #7
Og hvor kommer så $from_name og $from_email fra ?
Avatar billede nyst Nybegynder
08. oktober 2009 - 17:33 #8
De kommer fra <form> i mit start? :-)
Avatar billede erikjacobsen Ekspert
08. oktober 2009 - 18:06 #9
Så skal du jo bruge $_POST['from_email'] for at få værdien.
Avatar billede dkfire Nybegynder
08. oktober 2009 - 22:43 #10
Og med det script vil jeg kunne spamme hvem jeg end vil med 100 mails elelr mere?
Avatar billede nyst Nybegynder
09. oktober 2009 - 10:20 #11
Hej igen,
jeg har nu fået denne til at virke i PHP5:

<?php
if ($_POST['to_email'] && $_POST['message'] && $_POST['subject']) {
$from_name=$_POST['from_name'];
$from_email=$_POST['from_email'];
$headers = "From: $from_name<$from_email>\nReply-to: $from_name<$from_email>";   
mail($_POST['to_email'], $_POST['subject'], $_POST['message'], $headers);
echo "<br />... er nu sendt.<br /><br />";
echo "<a href=# onclick=history.go(-2);>&raquo; Retur forrige side</a><br /><br />";
}
?>

men har et par spørgsmål udover spam.

1. når mailen modtages i Outlook står Fra: korrekt med navn og email men Til: viser kun email - kan man få den til at vise navn også?

2. er ovennævnte kode nu 'moderne' PHP kode eller skal den yderlige tilpasses.

:-)
Avatar billede nyst Nybegynder
09. oktober 2009 - 10:21 #12
giver gerne flere point :-)

hvis jeg får instruktion i også det :-)
Avatar billede nyst Nybegynder
13. oktober 2009 - 10:57 #13
Nogen der ved hvordan man undgår den fremsendes som pishing?
Avatar billede nyst Nybegynder
13. oktober 2009 - 11:00 #14
orry Phishing
Avatar billede nyst Nybegynder
05. januar 2010 - 12:26 #15
lukker denne da ingen respons :-)
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