Hoi,

Ik heb geen kennis van PHP, maar het is na dagen toch gelukt om twee scripts op te stellen voor mijn formulier.
Het ene script betreft het formulier behalve het veld om een bestand mee te kunnen sturen.
Het andere script betreft juist alleen het versturen van een bestand.
Nu moet ik deze twee dus samenvoegen, maar hoe??
Zou iemand mij kunnen helpen?

Script 1:
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$ontvanger = "mijnemailadres";
$hoofd = "Het onderwerp";
$voorletters = strtoupper ($_POST['voorletters']);
$tussenvoegsel = strtolower($_POST['tussenvoegsel']);
$achternaam = ucfirst ($_POST['achternaam']);
$rubriek = $_POST['rubriek'];
$bedrijf = ucfirst ($_POST['bedrijf']);
$slogan = ucfirst ($_POST['slogan']);
$adres = ucfirst ($_POST['adres']);
$postcode = strtoupper ($_POST['postcode']);
$plaats = ucfirst ($_POST['plaats']);
$telefoon = $_POST['telefoon'];
$email = $_POST['email'];
$website = strtolower($_POST['website']);
$soort = $_POST['soort'];

if($_POST['robot'] != "") {
echo 'U bent een robot.';
}

else {
$body = "";
$body .= "Voorletters: ";
$body .= "\n";
$body .= $voorletters;
$body .= "\n";
$body .= "\n";
$body .= "Tussenvoegsel: ";
$body .= "\n";
$body .= $tussenvoegsel;
$body .= "\n";
$body .= "\n";
Etc...

$formsent = mail($ontvanger, $hoofd, $body, 'From:<' . $email . '>');

if ($formsent){

$body = "";
$body .= "Geachte heer / mevrouw $tussenvoegsel $achternaam,";
$body .= "\n";
$body .= "\n";
Etc...

$verzender = "mijn emailadres";

mail($email, $hoofd, $body, 'From:<' . $verzender . '>');

header('Location: http://www.mijndomeinnaam.nl/bedankt.html';);

}

else{
header('Location: http://www.mijndomeinnaam.nl/foutmelding.html';); }
}
}
?>

En dan hieronder het script wat ik graag in mijn eerste script wil verwerken:
<?php
if(isset ($_POST["send"]))
{
$file_name=$_FILES["file"]["name"];
$file_type=$_FILES["file"]["type"];
$file_size=$_FILES["file"]["size"];
$file_temp=$_FILES["file"]["tmp_name"];

{
$fp = fopen($file_temp, "rb");
$file = fread($fp, $file_size);

$file = chunk_split(base64_encode($file));
$num = md5(time());

//Normal headers

$headers = "From: <mijn emailadres>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=".$num."\r\n";
$headers .= "--$num\r\n";

// This two steps to help avoid spam

$headers .= "Message-ID: <".gettimeofday()." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";

// With message

$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "".$message."\n";
$headers .= "--".$num."\n";

// Attachment headers

$headers .= "Content-Type:".$file_type." ";
$headers .= "name=\"".$file_name."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$file_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";
// SEND MAIL
@mail($headers);
fclose($fp);

echo '<font style="font-family:Verdana, Arial; font-size:11px; color:#333333; font-weight:bold">Attachment has been sent Successfully.<br /></font>';
}
}
?>

Hoop dat iemand me kan helpen...

if($_SERVER['REQUEST_METHOD'] == 'POST') 

en

if(isset ($_POST["send"]))

doen effectief het zelfde (ik zou voor de bovenste kiezen)
je zou de inhoud van de if statements dus onder elkaar kunnen zetten in één if statement.

MAAR

ik ben niet kapot van het onderste script.
Kijk liever eens naar PHPMailer: http://phpmailer.worxware.com/index.php?pg=phpmailer

