Hulp bij PHP afhandelings file....?

Status
Niet open voor verdere reacties.

richard5000

Gebruiker
Lid geworden
24 mrt 2012
Berichten
161
Weet iemand toevallig hoe ik een checkbox (uit het html contactformulier) en uiteraard ook de waarde zoals bijvoorbeeld "ik wil meer informatie over..." en als dan iemand een vinkje erachter zet dat ik dit kan zien in mij afhandelings PHP script..?

Heb al veel geprobeerd, maar krijg het niet voor elkaar, dus iemand een idee....

Hieronder het script, alvast bedankt.

PHP:
<?php
$naar = 'info@mijndomeinnaam.nl'; // Waar moet het naartoe?
$onderwerp = 'Contactformulier (je site)'; // Het onderwerp van het bericht
 
// Header instellen, zodat nl2br() werkt
$headers = "MIME-version: 1.0\r\n"; 
$headers .= "content-type: text/html;charset=utf-8\r\n";
 
if(isset($_POST['versturen'])) // Als het formulier verzonden is door op de verzend knop te klikken
{
	$voornaam = trim($_POST['voornaam']); // Alle overbodige spaties uit het voornaam veld verwijderen
	$achternaam = trim($_POST['achternaam']); // Alle overbodige spaties uit het achternaam veld verwijderen
	$email = trim($_POST['email']); // Alle overbodige spaties uit het email veld verwijderen
	$bericht = trim($_POST['bericht']); // Alle overbodige spaties uit het bericht veld verwijderen
	$fout = false; // Om te kijken straks of er wat fout is
 
	if(empty($voornaam)) // Als het voornaam veld niet is ingevuld
	{
		print '<p>Helaas, het voornaam veld is verplicht maar is nu niet ingevuld!</p>';
		$fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
	}
	if(empty($achternaam)) // Als het achternaam veld niet is ingevuld
	{
		print '<p>Helaas, het achternaam veld is verplicht maar is nu niet ingevuld!</p>';
		$fout = true; 
	}
	if(empty($email)) // Als het email veld niet is ingevuld
	{
		print '<p>Helaas, het email veld is verplicht maar is nu niet ingevuld!</p>';
		$fout = true;
	}
	if(!filter_var($email, FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
	{
		print '<p>Helaas, het email adres is niet correct!</p>';
		$fout = true;
	}
	if(empty($bericht)) // Als het bericht veld niet is ingevuld
	{
		print '<p>Helaas, het bericht veld is verplicht maar is nu niet ingvuld!</p>';
		$fout = true;
	}
 
	if($fout == false) // Als er niks fout is (alles is dus netjes ingevuld)
	{
		$headers .= 'From: ' . $voornaam . ' ' . $achternaam . '<' . $email . '>'; // Een afzender instellen zodat je kan reageren.
 
		if(mail($naar, $onderwerp, nl2br($bericht), $headers))
		{
			print '<p>Het bericht is succesvol verzonden!</p>';
		}
		else
		{
			print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
		}
	}
}
?>
 
Laatst bewerkt:
Als ik het goed begrijp zijn dit je vragen:

1. Iemand moet een vakje kunnen selecteren in het formulier.

2. Hoe kan ik er voor zorgen dat het formulier goed verzend.

2 kan ik zo beantwoorden: Ik zie in je afhandeling niet staan dat je de php mail functie opvraagt, ook zie ik nergens SMTP staan.

1 is ook simpel. Zet dit in je HTML: <input type="checkbox" name="Naam naar keuze" value="iets">
 
Hoi Kloentje2,

Ik ben een leek en heb vandaag met moeite een formulier (html) en een verzendscript werkend gekregen, klopt inderdaad wil ik graag in mijn verzendscript dat hij in de mail naar mij toe laat zien dat iemand een vinkje heeft gezet bij bijvoorbeeld workshop (dan checkbox) of ik wil meer informatie over (dan checkbox).

De vraag over mailfunctie en smtp snap ik niet, sorry! ik werk met een NAS thuis waar ik roundcubemail op heb draaien en de basis werkt, via de actie bij html pagina roep ik formulierverzenden.php aan (in een iframe) en dit werkt wel goed, maar wil nu nog de info in mijn mailbox krijgen als iemand ook een vinkje zet in mijn html formulier.

Heb zojuist iets uitgeprobeerd, maar dan werkt hij niet meer.

Zit nu even vast,

Gr. Richard
 
HTML:
Wilt u meer informatie over dit en dat enz?
<input type="checkbox" name="informatie" value="ja" />
<input type="checkbox" name="informatie" value="nee" />

PHP:
<?php

if(isset($_POST['informatie']) &&
   $_POST['informatie'] == 'ja')
{
    $informatie= 'ja wel informatie';
}
else
{
    $informatie = 'nee geen informatie';
}

Nu kun je dus de $informatie meesturen naar je mail en de waarde wordt of ja wel informatie of nee geen informatie, dan weet jij dus genoeg
 
Laatst bewerkt:
@Beetsma

Sorry, maar ben nogal leek, maar ik wil graag dat men alleen hoeft aan te vinken bv wokshop en dat ik dan de boodschap krijg Workshop: ja, ik wil meer informatie.

Heb mijn PHP nu aangepast, maar doet het nog niet, krijg nu alleen workshop: (hier staat niets ingevuld) in mijn mailbericht.

Hieronder mijn PHP zoals ik hem heb aangepast, wees vrij om te wijzigen.

PHP:
<?php

$mailsupport= "info@mijndomeinnaam.nl";
$titel=$_POST['onderwerp'];

// set datum 
        $datum = date("d.m.Y H:i"); 
// set ip 
        $ip = $_SERVER['REMOTE_ADDR']; 
// Bericht
$mssg = 
$mssg .= "Ingevuld Contact Formulier \n\n";
$mssg .= "Naam: " .$_POST['naam'] . "\n";
$mssg .= "Mail Adres: " .$_POST['mail'] . "\n";
$mssg .= "Onderwerp: " .$_POST['onderwerp'] . "\n";
$mssg .= "Workshop: " .$_POST['informatie'] . "\n";
$mssg .= "Bericht:" . "\n";
$mssg .= $_POST['bericht'] . "\n" . "\n";
$mssg .= "Dit bericht is verstuurd op $datum van het ip adres " . $ip . ".";
//Afzender
$headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">"; 

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

if(isset($_POST['informatie']) &&
   $_POST['informatie'] == 'ja')
{
    $informatie= 'ja wel informatie';
}
else
{
    $informatie = 'nee geen informatie';
}

if (empty($_POST['naam']) or empty($_POST['mail']) or empty($_POST['onderwerp']) or empty($_POST['bericht'])) { 
echo "U bent iets vergeten in te vullen !!<br> 
Klik <a href=\"java script:history.back(1)\">hier</a> om terug tegaan."; 

} else { 

mail ($mailsupport, $titel, $mssg, $headers);
header ("Refresh: 0; URL=verzonden.php"); 
}
}
?>

Alvast bedankt,
Groet,
Richard
 
PHP:
 $mssg .= "Workshop: " .$_POST['informatie'] . "\n";
moet worden:
PHP:
$mssg .= "Workshop informatie ? : " .$informatie ."\n";

en trouwens ik zou mijn stukje code boven de $mssg variabelen zetten

PHP:
//begin informatie ophalen

if(isset($_POST['informatie']) &&
   $_POST['informatie'] == 'ja')
{
    $informatie= 'ja wel informatie';
}
else
{
    $informatie = 'nee geen informatie';
}


//einde informatie ophalen
 
Ik heb het aangepast en krijg nu als feedback in mijn mail:

Ingevuld Contact Formulier

Naam: Richard
Mail Adres: xxxxxx@xxxxx.nl
Onderwerp: rust
Workshop informatie ? :
Bericht:
ererere

Dit bericht is verstuurd op 25.07.2012 13:15 van het ip adres 8xxxxxxxxx

Dus ik krijg wel mooi de opsomming, maar nog niet het antwoord ja of nee, wat doe ik fout?
 
heb je mijn code wel boven aan gezet ?

en dan tussen set ip en bericht
 
Hoi Beetsma,

Heb het nu neergezet zoals je aangaf en ik krijg onderstaand binnen of ik nu de het vinke aan of uit zet in beiden gevallen stuurt hij nee, etc.

Ingevuld Contact Formulier

Naam: Richard
Mail Adres: xxxxx@xxxxxxx.nl
Onderwerp: rust
Workshop informatie ? : nee geen informatie
Bericht:
ererere

Ben er bijna, want wat ik wil is een naam bv Worshop: met daarachter een aanvinkveldje en als men dit leeg laat (onaangevinkt) nee geen infromatie en als men het aanvinkt wel infomatie, dus in het formulier maar een hokje en geen twee..? kan dit en ziet de code dan ook of men het aanvikt ja of nee en wordt dit dan doorgegeven, zo ja, ben ik helemaal blij want dan heb ik wat ik zoek.

Alvast bedankt.

Gr.
Richard
 
Laatst bewerkt:
PHP:
if (!(isset $_POST['informatie'])) 
{
$informatie="Nee, geen informatie";
}
else
{
$informatie="Ja, wel informatie";
}

Ik denk dat dit wel moet lukken
 
HTML:
<input type="checkbox" name="informatie" value="ja" />

PHP:
if (!(isset $_POST['informatie'])) 
{
$informatie="Nee, geen informatie";
}
else
{
$informatie="Ja, wel informatie";
}

Ik denk dat dit wel moet lukken
 
@Beetsma, in het begin deed hij het niet, heb de if geprobeerd aan te passen, dit is mij gelukt (zie aangepaste code hieronder) en heb de check box op niet geselecteerd gezet en de tekst bij $informatie omgedraaid nu doet hij het wel, top enorm bedankt voor je hulp!!

Gr,
Richard

PHP:
if (isset ($_POST['informatie'])) 
{
$informatie="Ja, wel informatie";
}
else
{
$informatie="Nee, geen informatie";
}
 
Laatst bewerkt:
@Beetsma, Nog een brutale vraag, maar weet u ook hoe het werkt met een Drop-Down list?

Uiteraard ga ik ook zelf aan de slag, maar twee weten meer dan een zoals is gebleken.

HTML:
<select name="formselect1">
<option value="">In de ochtend</option>
<option value="">In de middag</option>
<option value="">Op zaterdag</option>
</select>

Ik denk PHP:
PHP:
if (isset($_POST['formselect1']))
{
$formselect= ????? 
}

En in mail naar voren komend:
$mssg .= "formselect: " .$formselect ."\n";

Dit is wat ik tot nu toe heb bedacht?

Gr. Richard
 
Laatst bewerkt:
HTML:
<form name="zelfde-waar-de-checkbox-inzit" method="post" action="<?php echo $_SERVER['PHP_SELF']?>"> <!--action is voor jou mischien weer anders natuurlijk	-->
	<select name="tijdstip">
             <option value="In de ochtend">In de ochtend</option>
             <option value="In de middag">In de middag</option>
             <option value="Op zaterdag">Op zaterdag</option>
	     <input type="submit" name="submit" value="gaan!">
        </select>
</form>
PHP:
<?php

//deze bovenaan 

$tijdstip=$_POST['tijdstip'];

// deze in je mssg

echo "waneer langskomen : &nbsp <b>$tijdstip</b>";	

?>

zoiets zou moeten lukken
 
Laatst bewerkt:
@Beetsma, ik heb een PHP file (send.PHP) wat voor de verzending zorgt.

Heb $tijdstip bovenaan gezet, maar het echo verhaal in mijn formulier werkt niet en moet ik ook niet zoiets als een if .... etc erin zetten.

Hieronder mijn PHP wellicht ziet u wat ik nog moet veranderen, uiteraard mag u het script ook aanpassen als dit makkelijker is, ondertussen blijf ik nog dingen uitproberen, alvast bedankt.

PHP:
<?php

$mailsupport= "info@mijndomeinnaam.nl";
$titel=$_POST['onderwerp'];
$tijdstip=$_POST['tijdstip'];

// set datum 
        $datum = date("d.m.Y H:i"); 
// set ip 
        $ip = $_SERVER['REMOTE_ADDR'];
        
if (isset ($_POST['informatie'])) 
{
$informatie="Ja, wel informatie";
}
else
{
$informatie="Nee, geen informatie";
}

// Bericht
$mssg = 
$mssg .= "Ingevuld Contact Formulier \n\n";
$mssg .= "Naam: " .$_POST['naam'] . "\n";
$mssg .= "Mail Adres: " .$_POST['mail'] . "\n";
$mssg .= "Onderwerp: " .$_POST['onderwerp'] . "\n";
$mssg .= "Workshop informatie ? : " .$informatie . "\n";
$mssg .= "Tijdstip: ".$_POST['tijdstip'] . "\n";
$mssg .= "Bericht:" . "\n";
$mssg .= $_POST['bericht'] . "\n" . "\n";
$mssg .= "Dit bericht is verstuurd op $datum van het ip adres " . $ip . ".";
//Afzender
$headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">"; 

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

if (empty($_POST['naam']) or empty($_POST['mail']) or empty($_POST['onderwerp']) or empty($_POST['bericht'])) { 
echo "U bent iets vergeten in te vullen !!<br> 
Klik <a href=\"java script:history.back(1)\">hier</a> om terug tegaan."; 

} else { 

mail ($mailsupport, $titel, $mssg, $headers);
header ("Refresh: 0; URL=verzonden.php"); 
}
}
?>
 
PHP:
<?php
 
$mailsupport= "info@mijndomeinnaam.nl";
$titel=$_POST['onderwerp'];

if (isset ($_POST['tijdstip'])) {
   $tijdstip=$_POST['tijdstip']
}
 
// set datum 
        $datum = date("d.m.Y H:i"); 
// set ip 
        $ip = $_SERVER['REMOTE_ADDR'];
        
if (isset ($_POST['informatie'])) 
{
$informatie="Ja, wel informatie";
}
else
{
$informatie="Nee, geen informatie";
}
 
// Bericht
$mssg = 
$mssg .= "Ingevuld Contact Formulier \n\n";
$mssg .= "Naam: " .$_POST['naam'] . "\n";
$mssg .= "Mail Adres: " .$_POST['mail'] . "\n";
$mssg .= "Onderwerp: " .$_POST['onderwerp'] . "\n";
$mssg .= "Workshop informatie ? : " .$informatie . "\n";
$mssg .= "Tijdstip: ".$_POST['tijdstip'] . "\n";
$mssg .= "Bericht:" . "\n";
$mssg .= $_POST['bericht'] . "\n" . "\n";
$mssg .= "Dit bericht is verstuurd op $datum van het ip adres " . $ip . ".";
//Afzender
$headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">"; 
 
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
 
if (empty($_POST['naam']) or empty($_POST['mail']) or empty($_POST['onderwerp']) or empty($_POST['bericht'])) { 
echo "U bent iets vergeten in te vullen !!<br> 
Klik <a href=\"java script:history.back(1)\">hier</a> om terug tegaan."; 
 
} else { 
 
mail ($mailsupport, $titel, $mssg, $headers);
header ("Refresh: 0; URL=verzonden.php"); 
}
}
?>


je action word: action="send.php">
 
Heb e.e.a. aangepast en krijg onderstaande foutmelding, heb al getracht zaken aan te passen, om bijvoorbeeld de } weg te halen, maar lukt niet helemaal?

Parse error: syntax error, unexpected '}' in /volume1/web/rvvweb/for/send.php on line 9 (dit is bij mij ondestaand in PHP file):

if (isset ($_POST['tijdstip']))
{
$tijdstip=$_POST['tijdstip']
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan