Killerclown
Gebruiker
- Lid geworden
- 30 dec 2007
- Berichten
- 181
Goeieavond,
Ik probeer een mailscript te maken in php (lees: code gekopieerd van google) maar er zit ergens een fout in die ik niet vind. Ik heb het script wat proberen aanpassen naar mijn persoonlijke noden maar nu zit er een fout in. Hopelijk is er hier iemand met wat meer kennis van php dan mij die het probleem wel ziet.
Kan iemand mij helpen wat het probleem is en hoe ik het kan oplossen?
Ik denk dat het te maken heeft met de accolade } maar daar zit ik vast.
Hieronder de code van het formulier en van het script
FORMULIER
PHP SCRIPT
Ik probeer een mailscript te maken in php (lees: code gekopieerd van google) maar er zit ergens een fout in die ik niet vind. Ik heb het script wat proberen aanpassen naar mijn persoonlijke noden maar nu zit er een fout in. Hopelijk is er hier iemand met wat meer kennis van php dan mij die het probleem wel ziet.
Kan iemand mij helpen wat het probleem is en hoe ik het kan oplossen?
Ik denk dat het te maken heeft met de accolade } maar daar zit ik vast.
Hieronder de code van het formulier en van het script
FORMULIER
Code:
<!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>
</head>
<body>
<!-- Display submission status -->
<?php if(!empty($statusMsg)){ ?>
<p class="statusMsg <?php echo !empty($msgClass)?$msgClass:''; ?>"><?php echo $statusMsg; ?></p>
<?php } ?>
<!-- Display contact form -->
<form method="post" action="test_formhandler.php" enctype="multipart/form-data">
<div class="form-group">
<input type="text" name="name" class="form-control" placeholder="Name" required="">
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" placeholder="Email address" required="">
</div>
<div class="form-group">
<input type="text" name="subject" class="form-control" placeholder="Subject" required="">
</div>
<div class="form-group">
<input type="text" name="adlink" class="form-control" placeholder="Link" required="">
</div>
<div class="form-group">
<select name="adtime" required>
<option value="1month">1 month</option>
<option value="2month">2 months</option>
<option value="3month">3 months</option>
</div>
<div class="form-group">
<textarea name="message" class="form-control" placeholder="Write your message here" required=""></textarea>
</div>
<div class="form-group">
<input type="file" name="attachment" class="form-control">
</div>
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="xxx"></div>
<div class="submit">
<input type="submit" name="submit" class="btn" value="SUBMIT">
</div>
</form>
</body>
</html>
PHP SCRIPT
Code:
<?php
$postData = $uploadedFile = $statusMsg = '';
$msgClass = 'errordiv';
if(isset($_POST['submit'])){
// Get the submitted form data
$postData = $_POST;
// Check whether submitted data is not empty
if(!empty($email) && !empty($name) && !empty($subject) && !empty($message) && !empty($adlink) && !empty($adtime)){
// Validate reCAPTCHA box
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])){
// Google reCAPTCHA API secret key
$secretKey = 'xxx';
// Verify the reCAPTCHA response
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secretKey.'&response='.$_POST['g-recaptcha-response']);
// Decode json data
$responseData = json_decode($verifyResponse);
// If reCAPTCHA response is valid
if($responseData->success){
// Posted form data
$email = $_POST['email'];
$name = $_POST['name'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$adlink = $_POST['adlink'];
$adtime = $_POST['adtime'];
// Validate email
if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
$statusMsg = 'Please enter your valid email.';
}else{
$uploadStatus = 1;
// Upload attachment file
if(!empty($_FILES["attachment"]["name"])){
// File path config
$targetDir = "../../upload/";
$fileName = basename($_FILES["attachment"]["name"]);
$targetFilePath = $targetDir . $fileName;
$fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);
// Allow certain file formats
$allowTypes = array('pdf', 'jpg', 'png', 'jpeg');
if(in_array($fileType, $allowTypes)){
// Upload file to the server
if(move_uploaded_file($_FILES["attachment"]["tmp_name"], $targetFilePath)){
$uploadedFile = $targetFilePath;
}else{
$uploadStatus = 0;
$statusMsg = "Sorry, there was an error uploading your file.";
}
}else{
$uploadStatus = 0;
$statusMsg = 'Sorry, only PDF, JPG, JPEG, & PNG files are allowed to upload.';
}
}
if($uploadStatus == 1){
// Recipient
$toEmail = 'test@test.be';
// Sender
$from = 'test';
$fromName = 'test';
// Subject
$emailSubject = 'Contact Request Submitted by '.$name;
// Message
$htmlContent = '<h2>Contact Request Submitted</h2>
<p><b>Name:</b> '.$name.'</p>
<p><b>Email:</b> '.$email.'</p>
<p><b>Subject:</b> '.$subject.'</p>
<p><b>Link:</b> '.$adlink.'</p>
<p><b>Time:</b> '.$adtime.'</p>
<p><b>Message:</b><br/>'.$message.'</p>';
// Header for sender info
$headers = "From: $fromName"." <".$from.">" . "\r\n" . "CC: test@test.be";
if(!empty($uploadedFile) && file_exists($uploadedFile)){
// Boundary
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Headers for attachment
$headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
// Multipart boundary
$message = "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"UTF-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" . $htmlContent . "\n\n";
// Preparing attachment
if(is_file($uploadedFile)){
$message .= "--{$mime_boundary}\n";
$fp = @fopen($uploadedFile,"rb");
$data = @fread($fp,filesize($uploadedFile));
@fclose($fp);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: application/octet-stream; name=\"".basename($uploadedFile)."\"\n" .
"Content-Description: ".basename($uploadedFile)."\n" .
"Content-Disposition: attachment;\n" . " filename=\"".basename($uploadedFile)."\"; size=".filesize($uploadedFile).";\n" .
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
}
$message .= "--{$mime_boundary}--";
$returnpath = "-f" . $email;
// Send email
$mail = mail($toEmail, $emailSubject, $message, $headers, $returnpath);
// Delete attachment file from the server
@unlink($uploadedFile);
}else{
// Set content-type header for sending HTML email
$headers .= "\r\n". "MIME-Version: 1.0";
$headers .= "\r\n". "Content-type:text/html;charset=UTF-8";
// Send email
$mail = mail($toEmail, $emailSubject, $htmlContent, $headers);
}
// If mail sent
if($mail){
echo "<script> location.href='advertisment_thanks.html'; </script>";
exit; //redirect to the 'thank you' page
$statusMsg = 'Your contact request has been submitted successfully !';
$msgClass = 'succdiv';
$postData = '';
}else{
$statusMsg = 'Your contact request submission failed, please try again.';
}
}
}
}else{
$statusMsg = 'Please fill all the fields.';
}
}
?>