Ik ben nieuw met php. En een form en send php.

Maar gaat iets fout en ik weet niet waar.

De form:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style47 {
font-size: 10px;
font-family: Arial, Helvetica, sans-serif;
}
.style49 {color: #112D5F; font-weight: bold;}
.style51 {font-size: 10px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; }
-->
</style>
</head>

<body>
<table width="734" border="0">
<tr>
<td><form action="../mailformulier.php" method="post" enctype="multipart/form-data" class="style47">
<div class="style47" id="buttons">
<table width="454" border="1" id="Kandidaat">
<tr>
<td colspan="2"><a href="../mailformulier.php">
<input type="hidden" name="required_fields"
value="Aanhef,Aanhef2,Naam.Naam2.E-mail,E-mail2,Telefoon,Telefoon2,CV" />
<input type="hidden" name="check_email_address" value="yes" />
</a>
<fieldset>
<a href="/mailform Folder/mailformulier.php">
<legend></legend>
<label for="field1"></label>
</a>
</fieldset>
<div id="buttons2"></div>
<a href="/mailform Folder/mailformulier.php">
<label for="field4"></label>
</a></td>
<td><span class="style49">Voorgestelde kandidaat</span></td>
<td class="style49">Gegevens kandidaat</td>
</tr>
<tr>
<td width="10"><a href="/mailform Folder/mailformulier.php">
<label for="field4"></label>
</a></td>
<td width="42" class="style49">Aanhef</td>
<td width="175"><a href="/mailform Folder/mailformulier.php">
<input name="Aanhef" id="field4"
title="Vul hier uw Aanhef." size="20" maxlength="20" />
</a></td>
<td><a href="/mailform Folder/mailformulier.php">
<input name="Aanhef2" type="text" id="Aanhef2" size="20" maxlength="20" />
</a></td>
</tr>
<tr>
<td><a href="/mailform Folder/mailformulier.php">
<label for="field5"></label>
</a></td>
<td class="style49">Naam</td>
<td><a href="../mailformulier.php">
<input name="Naam" id="field5"
title="Vul hier uw naam in." size="20" maxlength="20" />
</a></td>
<td><a href="/mailform Folder/mailformulier.php">
<input name="Naam2" type="text" id="Naam2" size="20" maxlength="20" />
</a></td>
</tr>
<tr>
<td><a href="../mailformulier.php">
<label for="field6"></label>
</a></td>
<td class="style49">E-mail</td>
<td><a href="../mailformulier.php">
<input name="E-mail" id="field6"
title="Vul hier uw E-mail in." size="20" maxlength="20" />
</a></td>
<td><a href="../mailformulier.php">
<input name="E-mail2" type="text" id="E-mail2" size="20" maxlength="20" />
</a></td>
</tr>
<tr>
<td><a href="../mailformulier.php">
<label for="field7"></label>
<label for="field8"></label>
</a></td>
<td>
<label for="label" class="style49">Telefoon</label>
<label for="field8"></label> </td>
<td><a href="../mailformulier.php">
<input name="Telefoon" id="field7"
title="Vul hier uw Tlefoon in." size="20" maxlength="20" />
</a></td>
<td><a href="../mailformulier.php">
<input name="Telefoon2" type="text" id="Telefoon2" size="20" maxlength="20" />
</a></td>
</tr>

<tr>
<td>&nbsp;</td>
<td class="style49">CV</td>
<td><a href="../mailformulier.php">
<input name="CV" type="file" class="style47" id="CV" size="20" maxlength="30" />
</a></td>
<td><div align="right" class="style49">
<a href="../mailformulier.php">
<input name="Reset" type="reset" class="style47" id="button2"
onclick="valid.reset(); return false" value="Herstel" />
<input name="Verzend" type="submit" class="style51" id="button1" title="Verstuur bovenstaande informatie."
value="Verzend" />
</a></div></td>
</tr>
</table>
</div>
</form></td>
</tr>
</table>
</body>
</html>

DE send php:
<?
$your_email_address="[email protected]";

if(empty($_GET) && empty($_POST)) {
die('Ongeldige actie');
}

// Emular register_globals on
if (!ini_get('register_globals')) {
$superglobales = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobales, $_SESSION);
}
foreach ($superglobales as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}

// to prevent header injection
if (eregi("\r",$_POST['[email protected]']) || eregi("\n",$_POST['[email protected]'])){
exit;
}

// kick anyone whoever tried to inject a header in the form
foreach( $_POST as $value ){
if( strpos($value,'Content-Type:') !== FALSE ){
exit;
}
}


$fields = array_keys($_POST);

function headfunction($url) {
header ("Location: $url");
}

// protect the variable $reserved_vars
if(isset($reserved_vars)) {
unset($reserved_vars);
}
$reserved_vars = array("css_file", "background_color", "background_image", "text_color", "link_color", "visited_link_color", "active_link_color", "font_name", "font_size", "highlight_color", "required_fields", "after_url", "check_email_address", "subject", "your_email_address", "env_report", "owner_name", "autoresponse", "response_subject", "response_mail", "dodosmail_header_file", "dodosmail_footer_file");

function include_dodosmail_header($dodosmail_header_file) {
global $reserved_vars;
foreach($reserved_vars as $reserved_var) {
global $$reserved_var;
}

if(is_file($dodosmail_header_file)) {
include_once($dodosmail_header_file);
return;
} else {
echo "<html>\n";
echo "<head>\n";
echo "<title>\n";
echo "DodosMail\n";
echo "</title>\n";
if($css_file != "")
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$css_file\">\n";
echo "</head>\n";
echo "<body bgcolor=\"$background_color\" background=\"$background_image\" text=\"$text_color\" link=\"$link_color\" vlink=\"$visited_link_color\" alink=\"$active_link_color\">\n";
echo "<font face=\"$font_name\" size=\"$font_size\">\n";
}
}

function include_dodosmail_footer($dodosmail_footer_file) {
global $reserved_vars;
foreach($reserved_vars as $reserved_var) {
global $$reserved_var;
}
if(is_file($dodosmail_footer_file)) {
include_once($dodosmail_footer_file);
return;
} else {
echo "</font>\n</body>\n</html>";
}
}

function dodosmail_error_handle($msg) {
global $highlight_color;
if(isset($highlight_color)) {
$extra_begin = "<font color=\"".$highlight_color."\">";
$extra_end = "</font>";
} else {
$extra_begin = "<span class=\"DodosMailErrorHighLight\">";
$extra_end = "</span>";
}

return $extra_begin.$msg.$extra_end;
}

// checking required fields
// in case they used comma and space, replace
if(strstr($required_fields, ", ")) {
$required_fields = str_replace(", ", ",", $required_fields);
} else {
$required_fields = $required_fields;
}
$required_fields = explode(",", $required_fields);

for($i = 0; $i < count($required_fields); $i++) {
$required_var_name = $required_fields[$i];
if(empty($$required_var_name)) {
include_dodosmail_header($dodosmail_header_file);
echo "<p class=\"DodosMailError\">Fout! - het verplichte veld ".dodosmail_error_handle($required_var_name)." is niet ingevuld.\n";
echo "<br /><br /><a href=\"javascript:history.back(1)\">Terug</a>\n";
echo "</p>\n";
include_dodosmail_footer($dodosmail_footer_file);
exit;
}
}
if($check_email_address == "yes" && !empty($email)) {
if(!check_email($email)) {
include_dodosmail_header($dodosmail_header_file);
echo "<p class=\"DodosMailError\">Fout - het adres ".dodosmail_error_handle($email)." is niet geldig.\n";
echo "<br /><br /><a href=\"javascript:history.back(1)\">Terug</a>\n";
echo "</p>\n";
include_dodosmail_footer($dodosmail_footer_file);
exit;
}
}


for($i = 0; $i < count($fields); $i++) {
$actual_var = $fields[$i];
if(in_array($actual_var, $reserved_vars)) {
$inside_mail = $inside_mail;
} else {
if(is_array($$actual_var)) {
$inside_mail.= "$actual_var: ";
foreach($$actual_var as $actual_val) {
$inside_mail.= "$actual_val ";
}
$inside_mail.= "\n";
} else {
$actual_val = stripslashes($$actual_var);
$inside_mail.= "$actual_var: $actual_val\n";
}
}
}

// getting other information from the form
$cname = gethostbyaddr($_SERVER[REMOTE_ADDR]);
$inside_mail.=
"
-----------------------------------------------------------------------
SENDER INFO:
IP: $_SERVER[REMOTE_ADDR]
Computer Name: $cname
Browser Type: $_SERVER[HTTP_USER_AGENT]
Page Referer: $_SERVER[HTTP_REFERER]
-----------------------------------------------------------------------
";






$headers .= "MIME-Version: 1.0\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-MSMail-Priority: Normal\r\n";
$headers .= "X-Mailer: DodosMail 2.0 http://regretless.com/scripts/\r\n";;
$headers .= "Content-type: text/plain; charset=\"iso-8859-1\"\r\n";
//$headers .= "Date: ".date("R")."\r\n";
$headers .= "From: $name <$email>\r\n";



$success = mail($your_email_address, $subject, $inside_mail, $headers);
if($success) {
if($autoresponse == "yes") {
$response_subject = stripslashes($response_subject);
$response_mail = stripslashes($response_mail);
mail($email, $response_subject, $response_mail, "From: $owner_name <$your_email_address>");
}
if($after_url == "") {
// out put send info
include_dodosmail_header($dodosmail_header_file);


echo "<p>\n";

echo "Het formulier is verzonden!</p><ul>";
for($i = 0; $i < count($fields); $i++) {
$actual_var = $fields[$i];
if(in_array($actual_var, $reserved_vars))
echo "";
else {
if(is_array($$actual_var)) {
echo "<li>$actual_var: ";
foreach($$actual_var as $actual_val) {
echo "$actual_val ";
}
echo "</li>\n";
} else {
$actual_val = stripslashes($$actual_var);
echo "<li>$actual_var: $actual_val</li>\n";
}
}
}
echo "</ul>\n<p></p>";
include_dodosmail_footer($dodosmail_footer_file);
exit;
} else {
headfunction($after_url);
}
} else {
include_dodosmail_header($dodosmail_header_file);
echo "<p class=\"DodosMailError\">Fout - Het formulier is tijdelijk niet bruikbaar, gebruik ".dodosmail_error_handle($your_email_address)." om contact op te nemen.\n";
echo "<br /><br /><a href=\"javascript:history.back(1)\">Terug</a>\n";
echo "</p>\n";
include_dodosmail_footer($dodosmail_footer_file);
exit;
}



function check_email($email) {
if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) ||
(preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) {
return true;
}
return false;
}



?>




Andy schreef op 01.01.2010 16:55
... Ik moet nu eenmaal snel een formulier maken waarin ik een bijlage moet invoeren. ...

Maar dat is jouw probleem. Je krijgt hier gewoon advies en wil je het beter en sneller ga dan eerst sparen en betaal er voor.
Wel waarom kijk je dan niet naar een mailclass - in willekeurige volgode - zoals:
- PHP Mailer
- Swift Mailer


En kijk je hoe hedendaagse forms eruit zien kwa opbouw en css
En dan verdiep je je uiteraard ook nog in hoe je op correcte manier z'n form-post in php afhandeld. - daar is genoeg over te vinden -
Dank je noppes dat is advies.
Andy schreef op 01.01.2010 16:55
Ik moet nu eenmaal snel een formulier maken waarin ik een bijlage moet invoeren.
Ik krijg hier een beetje het 'voor een dubbeltje op de eerste rang willen zitten' gevoel bij. Iets snel in elkaar steken en zorgen dat het werkt en bovendien veilig is, gaan vaak niet samen. Dat blijkt hier ook wel weer.

Maar goed, succes ermee in ieder geval!

ps. Oh ja, mijn advies: neem de reacties van Noppes ter harte. Daar kun je mee vooruit :)

Reageren