Avatar billede googolplex Novice
11. februar 2004 - 21:41 Der er 11 kommentarer og
1 løsning

mail() med dobbelt mellemrum

Jeg har en side hvor jeg opretter lektier til mine elever:

lektieland.dk

Når jeg oprettet en lektie udsendes der automatisk en mail til de tilmeldte elever.

Men alle mellemrum i mailen bliver fordoblede og det ser skørt ud. På selve siden, er der kun et enkelt mellerum som der bør være.

Kode:

if (isset($_POST['send']) && $_POST['klasse'] != 'vaelg' && $_POST['fag'] != 'vaelg' && $_POST['aflevering'] != '' && $_POST['lektie'] != '') {
    aabn_forbindelse();
    $sql = "INSERT INTO lektier (klasse, lektie, fag, aflevering, oprettet, opdateret) VALUES('$klasse', '$lektie', '$fag', '$timestamp', '$tidnu', '$tidnu')";
    sql_spoerg($sql);
    luk_forbindelse();
    $afleveres = dato($timestamp, 1);
    $lektie = stripslashes(nl2br($lektie));
    $oprettet = dato($timestamp, 2);
    echo "
    <p>Følgende lektie er oprettet for $klasser[$klasse]:</p>
    <h2>$afleveres</h2>
    <div class=\"mellemrum-1\"></div>
    $lektie
    <div class=\"mellemrum-1\"></div>
    <img src=\"/grafik/lektiepil.gif\" alt=\"\" />&nbsp;&nbsp;$oprettet | $fag
    <p>Der er sendt en lektie e-mail til følgende adresser:</p>
    <ul>";
    aabn_forbindelse();
    $sql = "SELECT DISTINCT email FROM lektieemails WHERE klasse = '$klasse' AND aktiveret = '1' ORDER BY email ASC";
    $raekker = sql_flere_raekker($sql);
    luk_forbindelse();
    $afleveres = strtolower($afleveres);
    $emne = $klasser[$klasse] . ' har fået lektier for i ' . strtolower($fag) . ' :-)';
    $lektie = strip_tags(stripslashes($_POST['lektie']));

    for ($i = 0; $i < sizeof($raekker); $i++) {
        extract($raekker[$i]);
        $besked = "Hej :-)\n\n$klasser[$klasse] har følgende lektier for i " . strtolower($fag) . " til $afleveres:\n\n$lektie\n\nHusk det nu :-)\n\nDu kan se oversigten over dine lektier og downloade eventuelle opgaver på adressen:\n\nhttp://lektieland.dk/\n\nHvis du ikke ønsker flere lektie e-mails tilsendt for $klasser[$klasse], kan du afmelde dig ved at klikke på følgende link:\n\nhttp://lektieland.dk/afmelding/$email/$klasse/";
        $resultat = mail($email, $emne, $besked, "Reply-To: noreply@noreply.dk\r\nFrom: Lektieland.dk <lektieland.dk>");
        if ($resultat === true) {
            echo "<li>$email</li>";
        }
    }

Hvis nogle kan hitte ud af det eller kender til problemet vil jeg blive meget taknemmlig!!
Avatar billede phpwiz Nybegynder
11. februar 2004 - 21:47 #1
$besked = "Hej :-)\n\n$klasser[$klasse] har følgende lektier for i " . strtolower($fag) . " til $afleveres:\n\n$lektie\n\nHusk det nu :-)\n\nDu kan se oversigten over dine lektier og downloade eventuelle opgaver på adressen:\n\nhttp://lektieland.dk/\n\nHvis du ikke ønsker flere lektie e-mails tilsendt for $klasser[$klasse], kan du afmelde dig ved at klikke på følgende link:\n\nhttp://lektieland.dk/afmelding/$email/$klasse/";


der har du en masse : \n\n udskift dem med \n så skulle den være der ...
Avatar billede googolplex Novice
11. februar 2004 - 22:01 #2
Nej, det er ikke det. For de mellemrum er gode nok, det er de mellemrum der er i $lektie der bliver dobbelt.
Avatar billede phpwiz Nybegynder
11. februar 2004 - 22:04 #3
$lektie = stripslashes(nl2br($lektie));

$lektie = stripslashes($lektie);
Avatar billede googolplex Novice
11. februar 2004 - 22:27 #4
Nej, det kan heller ikke være det, for senere bliver $lektie sat til:

$lektie = strip_tags(stripslashes($_POST['lektie']));

Det er først herefter at det bliver brugt i mailen.
Avatar billede tipsen Nybegynder
12. februar 2004 - 18:38 #5
Hehe - det var sgu da en meget sød service :-)
Avatar billede googolplex Novice
13. februar 2004 - 06:42 #6
tipsen: Ja ik ;)

ramlev.dk: Jeg tillader mig at afvise, da dine løsninger ikke virker (er afprøvet tidligere)
Avatar billede tipsen Nybegynder
13. februar 2004 - 09:53 #7
Jeg er n;sten overbevist om, at problemet ligger i disse to linier / hvis du lidt bedre kan forklare, hvad problemet er, vil jeg m[ske kunne hj;lpe mere>

$lektie = stripslashes(nl2br($lektie));
$lektie = strip_tags(stripslashes($_POST['lektie']));

Mvh Tommy
Avatar billede tipsen Nybegynder
13. februar 2004 - 09:54 #8
...hvor er mit danske tastatur mon forsvundet hen...
Avatar billede tipsen Nybegynder
13. februar 2004 - 09:57 #9
[SPAM:] Mærkeligt - mine danske karakterer er forsvundet i en anden browserinstans af IE - men i denne instans kører det fint... - dét har jeg ikke set før...
Avatar billede googolplex Novice
13. februar 2004 - 12:12 #10
Ja, jeg tror også fejlen ligger der, men kan ikke overskue det :(

Jeg vender lige tilbage på mandag, skal et smut til KBH :)
Avatar billede googolplex Novice
17. februar 2004 - 12:39 #11
Ok, her er hele scriptet så, måske du kan finde fejlen, for jeg kan ikke:

---opret_lektie.php---

<?php
require_once('/lektieland_lib.php');
logging('lektielog');
ob_start();
top('Lektieland - Opret lektie');
?>

<div id="midterboks">
<h1>Opret Lektie</h1>
<div class="boks">

<?php
$klasse = $_POST['klasse'];
$klasser = array('vaelg' => 'Vælg', '3b' => '3.b', '5b' => '5.b', '7b' => '7.b');
$lektie = $_POST['lektie'];
$fag = $_POST['fag'];
$aflevering = $_POST['aflevering'];
$temp = explode('-', $aflevering);
$timestamp = mktime(0, 0, 0, $temp[1], $temp[0], $temp[2]);
$tidnu = time();

if (isset($_POST['send']) && $_POST['klasse'] != 'vaelg' && $_POST['fag'] != 'vaelg' && $_POST['aflevering'] != '' && $_POST['lektie'] != '') {
    aabn_forbindelse();
    $sql = "INSERT INTO lektier (klasse, lektie, fag, aflevering, oprettet, opdateret) VALUES('$klasse', '$lektie', '$fag', '$timestamp', '$tidnu', '$tidnu')";
    sql_spoerg($sql);
    luk_forbindelse();
    $afleveres = dato($timestamp, 1);
    $lektie = stripslashes(nl2br($lektie));
    $oprettet = dato($timestamp, 2);
    echo "
    <p>Følgende lektie er oprettet for $klasser[$klasse]:</p>
    <h2>$afleveres</h2>
    <div class=\"mellemrum-1\"></div>
    $lektie
    <div class=\"mellemrum-1\"></div>
    <img src=\"/grafik/lektiepil.gif\" alt=\"\" />&nbsp;&nbsp;$oprettet | $fag
    <p>Der er sendt en lektie e-mail til følgende adresser:</p>
    <ul>";
    aabn_forbindelse();
    $sql = "SELECT DISTINCT email FROM lektieemails WHERE klasse = '$klasse' AND aktiveret = '1' ORDER BY email ASC";
    $raekker = sql_flere_raekker($sql);
    luk_forbindelse();
    $afleveres = strtolower($afleveres);
    $emne = $klasser[$klasse] . ' har fået lektier for i ' . strtolower($fag) . ' :-)';
    $lektie = strip_tags(stripslashes($_POST['lektie']));

    for ($i = 0; $i < sizeof($raekker); $i++) {
        extract($raekker[$i]);
        $besked = "Hej :-)\n\n$klasser[$klasse] har følgende lektier for i " . strtolower($fag) . " til $afleveres:\n\n$lektie\n\nHusk det nu :-)\n\nDu kan se oversigten over dine lektier og downloade eventuelle opgaver på adressen:\n\nhttp://lektieland.dk/\n\nHvis du ikke ønsker flere lektie e-mails tilsendt for $klasser[$klasse], kan du afmelde dig ved at klikke på følgende link:\n\nhttp://lektieland.dk/afmelding/$email/$klasse/";
        $resultat = mail($email, $emne, $besked, "Reply-To: noreply@noreply.dk\r\nFrom: Lektieland.dk <lektieland.dk>");
        if ($resultat === true) {
            echo "<li>$email</li>";
        }
    }
   
    echo '
    </ul>|<a href="/admin/opret_lektie.php">Opret ny lektie</a>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<a href="/admin/lektie_oversigt.php">Gå til lektieoversigten</a>|';
} else {
?>

<form name="opretlektie" action="<?php siden_selv(); ?>" method="post">
<fieldset>
Klasse<br />
<?php
$klasser_selected[] = $klasse;
echo select('klasse', $klasser, $klasser_selected);
?>

<br />
Fag<br />

<?php
$fagene = array('vaelg' => 'Vælg', 'Matematik' => 'Matematik', 'Fysik/Kemi' => 'Fysik/Kemi');
$fag_selected[] = $fag;
echo select('fag', $fagene, $fag_selected);
?>

<br />
Afleveres (dd-mm-yyyy)<br />
<input type="text" name="aflevering" value="<?php echo $aflevering; ?>" />
<img src="/popupkalender/kalenderikon.gif" alt="" onclick='popUpCalendar(this, opretlektie.aflevering, "dd-mm-yyyy")' /><br />
Lektie<br />
<textarea name="lektie" rows="5" cols="43"><?php echo $lektie; ?></textarea><br />
<br />
<input type="submit" name="send" value="Opret lektie" />
<input type="reset" value="Slet alt" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<a href="/admin/lektie_oversigt.php">Gå til lektieoversigten</a>|
</fieldset>
</form>
</div>

<?php
}
?>

</div>

<?php
bund();
ob_end_flush();
?>
Avatar billede googolplex Novice
18. februar 2004 - 19:23 #12
lukker
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