en hier staat een standaard mail voorbeeld met behulp van PHPMailer: http://phpmailer.worxware.com/index.php?pg=examplebmail
Ik heb de twee scripts zelf proberen samen te voegen en ik kom er verder niet uit. Weet iemand welke fouten ik maak?

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$ontvanger = "mijn email";
$hoofd = "onderwerp";
$voorletters = strtoupper ($_POST['voorletters']);
$tussenvoegsel = strtolower($_POST['tussenvoegsel']);
$achternaam = ucfirst ($_POST['achternaam']);
$rubriek = $_POST['rubriek'];
$upload_name=$_FILES["upload"]["name"];
$upload_type=$_FILES["upload"]["type"];
$upload_size=$_FILES["upload"]["size"];
$upload_temp=$_FILES["upload"]["tmp_name"];
$bedrijf = ucfirst ($_POST['bedrijf']);
$slogan = ucfirst ($_POST['slogan']);
$adres = ucfirst ($_POST['adres']);
$postcode = strtoupper ($_POST['postcode']);
$plaats = ucfirst ($_POST['plaats']);
$telefoon = $_POST['telefoon'];
$email = $_POST['email'];
$website = strtolower($_POST['website']);
$soort = $_POST['soort'];

{
$fp = fopen($upload_temp, "rb");
$file = fread($fp, $upload_size);

$file = chunk_split(base64_encode($file));
$num = md5(time());

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=".$num."\r\n";
$headers .= "--$num\r\n";

$headers .= "Message-ID: <".gettimeofday()." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";

$headers .= "Content-Type:".$upload_type." ";
$headers .= "name=\"".$upload_name."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$upload_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";

if($_POST['robot'] != "") {
echo 'U bent een robot.';
}

else {

// body voor de email opmaken
$body = "";
$body .= "Voorletters: ";
$body .= "\n";
$body .= $voorletters;
$body .= "\n";
$body .= "\n";
Etc...

$formsent = mail($ontvanger, $headers, $hoofd, $body, 'From:<' . $email . '>');
fclose($fp);

if ($formsent){

$body = "";
$body .= "Geachte heer / mevrouw $tussenvoegsel $achternaam,";
$body .= "\n";
$body .= "\n";
Etc...

$verzender = "mijn email";

mail($email, $hoofd, $headers, $body, 'From:<' . $verzender . '>');
fclose($fp);

header('Location: http://www.domeinnaam.nl/bedankt.html';);

}

else{
header('Location: http://www.domeinnaam.nl/foutmelding.html';); }
}
}
?>
regel 1:

NETJES SCRIPTEN

is dit niet veel beter leesbaar?


