Avatar billede nickern Nybegynder
17. december 2005 - 10:50 Der er 20 kommentarer og
1 løsning

Gider ikk sende som html

<?php
session_start();
require("db.php");

$fra = "nickern@sol.dk";

if ($_GET['mode'] == "admin" || $_POST['mode'] == "admin")
{
    if ($_SESSION['id'] == 1)
    {
        if ($overskrift || $indhold)
        {
            if ($overskrift && $indhold)
            {
                if (sizeof($til) > 0)
                {
                    $antal=0;
                    for ($i=0; $i<sizeof($til);$i++)
                    {                   
                        // -- headers --
                        $headers = 'From: "'.$fra.'" <'.$fra.'>
                        Reply-To: "'.$fra.'" <'.$fra.'>;
                        X-Mailer: PHP/'.phpversion().';
                        Content-Type:text/html; charset="iso-8859-1";';
                        // -- End headers --
                       
                        if (mail($til[$i],$overskrift,$indhold,$headers))
                        {
                            $antal++;
                            $_SESSION['udført'] = "<i>".$antal." Mail(s) blev sendt</i>";
                        }
                    }
                   
                    header("location: $PHP_SELF?mode=admin");
                    exit;
                }
                else
                {
                    $_SESSION['fejl'] = "Du har ikke valgt nogen at sende til";
                }
            }
            else
            {
                $_SESSION['fejl'] = "Alle felter blev ikke udfyldt";
            }
        }
        else
        {
            ?>
            <html>
            <head>
            <title>Nyhedsbrev</title>
<meta name="Generator" content="Stone's WebWriter 4">
            <script>
            var checkflag = "true";
   
            function check(field)
            {
                if (checkflag == "false")
                {
                    for (i = 0; i < field.length; i++)
                    {
                        field[i].checked = true;
                    }
                    checkflag = "true";
                    return "Fjern markeringer";
                }
                else
                {
                    for (i = 0; i < field.length; i++)
                    {
                        field[i].checked = false;
                    }
                    checkflag = "false";
                    return "Markér alt";
                }
            }
            </script>
            </head>
           
            <body bgcolor=#DBE3E6>

            <h2>Her kan du sende nyhedsbrev</h2>
            <?php
            $skriv = $_SESSION['udført'] != "" ? $_SESSION['udført'] : "";
            $_SESSION['udført'] == "";
            echo "<i>".$skriv."</i>";
            ?>
            <form action="<?php echo $PHP_SELF ?>" method="post">
            <input type="hidden" name="mode" value="admin">
           
            Overskrift: <input type="text" name="overskrift" value="<?php echo $overskrift; ?>"><br>
            <br>
            Besked:<br>
            <textarea name='indhold' cols='50' rows='5' wrap='virtual'><?php echo $indhold; ?></textarea><br>
            <br>
            Til:<br>
            <br>
            <?php
            $result = mysql_query("SELECT * FROM nyhedsbrev") or die (mysql_error());
            $antal = mysql_num_rows($result);
           
            if ($antal == 0)
            {
                echo "Der er ingen brugere";
            }
            else
            {
                echo "<table>\n";
               
                while ($myrow = mysql_fetch_array($result))
                {
                    echo "<tr>\n";
                    echo "    <td>\n";
                    echo         $myrow['email']."\n";
                    echo "    </td>\n";
                    echo "    <td>\n";
                    echo "        <input id='til' checked='checked' type='checkbox' name='til[]' value='".$myrow['email']."'>\n";
                    echo "    </td>\n";
                    echo "</tr>\n";
                }
                           
                echo "</table>\n";
            }
            ?>
            <br>
            <input type="button" value="Fjern markeringer" onclick="this.value=check(this.form.til);"> <input type='submit' value='Send'>
            </form>
           
            </body>
            </html>
            <?php
        }
    }
}
else
{
    if(isset($_POST["email"]))
    {
        $add_email = addslashes($_POST['email']);
        $add_IP = addslashes($REMOTE_ADDR);
       
        $sql = "INSERT INTO nyhedsbrev (email,tid,ip) VALUES ('".$add_email."',NOW(),'".$add_IP."')";
        mysql_query($sql) or die (mysql_error());
       
        $_SESSION['udført'] = "Email tilføjet";
        header("location: $PHP_SELF");
        exit;
    }
    ?>

Den ovenstående kode gider ikke udsende som html??? hvad er der galt med det?
Avatar billede jakobdo Ekspert
17. december 2005 - 10:53 #1
Ifølge www.php.net/mail

/* To send HTML mail, you can set the Content-type header. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
Avatar billede nickern Nybegynder
17. december 2005 - 11:03 #2
hvor vil du indsætte dette?
Avatar billede jakobdo Ekspert
17. december 2005 - 11:11 #3
I stedet for: Content-Type:text/html; charset="iso-8859-1

Nu spørger jeg måske lidt dumt, men aner du overhovedet noget om PHP?
Avatar billede nickern Nybegynder
17. december 2005 - 11:14 #4
ja lidt:S

men ikke meget... prøver mig sån lidt frem... og så nogen gange giver det ikke bid - like here...
Avatar billede nickern Nybegynder
17. december 2005 - 11:17 #5
Parse error: parse error, unexpected T_STRING in MY FILE on line 31 ?
Avatar billede jakobdo Ekspert
17. december 2005 - 11:22 #6
Prøv at ret din header START / END til:

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

$headers .= 'From: '.$fra.' <'.$fra.'>' . "\r\n";
$headers .= 'Reply-To: '.$fra.' <'.$fra.'>' . "\r\n";
// -- End headers --
Avatar billede nickern Nybegynder
17. december 2005 - 12:47 #7
modtager bare ikke mine mails?
Avatar billede jakobdo Ekspert
17. december 2005 - 12:48 #8
Din kode omkring afsendelse ser nu sådan ud:

if (sizeof($til) > 0)
                {
                    $antal=0;
                    for ($i=0; $i<sizeof($til);$i++)
                    {                 
                        // -- headers --
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= 'From: '.$fra.' <'.$fra.'>' . "\r\n";
$headers .= 'Reply-To: '.$fra.' <'.$fra.'>' . "\r\n";
// -- End headers --
                     
                        if (mail($til[$i],$overskrift,$indhold,$headers))
                        {
                            $antal++;
                            $_SESSION['udført'] = "<i>".$antal." Mail(s) blev sendt</i>";
                        }
                    }
Avatar billede nickern Nybegynder
20. december 2005 - 15:23 #9
det du desværre stadig ikke:(
Avatar billede jakobdo Ekspert
20. december 2005 - 15:27 #10
Prøv lige at start helt basic.

Prøv at se om du kan sende bare en email i html format, med html mailer koden på denne side: http://dk.php.net/manual/en/function.mail.php
Avatar billede nickern Nybegynder
20. december 2005 - 18:11 #11
jeg kan sende alm. mails men kan ikke sende når jeg begynder at udsende som html - dog modtager nogen dem som alm. tekst?:S
Avatar billede jakobdo Ekspert
20. december 2005 - 21:13 #12
Så hvis du tester koden:

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
  <tr>
    <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
  </tr>
  <tr>
    <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
  </tr>
  <tr>
    <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
  </tr>
  </table>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>

Og selvfølgelig retter til og fra, så får du ikke emailen som HTML?

Prøv evt lige denne kode!
Og prøv så evt også hvor du retter \r\n til \n kun.
Avatar billede nickern Nybegynder
20. december 2005 - 21:56 #13
det virker som den står der uden at rette \r\n
Avatar billede nickern Nybegynder
20. december 2005 - 21:59 #14
skal dette så bare ændres:

{
                    echo "<tr>\n";
                    echo "    <td>\n";
                    echo        $myrow['email']."\n";
                    echo "    </td>\n";
                    echo "    <td>\n";
                    echo "        <input id='til' checked='checked' type='checkbox' name='til[]' value='".$myrow['email']."'>\n";
                    echo "    </td>\n";
                    echo "</tr>\n";
                }

til:

{
                    echo "<tr>\r\n";
                    echo "    <td>\r\n";
                    echo        $myrow['email']."\r\n";
                    echo "    </td>\r\n";
                    echo "    <td>\r\n";
                    echo "        <input id='til' checked='checked' type='checkbox' name='til[]' value='".$myrow['email']."'>\r\n";
                    echo "    </td>\r\n";
                    echo "</tr>\r\n";
                }

eller hvad?
Avatar billede jakobdo Ekspert
21. december 2005 - 09:21 #15
du skal ihf ikke echo!
Du skal have det ind i en variabel!

{
                    $besked .= "<tr>\r\n";
                    $besked .= "<td>\r\n";
                    $besked .= $myrow['email']."\r\n";
                    $besked .= "</td>\r\n";
                    $besked .= "<td>\r\n";
                    $besked .= "<input id='til' checked='checked' type='checkbox' name='til[]' value='".$myrow['email']."'>\r\n";
                    $besked .= "</td>\r\n";
                    $besked .= "</tr>\r\n";
                }
Avatar billede nickern Nybegynder
23. december 2005 - 19:49 #16
kan ikke få det til at du?

kan du lave en udsendelse for mig???????? for ekstra mange points?
Avatar billede nickern Nybegynder
23. december 2005 - 23:20 #17
lige meget smider du et svar
Avatar billede jakobdo Ekspert
24. december 2005 - 08:33 #18
Svar!
Avatar billede jakobdo Ekspert
16. januar 2006 - 20:44 #19
Takker for point!
Avatar billede nickern Nybegynder
16. januar 2006 - 20:53 #20
så lidt

undskyld der gik så lang tid
Avatar billede jakobdo Ekspert
16. januar 2006 - 20:55 #21
Det er ok! :o)
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