Computergenie.nl    

Computergenie.nl
  Registreer!
  Registreer
Homepage
Home
Top 10
Top 10
Forum
Forum
Prijsindex
Prijsindex
Nieuws
Nieuws
Downloads
Downloads
Hulp & Uitleg
Hulp & Uitleg
Uitgebreid zoeken
 
  Zoeken •  Gebruikerslijst  •  Gebruikersgroepen   •  Registreer  •  Profiel  •  Log in om je privé berichten te bekijken  •  Ben je al lid?  Log in! 
Ben je al lid?  Log in!
Kies uw onderwerp:
Computer-Café
Knowledge Base
Hardware
Software
Internet & netwerken
Games
Scripten & programmeren
Digitale fotografie & video
Multimedia
GSM & mobile
Sitecheck & links
Officiële mededelingen
Feedback
ISL Light
Aanbiedingen
Markt-plaats
Hulp & Uitleg

Sponsors:

Cloud VPS

Relaties:

PC Beveiliger
Forum » Scripten & programmeren » probleem met contactformulier
probleem met contactformulier
Ga naar Pagina 1, 2  Volgende

Nieuw onderwerpNieuw antwoord
frehen Bericht Geplaatst op 16-11-2010 Reageer met quote
Senior lid
Ik heb helaas weinig kennis van PHP, maar voor een contactformulier zou ik wel een controlebestand in de vorm van contact.php moeten gebruiken, zodat het formulier enigszins spamfree is en niet zomaar zonder invoer van gegevens kan worden verstuurd. Dit ter inleiding.

Website - contactpagina: (met daarop een contactformulier in een i-frame)
http://www.work-with-it.nl/HPwebshop/index.php?action=extra&extra=A_contact&lang=NL

Dat contactformulier wordt gecontroleerd door een contact.php, code:
Code:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" x-undefined>
<title>ContactPHP</title>
</head>

<body>

<?PHP
if(!empty($_POST['Naam']) && !empty($_POST['E-mail']) && !empty($_POST['Telefoon']) && !empty($_POST['Adres']) && !empty($_POST['Postcode/woonplaats']) && !empty($_POST['Bedrijfsnaam'])) {
    $to = "verkoop@workwithit.nl";
    $subject = "Contactformulier";

    $mess = "\n\nNaam: ".$Naam."\nE-mail: ".$E-mail."\nTelefoon: ".$Telefoon."\nAdres: ".$Adres."\nPostcode/woonplaats: ".$Postcode/woonplaats."\nBedrijfsnaam: ".$Bedrijfsnaam."\nVraag/opmerking: ".$Vraag/opmerking."" ;

    mail ($to, $subject, $mess, $extra); header( 'Location: /index.php?action=extra&extra=A_contact&lang=NL target=I1 "contactdank_nl.htm"' ); } else { header( 'Location:
/index.php?action=extra&extra=A_contact&lang=NL target=I1 "contactonvolledig_nl.htm"' ); } ?>

</body>

</html>


Ik krijg foutmeldingen op de pagina zelf. Probeer maar eens alleen de naam in te vullen en te versturen, dan zou de pagina contactonvolledig_nl.htm in beeld moeten verschijnen, maar in plaats daarvan krijg ik een foutmelding over de header die niet kan worden aangepast ? Ikke nie snappen.
Ik beperk me even tot de nederlandse contactpagina, want bij de buitenlandse krijg ik strings fouten, maar als ik een oplossing kan krijgen van iemand hoe mijn contact.php eruit moet zien, kom ik er denk ik ook wel uit met die buitenlandse...

Alvast mijn hartelijke dank.




grtjs
frehen
renevanh Bericht Geplaatst op 16-11-2010 Reageer met quote
Beheerder
Code:

header( 'Location: /index.php?action=extra&extra=A_contact&lang=NL target=I1 "contactonvolledig_nl.htm"' );


daar gaat een en ander fout met aanhalingstekens...

Code:

header("Location: index.php?action=extra&extra=A_contact&lang=NL");


Dat is een geldig commando, de user wordt naar de index.php gestuurd
Wat je doet met target is me niet helemaal duidelijk (geen gedocumenteerde parameter en volgens mij sowieso geen parameter van header() ) en moet sowieso niet tussen de Location haakjes staan denk ik. Vervolgens contactonvolledig_nl.htm aanroepen kan niet, je kan de gebruiker maar naar één pagina sturen.

De beste oplossing is denk ik met PHP een javascriptje echo'en wat vervolgens de content van het iFrame laad. Met PHP in een specifiek frame schrijven is voor zover ik weet erg lastig, aangezien PHP dat hele iFrame verhaal helemaal niet snapt.




Keyboard not found, press F1 to continue...
frehen Bericht Geplaatst op 16-11-2010 Reageer met quote
Senior lid
Ik had dus al geen i-frame moeten gebruiken ....
Ik heb dit aangereikt gekregen, maar weet er dus duidelijk geen raad mee.

Nou, als men dus het gehele formulier goed invult komt er een
bedankpagina in beeld, contactdank_nl.htm, daar probeer ik dus naar te
verwijzen in de contact.php... en niet volledig ingevuld komt er een
andere htm....
maar dat wilde ik dan laten verschijnen in datzelfde i-frame I1... maar dat
gaat dus niet werken in php...

En als ik nou niet verwijs naar index.php maar direct naar die htm ?
Gaat dát werken ? Of ook niet omdat het niet aan de headertoestand
tegemoet komt...




grtjs
frehen
renevanh Bericht Geplaatst op 16-11-2010 Reageer met quote
Beheerder
Dat kan, maar dan krijg je dus een nieuwe pagina in beeld met de info dat de boel onvolledig is.

Wat ik meestal doe: Wanneer de boel niet goed is teruggaan naar de invulpagina (mbv header) en dmv een session variabele een fout mee te geven die ik dan in het contactformulier erbij krijg.
Werkt erg makkelijk.




Keyboard not found, press F1 to continue...
vosManz Bericht Geplaatst op 16-11-2010 Reageer met quote
Technische man
Het probleem lijkt me hier niet perce het iframe. Wat je nu doet, is headers versturen (location) als deze al verstuurd zijn. Je output namelijk eerst HTML code, en voordat dat gebeurt moeten de headers al verstuurd zijn.

Je moet dus simpelweg je HTML code verwijderen (en inderdaad de location aanpassen, want die klopte ook niet). Het wordt dan dus:

Code:
<?PHP
if(!empty($_POST['Naam']) && !empty($_POST['E-mail']) && !empty($_POST['Telefoon']) && !empty($_POST['Adres']) && !empty($_POST['Postcode/woonplaats']) && !empty($_POST['Bedrijfsnaam']))
{
   $to = "verkoop@workwithit.nl";
   $subject = "Contactformulier";
   $mess = "\n\nNaam: ".$Naam."\nE-mail: ".$E-mail."\nTelefoon: ".$Telefoon."\nAdres: ".$Adres."\nPostcode/woonplaats: ".$Postcode/woonplaats."\nBedrijfsnaam: ".$Bedrijfsnaam."\nVraag/opmerking: ".$Vraag/opmerking."" ;

   mail ($to, $subject, $mess, $extra);
   header( 'Location: contactdank_nl.htm' );
}
else
{
header( 'Location: contactonvolledig_nl.htm' );
}
?>


Zie voor meer info: http://nl3.php.net/manual/en/function.header.php




::: vosManz :::
frehen Bericht Geplaatst op 17-11-2010 Reageer met quote
Senior lid
Hey Vosmanz ! Er staat niet voor niets "Technisch man" bij je naam...
en bij mij niet voor niets "Senior lid"... haha

Dank voor je antwoord.
Het blokje code wat je opgeeft IS dan dus mijn contact.php ? Al die
toeters en bellen van HTML en HEAD/BODY laat ik weg en dit is het dan.

Eerlijk gezegd is het verder koeterwaals voor me, maar da's dan ook de
reden waarom ik me tot ons forum heb gewend.

Als je het niet erg vind kijk ik de link naar meer info over de functie van de
header even later, maar ga uiteraard eerst kijken of dit werkt. Ik dank je vooralsnog voor je kijk erop (rene ook natuurlijk) maar ik moet dat in de
praktijk zien. De layout is wellicht niet zo super allemaal, maar als het
maar werkt is het eerste voornaamste. Dus ik ga even proberen, wellicht
dat ik morgen pas weer wat van me laat horen, ok ? Dank dank.




grtjs
frehen
frehen Bericht Geplaatst op 17-11-2010 Reageer met quote
Senior lid
Ik sta paf !!!!

Hoewel... maar eerst dit. Ik vul het formulier niet volledig in, alleen het
naamveld vul ik en ik druk op versturen.... wat denk je ? Het werkt !!!
De htm die ik klaar heb staan voor als het onvolledig is ingevuld komt
netjes in de i-frame te staan (ik moet nog even verwijzen naar de
terug knop van Internet Explorer in de tekst, maar goed..)

DUS, ook maar meteen het formulier volledig ingevuld en dan op
versturen klikken... AI, foutmelding ... zie hieronder... (er komt wel een
mail binnen op het opgegeven emailadres, maar er staat niets in...d.w.z.
de hoofdvelden staan erin, maar wat erop is ingevuld is is niet overge-
nomen)

Foutcode:
Warning: Division by zero in /public/sites/www.work-with-it.nl/HPwebshop/contact.php on line 6

Warning: Division by zero in /public/sites/www.work-with-it.nl/HPwebshop/contact.php on line 6

Warning: Cannot modify header information - headers already sent by
(output started at /public/sites/www.work-with-it.nl/HPwebshop/contact.php:6)
in /public/sites/www.work-with-it.nl/HPwebshop/contact.php on line 9

Waarom is dit dan (?), zoals gezegd, IK weet echt niet wat er gebeurt,
maar was al een halve meter van mijn burostoel bij het eerste succes !!

Waarvoor uiteraard dank, veel dank. Ik zit op een voor mij onontgonnen
gebied, dus ben bijzonder blij met alle hulp !

Krijgen we dit ene ook nog opgelost ?? Hartstikke graag en aub natuurlijk.




grtjs
frehen
frehen Bericht Geplaatst op 17-11-2010 Reageer met quote
Senior lid
Als de info uit de formuliervelden niet wordt overgenomen... is er ook iets
mis met mijn contactformulier... denk ik dan... Vandaar dat ik even de
code hiervan ook laat zien.... helaas nogal wat code omdat ik (anno 2010
- met schaamrood - ) nog steeds Frontpage gebruik, ben nog niet
toegekomen aan iets anders, maar dat gaat wel veranderen...

Code:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>contactform</title>
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
</head>

<body text="#FFFFFF" bgcolor="#1E2250">
<font size="2" color="#ffffff" face="Verdana">
<form action="contact.php" method="post">
Naam </font>
<font size="2" color="#FF0000" face="Verdana">
*</font><font size="2" color="#ffffff" face="Verdana"><br> <input name="Naam" type="text" id="Naam"> <br>
</font>
<font color="#ffffff" face="Verdana" style="font-size: 6pt">
<br>
</font>
<font size="2" color="#ffffff" face="Verdana">
E-mail </font>
<font size="2" color="#FF0000" face="Verdana">
*</font><font size="2" color="#ffffff" face="Verdana"><br> <input name="E-mail" type="text" id="E-mail"> <br>
</font>
<font color="#ffffff" face="Verdana" style="font-size: 6pt">
<br>
</font>
<font size="2" color="#ffffff" face="Verdana">
Telefoon </font>
<font size="2" color="#FF0000" face="Verdana">
*</font><font size="2" color="#ffffff" face="Verdana"><br> <input name="Telefoon" type="text" id="Telefoon"> <br> </font>
<font color="#ffffff" face="Verdana" style="font-size: 6pt"><br>
</font>
<font size="2" color="#ffffff" face="Verdana">Adres </font>
<font size="2" color="#FF0000" face="Verdana">
*</font><font size="2" color="#ffffff" face="Verdana"><br> <input name="Adres" type="text" id="Adres"> <br>
</font>
<font color="#ffffff" face="Verdana" style="font-size: 6pt">
<br>
</font>
<font color="#ffffff" face="Verdana" size="2">
Postcode/woonplaats </font>
<font size="2" color="#FF0000" face="Verdana">
*</font><font size="2" color="#ffffff" face="Verdana"><br> <input name="Postcode/woonplaats" type="text" id="Postcode/woonplaats"> <br>
</font>
<font color="#ffffff" face="Verdana" style="font-size: 6pt">
<br>
</font>
<font size="2" color="#ffffff" face="Verdana">
Bedrijfsnaam </font>
<font size="2" color="#FF0000" face="Verdana">
*</font><font size="2" color="#ffffff" face="Verdana"><br> <input name="Bedrijfsnaam" type="text" id="Bedrijfsnaam"> <br>
</font>
<font color="#ffffff" face="Verdana" style="font-size: 6pt">
<br>
</font>
<font size="2" color="#ffffff" face="Verdana">
Vraag/opmerking<br>
<textarea rows="5" name="S1" cols="30"></textarea> <br>
</font>
<font color="#ffffff" face="Verdana" style="font-size: 6pt"><br>
</font>
<font size="2" color="#FF0000" face="Verdana">* Verplichte velden</font><font size="2" color="#ffffff" face="Verdana"><br>
</font>
<font color="#ffffff" face="Verdana" style="font-size: 6pt">
<br>
</font>
<font size="2" color="#ffffff" face="Verdana">

<input type="submit" name="Submit" value="Versturen">
<input type="reset" name="Submit2" value="Wissen"> </form>

</body>

</html>


Ik dacht dat DIT goed zat, maar als het niet wordt opgenomen in de
toegzonden email lijkt me dat van niet, maar ook hier... begrijp ik niet
waarom niet...

Ik heb dit aangereikt gekregen als oplossing voor mijn contactformulier,
maar helaas heeft de persoon weinig tijd vanwege buitenlandreis, dus nu
loop ik dus hiermee vast. Nou ja, het is al deels opgelost...

Alvast bedankt vrinden !




grtjs
frehen
renevanh Bericht Geplaatst op 17-11-2010 Reageer met quote
Beheerder
Je geeft je waarde uit je form met method=post mee naar het PHP script.
Daar moet je ze dan wel weer binnenhalen.

Bijvoorbeeld:

Code:

$Naam = $_POST['Naam'];


Waar $naam de variabele binnen PHP is en $_POST['Naam'] de POST variabele. 'naam' in die POST variabele moet exact overeenkomen met de naam van het input veld.
Dit moet je voor elke variabele doen.




Keyboard not found, press F1 to continue...
frehen Bericht Geplaatst op 17-11-2010 Reageer met quote
Senior lid
OK Rene, ik dacht dat dit zinnetje dat regelde ? Staat geen $_Post in nee..

Code:
$mess = "\n\nNaam: ".$Naam."\nE-mail: ".$E-mail."\nTelefoon: ".$Telefoon."\nAdres: ".$Adres."\nPostcode/woonplaats: ".$Postcode/woonplaats."\nBedrijfsnaam: ".$Bedrijfsnaam."\nVraag/opmerking: ".$Vraag/opmerking."" ;


Zoals je ziet in de contactform hierboven komen die namen wel overeen...
Maar ik moet dus een apart zinnetje invoegen met de Code uit jouw post
en die dan herhalen voor elke variabele ? Moet daar nog iets voor van
$mess of zo ? Of kan ik het invoegen die code van jou in dit zinnetje ?
Moet ik dan op volgorde letten ? Alvast dank.

Hoop Vosmanz dat jij nog uit die foutcode kunt komen die ik stuurde,
wanneer het dus fout gaat als het formulier wél helemaal goed is ingevuld,
dan verschijnt niet contactdank_nl.htm in de i-frame, terwijl dat wel
gebeurde met de onvolledig_nl.htm ... raar toch... regel 6 is dat zinnetje
hier vermeld in deze post, maar regel 9 roept dat dank htm aan en de
naam is goed.... of is dat dan ten gevolge van de fout in regel 6 ?
Ook alvast dank.




grtjs
frehen
renevanh Bericht Geplaatst op 17-11-2010 Reageer met quote
Beheerder
Dat zinnetje doet de helft: de variabelen in de variabele $mess stoppen, inclusief wat bijgevoegde tekst.
Het haalt de variabelen echter niet op uit POST.

Wat je kan doen:

Code:

$mess = "\n\nNaam: ".$_POST['Naam']."\nE-mail: ".$E-mail."\nTelefoon: ".$_POST['Telefoon']."\nAdres: ".$_POST['Adres']."\nPostcode/woonplaats: ".$_POST['Postcode/woonplaats']."\nBedrijfsnaam: ".$_POST['Bedrijfsnaam']."\nVraag/opmerking: ".$_POST['Vraag/opmerking']."" ;


Ik weet alleen niet of de variabelen met een / er in goed gaan.
Deze veroorzaken ook je division by zero foutmeldingen in de eerste contact.php, want / is een operator (voor delen).
Nu het tussen haakjes staat werkt het misschien wel... maar misschien ook niet.




Keyboard not found, press F1 to continue...
frehen Bericht Geplaatst op 17-11-2010 Reageer met quote
Senior lid
Dank je Rene, ik ga dit uitproberen.

Is er overigens een reden waarom je _POST niet bij E-mail: doet ?
Want als het binnekomt die mail, dan zou daarop geantwoord moeten
kunnen worden, is dat de reden ?
Of moet het daar ook gewoon ? Ik ga gewoon even kijken, dan kom ik
er wschl ook achter. Dank dank

[edit]
Laat ik eerst zeggen dat nu ook de dank htm gewoon in beeld komt dus
het zat inderdaad in die fout in regel 6...
Maar, nu komt er inderdaad een email binnen, maar de velden Naam en
E-mail worden niet meegenomen/opgenomen en ook de vraag/opmerking
niet.

[edit2]
Heb het nu goed qua naam en email, maar vraag/opmerking wil nog niet,
die komt in regel 2 ook niet voor, ik ga die daar eens toevoegen en kijken
of het dan werkt... nee dan krijg ik dat het niet volledig is ingevuld....
Hmm dat veld vraag/opmerking krijg ik nog niet goed dat ie meekomt in
de email.

Ik zie wel dat ik het niet als input name veld heb staan in het
contactform.htm ... zie hierboven, mee zitten vogelen,
maar als ik dat toevoeg aan die textarea regel dan
wordt het weer een smal veld als bij die anderen en geen textarea meer..
Het is ook elke keer wat... eigen schuld, ben nog met Frontpage bezig,
is het dat ?




grtjs
frehen
renevanh Bericht Geplaatst op 17-11-2010 Reageer met quote
Beheerder
Boel vragen.... :P

Email ben ik waarschijnlijk gewoon vergeten, het moet iig bij allemaal.

Een input en een textarea moet je anders afhandelen omdat de ingevulde waarde achter de schermen anders wordt verwerkt. Hier moet je niet 'name' maar 'id' gebruiken als ik het goed heb...




Keyboard not found, press F1 to continue...
frehen Bericht Geplaatst op 17-11-2010 Reageer met quote
Senior lid
Yesyesyes !!
Helemaal goed Rene !!
Nu werkt het volledig en kan ik het dus ook voor de andere
talen in orde maken, in 1 woord geweldig en DIKKE³ dank !!




grtjs
frehen
frehen Bericht Geplaatst op 17-11-2010 Reageer met quote
Senior lid
Helaas, te vroeg gejuichd en ben al een hele tijd aan het puzzelen.
Onder Nederlands werkt het gewoon, maar onder de talen gaat het fout.

Echter exact alles hetzelfde ingesteld en verwezen... maar ook al vul ik
het hele formulier in, bij de talen krijg ik het bericht "onvolledig".

Ik heb voor elke taal een setje aangemaakt als volgt:
contact_du.htm - de contactpagina met daarop:
contactform_du.htm (in een i-frame...right)
contactdu.php = controlebestand met verwijzing naar
contactdank_du.htm en contactonvolledig_du.htm

Dat controle bestand, moet dat persé contact.php zijn of mag dat best zo
als er dan in de method post ook maar naar verwezen wordt (dat heb ik
dus....)

Alle vertalingen staan er ook goed in in die contactdu.php om de juiste
velden in het contactform te vinden.

Wat gaat hier nou mis ? Sorry als ik teveel vraag op ons forum...




grtjs
frehen
Nieuw onderwerpNieuw antwoord   Ga naar Pagina 1, 2  Volgende


Forum » Scripten & programmeren » probleem met contactformulier

Powered by Cloud VPS - High Availability Cloud Servers