Hallo

Ik heb een vraagje of iemand weet wat ik fout gedaan heb.
Ik heb onderstaande script en als ik alle verlden invul blijft hij mij de foutmelding ""Gelieve alle velden correct in te vullen"" geven.
Weet iemad wat ik fout gedaan heb of heeft iemand een idee waar het zich in zit.
Ik kom er zelf niet uit en na 5 uur kijken en zoeken word ik er een beetje gek van.

Hier is de code dan
[code]
<?php
//mail formulier voor bijlage
$email ='[email protected];
//geneer boundary
DEFINE('bound',md5(uniqid(time())))
//check request method


if($_SERVER['REQUEST_METHOD'] == 'POST')
if($naam= "" || $email= "" || $subject= "" || $file= "" || $bericht= "" || $tel="" || $plaats="" || $adres="" )
{
echo "<center><small><font face=\"Arial\">Gelieve alle velden correct in te vullen.<br><a href=\"javascript:history.back(-1)\">Probeer het opnieuw</a></font></small></center>";
}
elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $email))
{
echo "<center><small><font face=\"Arial\">Gelieve een geldig e-mailadres in te vullen.<br><a href=\"javascript:history.back(-1)\">Probeer het opnieuw</a></font></small></center>";
}
else
{
//if file upload send with email as mixed
if(!empty($_FILES['file']['name']))
{
//check filesize
if($_FILES['file']['size'] < 1024*1024)
{
$headers = "Van: ".$_POST['naam']." ".$_POST['subject']." ".$_POST['bericht']."".$_POST['email']." ".$_POST['tel']." ".$_POST['plaats']." ".$_POST['adres']." \r\n";
$headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
//email bestaat uit meerdere bestanden dus vertel wat de scheidings teken is en dat het een multipart is
$headers .= "Content-Type: multipart/mixed; boundary=\"".bound."\"\r\n";
//we zenden een attachment mee
$headers .= "Content-Disposition: attachment\r\n";
//readfile
$fp = fopen($_FILES['file']['tmp_name'],'r');
$bestand = fread($fp,$_FILES['file']['size']);
fclose($fp);
//create body
//generenen een body. Dit is een multi part gezeik
$body.= "This is a multi-part message in MIME format.\r\n";
$body.= "\r\n";
//boundary
$body.= "--".bound."\r\n";
//content type + charater set (iso in dit geval)
$body.= "Content-Type: text/plain; charset=iso-8859-1\r\n";
//codering (7 bit)
$body.= "Content-Transfer-Encoding: 7bit\r\n";
$body.= "\r\n";
//het bericht
$body.= $_POST['bericht'] ."\r\n";
//boundary
$body.= "--".bound."\r\n";
//content type + naam bestand (database.sql)
$body .= "Content-Type: application/octet-stream; name=".$_FILES['file']['name']."\r\n";
//codering
$body .= "Content-Transfer-Encoding: base64\r\n";
//als bijlage toegevoegd
$body.= "Content-disposition: attachment\r\n";
$body .= "\n";
//de inhoud van het bestand
$body .= chunk_split(base64_encode($bestand )) . "\r\n";
mail($email,$_POST['subject'],$body,$headers);
echo 'Email (Met een bijlage) is verzonden';
}
else
{
echo 'Bestands groote is te groot';
}
}
else
{
$headers = "From: ".$_POST['from']." <".$_POST['email'].">\r\n";
$headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$bericht = $_POST['bericht'];
mail($email,$_POST['subject'],$bericht,$headers);
echo 'Email (Zonder een bijlage) is verzonden';
}
}
else
{
//mail formulier je moet zelf het fomullier maken

echo "<form action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"POST\" enctype=\"multipart/form-data\">";
echo "Naam: <input type='text' name='from'><br>";
echo "Adres:<input type='text' name='adres'><br>";
echo "plaats:<input type='text' name='plaats'><br>";
echo "Tellefoon:<input type='text' name='tel'><br>";
echo "Email:<input type='text' name='email'><br>";
echo "Onderwerp:<input type='text' name='subject'><br>";
echo "Bestand:<input type='file' name='file'><br>";
echo "Bericht:<textarea name='bericht'></textarea><br />";
echo "<input type=\"submit\" value=\"Verzenden\">";
}
?>
B.V.D Arjan
Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
Kijk eens naar de kleurtjes.... Dan moet je de fout wel zien....
Edit: of heb je het hier gewoon raar geplakt?
Die is eigenlijk heel simpel, het script maakt gebruik van register globals (wat heel slecht is) en dat staat (gelukkig) uit op je server.
Ik denk dat het makkelijkste is om op regel 8 het volgende te plaatsen:

<?php
    $naam = $email = $subject = $file = $bericht = $tel= $plaats= $adres = "";
    if(isset($_POST['naam']))
    {
        $naam = trim($_POST['naam']);
    }
    if(isset($_POST['email ']))
    {
        $email = trim($_POST['email ']);
    }
    if(isset($_POST['subject ']))
    {
        $subject = trim($_POST['subject ']);
    }
    if(isset($_POST['file ']))
    {
        $file = trim($_POST['file ']);
    }
    if(isset($_POST['bericht ']))
    {
        $bericht = trim($_POST['bericht ']);
    }
    if(isset($_POST['tel']))
    {
        $tel= trim($_POST['tel']);
    }
    if(isset($_POST['plaats']))
    {
        $plaats= trim($_POST['plaats']);
    }
    if(isset($_POST['adres ']))
    {
        $adres = trim($_POST['adres ']);
    }
?>
Hallo

Ik heb dan nog even een vraag, Als ik dit bovenstaande op regel 8 plaats moet ik dan regel 9 weg halen ?????????
' bij de email bovenin voor de ;
Ik zou ook nog eens naar je indeling kijken.
Waarom heeft de eerste if() geen { en }?
En er is een else teveel.
<?php
if()
if()
{
}
elseif()
{
}
else
{
if()
{
if()
{
}
else
{
}
}
else
{
}
}
else
{
}
?>
Hallo Jim
ja dat klopt ik zag die nou ook maar die staat op de server wel geplaats

Ik heb even gedaan wat Santhe zei om die code even er in te plaatsen maar daar krijg ik wel foutmeldingen mee hoor dat werkt supper bedankt alvast daarvoor
De foutmelding die ik nu nog krijg is dat ik een geldig emailadres moet invullen maar mijn nl email is toch echt wel geldig en goed hoor.
dus als ik [email protected] invul doet hij niet maar als ik mijn prive mail invul ook niet kan ik dat neit gewoon eruit halen ofzo???


Arjan
Hallo Santhe

Als ik bij de eerste if een { } geef dan krijg ik een foutmelding als ik die {} niet geef is het goed

Arjan

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.
arjan schreef op 10.05.2009 23:30
Als ik bij de eerste if een { } geef dan krijg ik een foutmelding als ik die {} niet geef is het goed

Dan doe je toch iets niet goed.
wou even zeggen dat telefoon ::er staat tellefoon mischien is dat verkeerd geschreven

Reageren