php-script werkt niet (mailer)

Status
Niet open voor verdere reacties.

looije

Gebruiker
Lid geworden
2 apr 2002
Berichten
203
ik kom er niet uit..

een php-script om een bestelformulier te mailen.

bestel forumulier is te vinden op http://www.hok-deklup.nl/test/bestellijst.html

volgens mij zou dit moet werken, maar ik krijg steeds een error op line:40

PHP:
<?
// met 2 backwardslaches is commentaar
// we gaan eerst de gegevens uit het verzonen vorm trekken en deze in variabelen zetten


// eerst controleren we of het veld wel is ingevult 
// doen we met    if (isset($_POST['Naam'])) {}
// Als hij wel gevult is zal php de variabelen vullen door $naam = $_POST['Naam']; uit te voeren



if (isset($_POST['Naam'])) {  $naam = $_POST['naam']; }
if (isset($_POST['adres'])) {  $adres = $_POST['adres']; }
if (isset($_POST['postcode1'])) {  $postcode1 = $_POST['postcode1']; }
if (isset($_POST['postcode2'])) {  $postcode2 = $_POST['postcode2']; }
if (isset($_POST['woonplaats'])) {  $woonplaats = $_POST['woonplaats']; }
if (isset($_POST['tel_nummer'])) {  $tel_nummer = $_POST['tel_nummer']; }
if (isset($_POST['email'])) {  $email = $_POST['email']; }
if (isset($_POST['pakketten'])) {  $pakketten = $_POST['pakketten']; }
if (isset($_POST['bar'])) {  $bar = $_POST['bar']; }
if (isset($_POST['statafels'])) {  $statafels = $_POST['statafels']; }
if (isset($_POST['barkrukken'])) {  $barkrukken = $_POST['barkrukken']; }
if (isset($_POST['planten'])) {  $planten = $_POST['planten']; }
if (isset($_POST['wc'])) {  $wc = $_POST['wc']; }
if (isset($_POST['sfeerverlichting'])) {  $sfeerverlichting = $_POST['sfeerverlichting']; }


if (!isset($_POST['naam'])) {}
{	
	echo "u heeft uw naam nog niet ingevult";   
}
if (!isset($_POST['email'])) {}
{	
	echo "u heeft uw email adres nog niet ingevult";   
}
if (!isset($_POST['tel_nummer'])) {}
{	
	echo "u heeft uw telefoon nummer nog niet ingevult";   
}
else 
	{
	// De beveiliging van het script !!! hier moet je de locatie van het form opgeven! anders kan elke mafkees gebruik maken om je te spammen
	if ($_server['PHP_SELF'] == "bestellijst.html" )
		{		
		// het daatwerkelijke gemail
		mail("looije@hok-deklup.nl", "bestelling" , " De bestelling wordt gedaan door: \n \n 
Naam: $naam \n 
adres: $adres \n 
postcode1: $postcode1 \n 
postcode2: $postcode2 \n
woonplaats: $woonplaats \n
tel. nummer: $tel_nummer \n
email: $email \n \n

Deze persoon besteld
pakket: $pakketten \n \n
lossen artikkelen \n
bar: $bar \n
statafels: $statafels \n
barkrukken: $barkrukken \n
planten: $planten \n
wc: $wc \n
sfeerverlichting: $sfeerverlichting" );



		echo "<center><h1>Uw bestelling is verzonden, \n wij zullen zo spoedig mogenlijk contact met u opnemen,</h1></center> ";
		echo "<br /><br /><br /><i><b>hyperlink om terug te gaan blabla</b></i>";
		}
		else 
		{ 
		echo "Er is geen bestelling van u opgenomen \n Wilt u toch wat bestellen, probeert u het dan nog een keer."; 
		}
	}

?>

wie ziet wat hier niet klopt?
 
Je checks kloppen niet.
Jij gebruikt:
PHP:
if (!isset($_POST['naam'])) {} 
{     
    echo "u heeft uw naam nog niet ingevult";    
}
Wat zou moeten zijn:
PHP:
if (!isset($_POST['naam'])) 
{     
    echo "u heeft uw naam nog niet ingevult";    
}

Dus je hele script zou moeten worden:
PHP:
<? 
// met 2 backwardslaches is commentaar 
// we gaan eerst de gegevens uit het verzonen vorm trekken en deze in variabelen zetten 


// eerst controleren we of het veld wel is ingevult 
// doen we met    if (isset($_POST['Naam'])) {} 
// Als hij wel gevult is zal php de variabelen vullen door $naam = $_POST['Naam']; uit te voeren 



if (isset($_POST['Naam'])) {  $naam = $_POST['naam']; } 
if (isset($_POST['adres'])) {  $adres = $_POST['adres']; } 
if (isset($_POST['postcode1'])) {  $postcode1 = $_POST['postcode1']; } 
if (isset($_POST['postcode2'])) {  $postcode2 = $_POST['postcode2']; } 
if (isset($_POST['woonplaats'])) {  $woonplaats = $_POST['woonplaats']; } 
if (isset($_POST['tel_nummer'])) {  $tel_nummer = $_POST['tel_nummer']; } 
if (isset($_POST['email'])) {  $email = $_POST['email']; } 
if (isset($_POST['pakketten'])) {  $pakketten = $_POST['pakketten']; } 
if (isset($_POST['bar'])) {  $bar = $_POST['bar']; } 
if (isset($_POST['statafels'])) {  $statafels = $_POST['statafels']; } 
if (isset($_POST['barkrukken'])) {  $barkrukken = $_POST['barkrukken']; } 
if (isset($_POST['planten'])) {  $planten = $_POST['planten']; } 
if (isset($_POST['wc'])) {  $wc = $_POST['wc']; } 
if (isset($_POST['sfeerverlichting'])) {  $sfeerverlichting = $_POST['sfeerverlichting']; } 


if (!isset($_POST['naam']))  
{     
    echo "u heeft uw naam nog niet ingevult";    
} 
if (!isset($_POST['email']))  
{     
    echo "u heeft uw email adres nog niet ingevult";    
} 
if (!isset($_POST['tel_nummer'])) 
{     
    echo "u heeft uw telefoon nummer nog niet ingevult";    
} 
else 
    { 
    // De beveiliging van het script !!! hier moet je de locatie van het form opgeven! anders kan elke mafkees gebruik maken om je te spammen 
    if ($_server['PHP_SELF'] == "bestellijst.html" ) 
        {         
        // het daatwerkelijke gemail 
        mail("looije@hok-deklup.nl", "bestelling" , " De bestelling wordt gedaan door: \n \n 
Naam: $naam \n 
adres: $adres \n 
postcode1: $postcode1 \n 
postcode2: $postcode2 \n 
woonplaats: $woonplaats \n 
tel. nummer: $tel_nummer \n 
email: $email \n \n 

Deze persoon besteld 
pakket: $pakketten \n \n 
lossen artikkelen \n 
bar: $bar \n 
statafels: $statafels \n 
barkrukken: $barkrukken \n 
planten: $planten \n 
wc: $wc \n 
sfeerverlichting: $sfeerverlichting" ); 



        echo "<center><h1>Uw bestelling is verzonden, \n wij zullen zo spoedig mogenlijk contact met u opnemen,</h1></center> "; 
        echo "<br /><br /><br /><i><b>hyperlink om terug te gaan blabla</b></i>"; 
        } 
        else 
        { 
        echo "Er is geen bestelling van u opgenomen \n Wilt u toch wat bestellen, probeert u het dan nog een keer."; 
        } 
    } 

?>
 
ha oké daar had ik idd al mijn bedenkingen over..

maar nu doet tie het nog steeds niet. ook al vul ik de velden: naam, tel-nummer en email in. krijg ik nog het bericht dat het niet is ingevult.

hij zou dan moeten verzenden.

(er staat trouwens een keer naam met een N das ook veranderd, maar nog steeds geen werkend script)
 
Laatst bewerkt:
Probeer bij de checks isset() eens te vervangen door empty() , bijv.
PHP:
if (!isset($_POST['naam']))   
{      
    echo "u heeft uw naam nog niet ingevult";     
}
wordt:
PHP:
if (empty($_POST['naam']))   
{      
    echo "u heeft uw naam nog niet ingevult";     
}
 
héé kijk we zijn al een stukje verder....
heb in het formulier (enctype="text/plain") weg gehaald


krijg nu de teks "Er is geen bestelling van u opgenomen Wilt u toch wat bestellen, probeert u het dan nog een keer"

van de laatste echo dus.

de velden controleerd hij nu goed alleen het mailen gaat nog niet... miss dat er in de beveiliging van het script wat fout zit.
we zoeken verder.
 
Laatst bewerkt:
looije zei:
héé kijk we zijn al een stukje verder....
heb in het formulier (enctype="text/plain") weg gehaald


krijg nu de teks "Er is geen bestelling van u opgenomen Wilt u toch wat bestellen, probeert u het dan nog een keer"

van de laatste echo dus.

de velden controleerd hij nu goed alleen het mailen gaat nog niet... miss dat er in de beveiliging van het script wat fout zit.
we zoeken verder.
Je controleert of de naam van het bestand (script) waar je nu in zit gelijk is aan bestellijst.html ($_server['PHP_SELF'] == "bestellijst.html"). Dit is niet het geval, aangezien je in een .php bestand zit ;)

Ik zou gewoon die beveiliging eruit slopen, heeft geen nut :)
 
ja ik weet, heb al van alles geprobeert. de hele riedel heb ik er al neer gekwakt. miss dat het php5 is en mijn host gaat nog niet zo ver.

heb nu idd de beveiliging er maar uit gegooid. en het loopt als een trein. trouwens ook bij de controle de tweede en de derde if veranderd in elseif. anders doet tie het nog niet.

(voor degene die het willen gebruiken hier nog even het werkende script)

PHP:
<?
// met 2 backwardslaches is commentaar 
// we gaan eerst de gegevens uit het verzonen vorm trekken en deze in variabelen zetten 


// eerst controleren we of het veld wel is ingevult 
// doen we met    if (isset($_POST['Naam'])) {} 
// Als hij wel gevult is zal php de variabelen vullen door $naam = $_POST['Naam']; uit te voeren 



if (isset($_POST['naam'])) {  $naam = $_POST['naam']; } 
if (isset($_POST['adres'])) {  $adres = $_POST['adres']; } 
if (isset($_POST['postcode1'])) {  $postcode1 = $_POST['postcode1']; } 
if (isset($_POST['postcode2'])) {  $postcode2 = $_POST['postcode2']; } 
if (isset($_POST['woonplaats'])) {  $woonplaats = $_POST['woonplaats']; } 
if (isset($_POST['tel_nummer'])) {  $tel_nummer = $_POST['tel_nummer']; } 
if (isset($_POST['email'])) {  $email = $_POST['email']; } 
if (isset($_POST['pakketten'])) {  $pakketten = $_POST['pakketten']; } 
if (isset($_POST['bar'])) {  $bar = $_POST['bar']; } 
if (isset($_POST['statafels'])) {  $statafels = $_POST['statafels']; } 
if (isset($_POST['barkrukken'])) {  $barkrukken = $_POST['barkrukken']; } 
if (isset($_POST['planten'])) {  $planten = $_POST['planten']; } 
if (isset($_POST['wc'])) {  $wc = $_POST['wc']; } 
if (isset($_POST['sfeerverlichting'])) {  $sfeerverlichting = $_POST['sfeerverlichting']; } 


if (empty($_POST['naam']))   
{      
    echo "u heeft uw naam nog niet ingevult";     
} 
elseif (empty($_POST['te_nummer']))   
{      
    echo "u heeft uw telefoon nummer nog niet ingevult";     
} 
elseif (empty($_POST['email'])) 
{      
    echo "u heeft uw email adres nog niet ingevult";     
} 
    else 
    { 
    // het daatwerkelijke gemail 
    mail("email@adres.nl", "bestelling" , " De bestelling wordt gedaan door: \n \n 
    Naam: $naam \n 
    adres: $adres \n 
    postcode1: $postcode1 \n 
    postcode2: $postcode2 \n 
    woonplaats: $woonplaats \n 
    tel. nummer: $tel_nummer \n 
    email: $email \n \n 
    Deze persoon besteld 
    pakket: $pakketten \n \n 
    lossen artikkelen \n 
    bar: $bar \n 
    statafels: $statafels \n 
    barkrukken: $barkrukken \n 
    planten: $planten \n 
    wc: $wc \n 
    sfeerverlichting: $sfeerverlichting" ); 



    echo "<center><h1>Uw bestelling is verzonden, <br/> wij zullen zo spoedig mogenlijk contact met u opnemen,</h1></center> ";
    echo "<br /><br /><br /><i><b>hyperlink om terug te gaan blabla</b></i>"; 
    } 
?>
 
Laatst bewerkt:
site zier er aardig uit. foto's enzo moeten er nog wel op.

hij werkt nu helemaal goed?


simpele dingen kunnen ook werken:thumb:
 
alles werkt perfect.
en idd, het was de bedoeling het simpel en overzichtelijk te houden, dat is wel gelukt :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan