Ontvangen Van E-mail

Status
Niet open voor verdere reacties.

anton144

Gebruiker
Lid geworden
5 apr 2008
Berichten
100
Hallo Allemaal,

Ik heb een formulier met een daarbijbehorend Verzendscript.
Alles in en op de site verloopt volgens wens zo het moet.
Bij de ontvanger komt hij wel aan, maar.......... vervormd en ook dingen er op wat niet de bedoeling is.

Heb Bijlagen bijgesloten met de scrips, en een als resutaat, zodat je kunt zien wat ik bedoel.

Hoop dat er iemand is die kan zien waar de fout zit.
Zelf lees ik er denk ik overheen.

Bij voorbaat mijn dank.

Anton
 

Bijlagen

Nou, ik gok dat het niet de bedoeling is dat de helft van het script niet uitgevoerd word, doordat er // voor staat?

Wat je dus moet doen is het commentaar en code even scheiden, zoals als het zo staat is de helft van de code commentaar en word dus niet door de php server uitgevoerd.

Het middelste stuk, zonder het commentaar, maar zou het moeten doen

:)

Code:
  if (count($_POST)>0)

{ //controleer of de $bHTML wel fatsoenlijk is ingesteld 
    if(!is_bool($bHTML)) { print("De configuratie is onjuist. Zorg dat je bij <font color=blue><i>$bHTML</i></font> een booleaanse waarde (TRUE of FALSE) hebt ingevuld. Letop: Hier moeten geen quotes ( \" of ') omheen!"); exit; } $errors = array();        //definieer arrray voor de errormeldingen 
    $aKeys = array_keys($_POST);
    //pak alle arraykeys in een arraytje 
    foreach($aKeys as $key=$value) { $aKeys[$key]=strtolower($value);
        //maak alle waarden in kleine letters 
        } $aMail = explode("@",$sMail); $sDomein = $aMail[1]; //mail detectie
         if (in_array("mail",$aKeys)) { $sFrom = $_POST['mail']; } elseif (in_array("email",$aKeys)) { $sFrom = $_POST['email']; } elseif (in_array("e-mail",$aKeys)) { $sFrom = $_POST['e-mail']; } elseif (in_array("1mail",$aKeys)) { $sFrom = $_POST['1mail']; } elseif (in_array("1email",$aKeys)) { $sFrom = $_POST['1email']; } elseif (in_array("1e-mail",$aKeys)) { $sFrom = $_POST['1e-mail']; } else { $sFrom = "a.heuvel874@".$sDomein; $bBedanktmail = FALSE; } if ($bOnderwerp) { $sSubject = $sOnderwerp; } else { if (in_array("onderwerp",$aKeys)) { $sSubject = $_POST['onderwerp']; } elseif (in_array("subject",$aKeys)) { $sSubject = $_POST['subject']; } elseif (in_array("1onderwerp",$aKeys)) { $sSubject = $_POST['1onderwerp']; } elseif (in_array("1subject",$aKeys)) { $sSubject = $_POST['1subject']; } else { $sSubject = $sOnderwerp; } } //controle emailadres
          if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",$sFrom)) { $error[] = "Het opgegeven e-mail adres is niet geldig."; }
           //check alle verplichte velden 
          foreach($_POST AS $key=$value) { if(substr($key,0,1) == 1) { if (empty($_POST[$key])) { $name = substr($key,1); $error[] = "Het veld <i>'".$name."'</i> is verplicht en moet worden ingevuld."; } } }
          //als er een error was
           if (isset($error) && count($error) > 0) { //poep alle errors uit
                print("<ul style=\"list-style: none; color: red;\"\n"); foreach($error as $value) { print("\t<li>".$value."</li>\n"); } print("</ul"); } else { $headers = "MIME-Version: 1.0\n"; $headers .= "From: ".$sWebsitenaam." <".$sFrom."\n"; $headers .= "Reply-to: ".$sWebsitenaam."     <noreply@".$sDomein."> \n"; $headers .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n"; $sContent = "Dit is een automatisch gegenereerd e-mailbericht die vanaf je site is verstuurd.\n\n"; foreach($_POST as $key = $value) { if (substr($key,0,1) == 1) { $key = substr($key,1); } $sContent .= ucfirst(strtolower($key)).": ".$value."\n\n"; } $sContent .= "IP: ".$_SERVER['REMOTE_ADDR']."\n\n"; $sContent .= "Tijdstip: ".date("D j M, Y G:i")."\n\n"; $enter = " "; $sContent = ($bHTML) ? nl2br(htmlspecialchars($sContent)) : str_replace("\n",$enter,$sContent) ; mail($sMail,$sSubject,$sContent,$headers); if ($bBedanktmail) { $sBedanktmail = ($bHTML) ? nl2br(htmlspecialchars($sBedanktmail)) : str_replace("\n",$enter,$sBedanktmail) ; mail($sFrom,$sBedanktsubj,$sBedanktmail,$headers); } print($sBedanktTxt); } } else { <?php print("<form action=\"".$_SERVER['REQUEST_URI']."\" METHOD=\"POST\"\n"); ?>
 
Laatst bewerkt:
Bedankt voor je reactie Emplode,

Maar weet niet wat je bedoeld met al dat commentaar?
Als ik in mijn PHP file van Verzenden bekijk valt het wel mee dacht ik.
Alleen wat er gebeurt of zou moeten gebeuren in de code staat als commentaar.
Dus.... ik heb geen antwoord op mijn vraag.
Bijgaand script ken ik niets van terug.
Sorry.

Anton



Nou, ik gok dat het niet de bedoeling is dat de helft van het script niet uitgevoerd word, doordat er // voor staat?

Wat je dus moet doen is het commentaar en code even scheiden, zoals als het zo staat is de helft van de code commentaar en word dus niet door de php server uitgevoerd.

Het middelste stuk, zonder het commentaar, maar zou het moeten doen

:)