<?php
 
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	$ontvanger = "mijn email";
	$hoofd = "onderwerp";
	$voorletters = strtoupper ($_POST['voorletters']);
	$tussenvoegsel = strtolower($_POST['tussenvoegsel']);
	$achternaam = ucfirst ($_POST['achternaam']); 
	$rubriek = $_POST['rubriek'];
	$upload_name = $_FILES["upload"]["name"];
	$upload_type = $_FILES["upload"]["type"];
	$upload_size = $_FILES["upload"]["size"];
	$upload_temp = $_FILES["upload"]["tmp_name"];
	$bedrijf = ucfirst ($_POST['bedrijf']); 
	$slogan = ucfirst ($_POST['slogan']);
	$adres = ucfirst ($_POST['adres']); 
	$postcode = strtoupper ($_POST['postcode']); 
	$plaats = ucfirst ($_POST['plaats']);
	$telefoon = $_POST['telefoon'];
	$email = $_POST['email'];
	$website = strtolower($_POST['website']);
	$soort = $_POST['soort'];

	$fp = fopen($upload_temp, "rb");
	$file = fread($fp, $upload_size);
	
	$file = chunk_split(base64_encode($file));
	$num = md5(time());
	
	$headers  .= "MIME-Version: 1.0\r\n";
	$headers  .= "Content-Type: multipart/mixed; ";
	$headers  .= "boundary=".$num."\r\n";
	$headers  .= "--$num\r\n";
	
	$headers .= "Message-ID: <".gettimeofday()." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
	$headers .= "X-Mailer: PHP v".phpversion()."\r\n";
	
	$headers  .= "Content-Type:".$upload_type." ";
	$headers  .= "name=\"".$upload_name."\"r\n";
	$headers  .= "Content-Transfer-Encoding: base64\r\n";
	$headers  .= "Content-Disposition: attachment; ";
	$headers  .= "filename=\"".$upload_name."\"\r\n\n";
	$headers  .= "".$file."\r\n";
	$headers  .= "--".$num."--";

	if($_POST['robot'] != "")
	{
		echo 'U bent een robot.';                    
	}
	else
	{  
		// body voor de email opmaken
		$body = "";
		$body .= "Voorletters: ";
		$body .= "\n";
		$body .= $voorletters;
		$body .= "\n";
		$body .= "\n";
	
		$formsent = mail($ontvanger, $headers, $hoofd, $body, 'From:<' . $email . '>');
		fclose($fp);
		
		if ($formsent)
		{
			$body = "";
			$body .= "Geachte heer / mevrouw $tussenvoegsel $achternaam,";
			$body .= "\n";
			$body .= "\n";
			 
			$verzender = "mijn email";
			
			mail($email, $hoofd, $headers, $body, 'From:<' . $verzender . '>');
			fclose($fp);
	  
			header('Location: http://www.domeinnaam.nl/bedankt.html');
	 
		}
		else
		{
			header('Location: http://www.domeinnaam.nl/foutmelding.html');
		}
	}
}
?>
Waarschijnlijk wel, maar voor mij is het allebei abracadabra, omdat ik nog nooit PHP geleerd heb.
Maar zelfs nu het netjes staat, blijft het hetzelfde niet werkende script, toch?
Zou je me ook kunnen vertellen waar de fouten zitten?

Het punt is niet dat er fouten inzitten al zitten die er misschien ook wel in, je bent met een blinddoek om aan het autorijden. Misschien moet je toch eens de moeite nemen om eerst iets over php te leren. kijk bijvoorbeeld eens hier: http://phptuts.nl/view/39/

Maar als eerste, wat zou je graag willen bereiken met dit script?
Als ik de tijd zou hebben, maar...
Op dit moment wil ik gewoon even verder met m'n site en wat ik wil bereiken is dat het formulier verzonden wordt naar mij en naar de verzender en als de verzender een bestand toevoegt dat dat ook naar mij mee verzonden wordt.
Ben al dagen bezig met dit script, dus o me nu weer helemaal opnieuw te gaan verdiepen.
Wil je helpen?
begin dan met de file upload want dat is het meest complex. denk aan de maximale omvang dat bestanden mogen hebben en de toegestane extensies. hier wordt een upload script stapgewijs beschreven
http://www.tizag.com/phpT/fileupload.php. als dat werkt dan zijn het toevoegen van de overige forumulier velden kinderspel.
Shamrock Modelbouw op 07/09/2013 10:32:28

Als je helemaal geen php kent, kun je dan niet beter een compleet script gebruiken?


Dat is nu precies wat hier gebeurt en zie het resultaat. knippen en plakken en dan zeggen hee het werkt niet. Iedere dag lees je hier op het forum: hee ik heb dit script gevonden op internet maar het werkt niet bla bla bla.

Als je dwars door china wilt trekken is het toch wel handig als je een paar woordjes van die taal kent.

Naar een voorbeeld kijken is niets mis maar dan moet je wel nieuwsgierig zijn en denken hee hoe werkt dit? Maar met domweg kopiëren en plakken sla je bij mij de plank mis.
Daarnaast is dat script zo'n 10 jaar oud.
Doorgaans zou ik niet zo'n oud script adviseren (zeker niet als het gaat om alleen copy/paste).

Reageren