Code:
  if (count($_POST)>0)

{ //controleer of de $bHTML wel fatsoenlijk is ingesteld 
    if(!is_bool($bHTML)) { print("De configuratie is onjuist. Zorg dat je bij <font color=blue><i>$bHTML</i></font> een booleaanse waarde (TRUE of FALSE) hebt ingevuld. Letop: Hier moeten geen quotes ( \" of ') omheen!"); exit; } $errors = array();        //definieer arrray voor de errormeldingen 
    $aKeys = array_keys($_POST);
    //pak alle arraykeys in een arraytje 
    foreach($aKeys as $key=$value) { $aKeys[$key]=strtolower($value);
        //maak alle waarden in kleine letters 
        } $aMail = explode("@",$sMail); $sDomein = $aMail[1]; //mail detectie
         if (in_array("mail",$aKeys)) { $sFrom = $_POST['mail']; } elseif (in_array("email",$aKeys)) { $sFrom = $_POST['email']; } elseif (in_array("e-mail",$aKeys)) { $sFrom = $_POST['e-mail']; } elseif (in_array("1mail",$aKeys)) { $sFrom = $_POST['1mail']; } elseif (in_array("1email",$aKeys)) { $sFrom = $_POST['1email']; } elseif (in_array("1e-mail",$aKeys)) { $sFrom = $_POST['1e-mail']; } else { $sFrom = "a.heuvel874@".$sDomein; $bBedanktmail = FALSE; } if ($bOnderwerp) { $sSubject = $sOnderwerp; } else { if (in_array("onderwerp",$aKeys)) { $sSubject = $_POST['onderwerp']; } elseif (in_array("subject",$aKeys)) { $sSubject = $_POST['subject']; } elseif (in_array("1onderwerp",$aKeys)) { $sSubject = $_POST['1onderwerp']; } elseif (in_array("1subject",$aKeys)) { $sSubject = $_POST['1subject']; } else { $sSubject = $sOnderwerp; } } //controle emailadres
          if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",$sFrom)) { $error[] = "Het opgegeven e-mail adres is niet geldig."; }
           //check alle verplichte velden 
          foreach($_POST AS $key=$value) { if(substr($key,0,1) == 1) { if (empty($_POST[$key])) { $name = substr($key,1); $error[] = "Het veld <i>'".$name."'</i> is verplicht en moet worden ingevuld."; } } }
          //als er een error was
           if (isset($error) && count($error) > 0) { //poep alle errors uit
                print("<ul style=\"list-style: none; color: red;\"\n"); foreach($error as $value) { print("\t<li>".$value."</li>\n"); } print("</ul"); } else { $headers = "MIME-Version: 1.0\n"; $headers .= "From: ".$sWebsitenaam." <".$sFrom."\n"; $headers .= "Reply-to: ".$sWebsitenaam."     <noreply@".$sDomein."> \n"; $headers .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n"; $sContent = "Dit is een automatisch gegenereerd e-mailbericht die vanaf je site is verstuurd.\n\n"; foreach($_POST as $key = $value) { if (substr($key,0,1) == 1) { $key = substr($key,1); } $sContent .= ucfirst(strtolower($key)).": ".$value."\n\n"; } $sContent .= "IP: ".$_SERVER['REMOTE_ADDR']."\n\n"; $sContent .= "Tijdstip: ".date("D j M, Y G:i")."\n\n"; $enter = " "; $sContent = ($bHTML) ? nl2br(htmlspecialchars($sContent)) : str_replace("\n",$enter,$sContent) ; mail($sMail,$sSubject,$sContent,$headers); if ($bBedanktmail) { $sBedanktmail = ($bHTML) ? nl2br(htmlspecialchars($sBedanktmail)) : str_replace("\n",$enter,$sBedanktmail) ; mail($sFrom,$sBedanktsubj,$sBedanktmail,$headers); } print($sBedanktTxt); } } else { <?php print("<form action=\"".$_SERVER['REQUEST_URI']."\" METHOD=\"POST\"\n"); ?>
 
Ja, er staat een beschijving bij, dat snap ik. Alleen doordat de beschijving niet afgesloten word door bijv. een spatie, ziet hij dus delen van de code, als commentaar.

Zo ziet het er bij mij uit. :
4yofr.png


(Lichtblauw, is bij mij commentaar)

Nou voeg ik een spatie toe, aan
" //controleer of de $bHTML wel fatsoenlijk is ingesteld (hier)if(hier begint de code en zou het commentaar moeten eindigen, maar dat gebeurt niet)"
en krijg dit :
luuu0.png


Dus, samengevat

Dit is commentaar en word niet gelezen door apache:
//Alles wat achter deze slashes staat is commentaar, tenzij goed afgesloten. doormiddel van enter bijv.
 
Laatst bewerkt:
Nee, het bestand is kapot door de overdracht. // geeft maar één regel aan, bij jou zijn bijna alle regels blauw. Hij heeft van het hele script één regel gemaakt.
 
Dan zou het toch wel kloppen als hij de // van de code scheidt?
Dat is wat ik eigenlijk wou zeggen. En ja, ik snap dat ik alleen maar de if statement heb veranderd, maar meer ter illustratie, van mijn blijkbaar slecht gemaakte punt.
 
Ok Emplode,

Klopt, enkel commentaren waren niet goed afgesloten.
Probleem is opgelost.
BEDANKT voor je reactie.

Anton


Ja, er staat een beschijving bij, dat snap ik. Alleen doordat de beschijving niet afgesloten word door bijv. een spatie, ziet hij dus delen van de code, als commentaar.

Zo ziet het er bij mij uit. :
4yofr.png


(Lichtblauw, is bij mij commentaar)

Nou voeg ik een spatie toe, aan
" //controleer of de $bHTML wel fatsoenlijk is ingesteld (hier)if(hier begint de code en zou het commentaar moeten eindigen, maar dat gebeurt niet)"
en krijg dit :
luuu0.png


Dus, samengevat

Dit is commentaar en word niet gelezen door apache:
//Alles wat achter deze slashes staat is commentaar, tenzij goed afgesloten. doormiddel van enter bijv.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan