contact formulier

Door Lissy Pixel, 23 jaar geleden, 6.632x bekeken

Een woord van dank naar m'n maatje Niels :-)
Zonder Niels had ik dit zeker niet gered en zeker ook zijn inmense geduld heb ik menigmaal ernstig op proef gesteld.
Ook heb ik de css toegevoegd maar goed dit kan je ook weglaten of je eigen gebruiken.
Het is meer als leidraad voor diegene die dit nog niet heeft en graag een voorbeeld wil.
Voor het voorbeeld van het formulier heb ik m'n site neergezet en dan bovenaan in het menu kies je mail en voila het formulier.

Verder kan er een hoop veranderd worden of anders of weet ik wat.
Dit is mijn insteek en verwoording van mijn gedachtes en heb je zelf een betere of zie je deze niet zitten dan zet jouw versie hier on-line dan kunnen we die gaan bekijken :-)

Voorbeeld: http://www.lissydesign.info/?id=8

Gesponsorde koppelingen

PHP script bestanden

  1. contact-formulier

 

Er zijn 54 reacties op 'Contact formulier'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


23 jaar geleden
 
0 +1 -0 -1
Handig scriptje, kan ik goed gebruiken. Helaas krijg ik volgende foutmeldingen:
- Notice: undefined variable: REMOTE_ADDR in c:\ ...\mail.php on line 22

Ik heb ook twee ini_set's bijgeplaatst ( voor de SMTP server te definiƫren ). De mailtjes komen netjes aan, het enige wat ontbreekt is het subject, hoewel ik in dat veld toch 'reaktie van website' had ingevuld.
Voor de rest werkt het perfect !
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
@ Swift : ik kijk er straks even naar want moet nu naar een afspraak en ben vanavond terug en kijk voor je!
Wellicht hebben anderen al een gedachte voor dit probleem...
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
probeer eens $_SERVER['REMOTE_ADDR']

Maar is het niet handiger om alle foutmeldingen bij elkaar op te tellen? Bijvoorbeeld door ze in een array te zetten, of ze bij een string toe te voegen ipv de hele te vervangen? Nu krijg je alleen de laatste error te zien waneer je meerdere fouten maakt.
Han eev
Han eev
23 jaar geleden
 
0 +1 -0 -1
Weer een leuk contact form.
B a s
B a s
23 jaar geleden
 
0 +1 -0 -1
$REMOTE_ADDR is gewijzigd :) leuk script.. idd wat jelmer zegt, fouten bij elkaar optellen..
Marien xD
Marien xD
23 jaar geleden
 
0 +1 -0 -1
en variabelen escapen :)

dus

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo "teskt". $var ."volgende tekst";
?>


niet

echo "tekst $var volgende tekst";
DDragonz
DDragonz
23 jaar geleden
 
0 +1 -0 -1
En plaats eens een keer gewoon de direct link:
Voorbeeld: http://www.lissydesign.info
Jelmer -
Jelmer -
23 jaar geleden
 
DDragonz
DDragonz
23 jaar geleden
 
0 +1 -0 -1
En waarom gebruik je telkens accolades?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
    if(isset($_POST['Naam']))        { $Naam = $_POST['Naam']; }
    if(isset($_POST['Email']))        { $Email = $_POST['Email']; }
    if(isset($_POST['Adres']))        { $Adres = $_POST['Adres']; }
    if(isset($_POST['Postcode']))    { $Postcode = $_POST['Postcode']; }
    if(isset($_POST['Woonplaats']))    { $Woonplaats = $_POST['Woonplaats']; }
    if(isset($_POST['Tel']))        { $Tel = $_POST['Tel']; }
    if(isset($_POST['Bericht']))    { $Bericht = $_POST['Bericht']; }
    if(isset($_POST['To']))            { $To = $_POST['To']; }
    if(isset($_POST['Subject']))    { $Bericht = $_POST['Bericht']; }
//Je kunt het ook zo doen
    if(isset($_POST['Naam']))         $Naam = $_POST['Naam'];
    if(isset($_POST['Email']))        $Email = $_POST['Email'];
    if(isset($_POST['Adres']))        $Adres = $_POST['Adres'];

?>


Is een paar tekens minder :P
Thijs X
Thijs X
23 jaar geleden
 
0 +1 -0 -1
Alweer een contact script :P
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
@ : All : Verder kan er een hoop veranderd worden of anders of weet ik wat.
Dit is mijn insteek en verwoording van mijn gedachtes en heb je zelf een betere of zie je deze niet zitten dan zet jouw versie hier on-line dan kunnen we die gaan bekijken :-)


23 jaar geleden
 
0 +1 -0 -1
Hallo, ik heb een vraagje ik ben echt een dummie hoor maar meestal lukt het me wel, ik ben nou bezig met deze contactformulier en het wil me maar niet lukken, het enige waar ik mee zit is hoe ik het verbind naar mijn mailbox

stomme vraag he ik heb al van alles geprobeerd dus ik hoop dat jullie mij die laatste duwtje in de rug kunnen geven
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
@ valerie: Hier zet je jouw mailaccount neer:

<div align="center">
<form name="form1" method="post" action="">

===> <input type = 'hidden' name = 'To' value = '[email protected]'>

<input type = 'hidden' name = 'Subject' value = 'mail van jouw website'>

Suc6!
Groet, lissy


23 jaar geleden
 
0 +1 -0 -1
gek, daar vul ik mijn mailadres in maar als ik het test komt er geen mail aan bij mij. Doe ik nog iets fout misschien?


23 jaar geleden
 
0 +1 -0 -1
Hallo,

Ik heb het script aan de gang, werkt eigenlijk meteen. Bedankt hiervoor!

Ik wil echter nog wat toevoegen, namelijk een onderwerp selectie. De volgende zaken heb ik toegevoegd:


Toegevoegd aan de variabelen set

if(isset($_POST['Onderwerp'])) { $Bericht = $_POST['Onderwerp']; }

Toegevoegd aan de validatie check

// als er niks bij onderwerp is ingevult geef error
if($Onderwerp == "")
{ $strError = "U moet wel een onderwerp selecteren"; }

Het onderwerp van de mail, wil ik hetzelfde hebben als de door de bezoeker geselecteerde onderwerp

<input type = 'hidden' name = '$Onderwerp' value = 'mail van jouw website'>

Onderwerp selectie, eerste is blank, voor de validatie check

<td class="style1">Onderwerp</td>
<td><select name="Onderwerp" type="text" class="style1" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= $Onderwerp ?>
">
<option VALUE=""></option>
<option VALUE="Onderwerp1">Onderwerp 1</option>
<option VALUE="Onderwerp2">Onderwerp 2</option>
<option VALUE="Onderwerp3">Onderwerp 3</option>
<option VALUE="Onderwerp4">Onderwerp 4</option>
</SELECT>
</td>

Echter, als ik heb script run, krijg ik iedere keer de error melding v.w.b. het invullen van het onderwerp.
Verder krijg ik in de toegezonden e-mail, wanneer ik de validatie uitschakel, wel de regel Onderwerp: te zien, maar het geselecteerde onderwerp niet.

Iemand enig idee? Alvast hartelijk bedankt!

Gr,

JP Berkenhagen


23 jaar geleden
 
0 +1 -0 -1
zou dit het probleem zijn:

Fatal error: Call to undefined function: footer() in /data/members/......./mail.php on line 176

Sorry voor de zoveel vragen en trouwens Lissy bedankt!
Elwin - Fratsloos
Elwin - Fratsloos
23 jaar geleden
 
0 +1 -0 -1
Valerie; het volgende weggehaald/weggeslashed uit mail.php?

// deze staat hieronder geschreven en kan je wegslashen wanneer je niet wil
include ("include/functions.php");

Zo ja, dan moet je op regel 176 het volgende wijzigen:

<td align="center"><br><br><p class="smallnavigation">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php footer(); ?>
</p></td>

in

<td align="center"><br><br><p class="smallnavigation">&nbsp;</p></td>

Elwin


23 jaar geleden
 
0 +1 -0 -1
bedankt1 de error is nu weg, ik had hem trouwens niet weggeshlashed

maar ik krijg nog steeds geen (test)mail binnen.

Ik doe waarschijnlijk nog iets fout
Elwin - Fratsloos
Elwin - Fratsloos
23 jaar geleden
 
0 +1 -0 -1
Als je hem niet weggeslahed had, dan moet je er zeker van zijn dat het bestand include/functions.php bestaat met de inhoud zoals boven beschreven.

Dat je geen mail krijgt kan aan veel dingen liggen. Bijvoorbeeld dat je PHP geen toegang heeft tot sendmail of een SMTP-server, dat je je adres toch niet goed ingevuld hebt, of waarschijnlijk veel meer.

Tot hoever gaat het script? Wordt je netjes doorgestuurd naar bedankt.php?

Elwin


23 jaar geleden
 
0 +1 -0 -1
nou als het goed is doet ie het gewoon goed en gaat ie gewoon naar de bedankt pagina, hij verstuurt als het ware wel maar bij mij komen geen mails aan.

ikheb trouwens gewoon een hotmailadres gebruikt zal het daar aan liggen?


23 jaar geleden
 
0 +1 -0 -1
Valerie -> daar kan het niet aan liggen.
- SanThe -
- SanThe -
23 jaar geleden
 
0 +1 -0 -1
@JP Berkenhagen:

if(isset($_POST['Onderwerp'])) { $Bericht = $_POST['Onderwerp']; }

Dus $Bericht moet je hieronder testen en niet $Onderwerp.

if($Onderwerp == "")
{ $strError = "U moet wel een onderwerp selecteren"; }
- SanThe -
- SanThe -
23 jaar geleden
 
0 +1 -0 -1
@Valerie:

mail ($To, $Subject, $Mail);

Maak daar eens van

if(!mail ($To, $Subject, $Mail)) { exit("Mail probleem"); }

Dan weet je of het versturen goed gaat.


23 jaar geleden
 
0 +1 -0 -1
@SanThe:

Hartelijk bedankt! Het werkt.

Het laatste waar ik nog tegenaanloop is de bedankt pagina, die niet laadt. In plaats daarvan krijg ik mijn formulier weer te zien met als melding:

Warning: Cannot modify header information - headers already sent by (output started at
.../form/form.php:2) in
.../form/form.php on line 99

Ik heb bovenin session_start(); en de beide "include" regels weggeslasht omdat ik die (nog) niet nodig heb.

De locatie van bedankt.php is in dezelfde folder als form.php

Alvast bedankt voor de hulp!


23 jaar geleden
 
0 +1 -0 -1
Bedankt iedereen voor alle reacties, ik ben er bijna zucht....

san the: ik heb het veranderd, hij verzend gewoon nog steeds netjes en gaat naar de bedankt pagina alleen die mails komen niet aan bij mij.

Ik heb het volgende gedaan:

ik heb de phpcode en de html gekopierd van hier en opgeslagen onder mail.php
functions heb ik weggeslashed
verbinding.php wederom gekopierd en zo opgeslagen en veranderd
ik heb de localhost zo gelaten mijn gebruikersnaam en de geen password
ik heb bij mysql_select_db de database naam die ik bij mijn instellingen op de site van lycos heb staan daar neergezet
en opmaak ook gewoon opgeslagen.

En nog maals bedankt iedereen


23 jaar geleden
 
0 +1 -0 -1
Hallo, kan niemand me meer helpen snik snik ik zie de fout gewoon niet meer


23 jaar geleden
 
0 +1 -0 -1
mensen het is opgelost! Ik wil jullie allen vriendelijk bedanken.

het probleem dat ik de mail niet kreeg was dat ik mijn mail tussen aposrofjes had stom, ik had dus '[email protected]'

groetjes
Corne
corne
23 jaar geleden
 
0 +1 -0 -1
ik ben nog maar net hier met php bezig dus nog niet zo bedreven,
misschien een domme vraag maar hoe ziet de database er uit?
voor de rest doet hij het helemaal perfect,mooi kan hem ook goed gebruiken!!
alvast bedankt,
groetjes
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
@ corne : waar wil je een database voor gebruiken? Je bedoelt de geinclude pagina?

Laat maar horen je gedachtes?
Groet, lissy


23 jaar geleden
 
0 +1 -0 -1
Wie kan mij helpen, ben net begonnen met Php
Ik kan de gegevens niet vinden voor de database wel de inlog er naar toe maar niet de database zelf.

met vriendelijke groet
Mike
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
Hmm effies wat meer uitleg wat je bedoelt want ik snap je vraag niet helemaal ben ik bang....

Lieve groet, lissy


23 jaar geleden
 
0 +1 -0 -1
hij wil database gegevens hebben zoals localhost, username, databasename, password
@MIKE, k denk dat je dit echt bij je host moet vinden als je bent ingelogd of anders moet je het vragen.
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
@ all er is boven aan in het script een nieuw bestand ingevoegd te weten verbinding.php

Groet, lissy


23 jaar geleden
 
0 +1 -0 -1
Hallo Lissy,

Je script leek mee een aardig begin om eindelijk eens wat meer van Php onder de knie te krijgen, maar er gaat gelijk iets mis. En ik heb dat wel vaker met Php-scripts. Ik zie in mijn browser een deel van de code en in jouw geval betreft het de VALUE's bij naam, adres, etc.. Snap jij -of iemand anders- hoe dat komt?? Ik zie geen onvolkomenheden.

G's
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
Ik kan je niet helemaal volgen en vraag dan maar weer naar dat ik wijs ben :-)
Wanneer gebeurt dit en draai je dan lokaal of hoe moet ik me dit voorstellen?

Leg me is stap voor stap uit wat je doet en wat je wenst en wat er gebeurt.

Groet, lissy


23 jaar geleden
 
0 +1 -0 -1
Het lijkt me niet zo moeilijk. Als ik je script draai via localhost, maar hetzelfde gebeurt via mijn webhost, dan zijn de vakjes die bedoeld zijn om in te vullen al gevuld met de value-waarde die je in je script hebt staan, zoals bijv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= $Naam ?>
in het vakje waar de verzender zijn/haar naam zou moeten invullen ... en dat lijkt me toch niet de bedoeling.

G's
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
Nee dit moet niet de bedoeling zijn en een voorbeeld kan je on-line bovenaan de pagina zien.

Heb je het bestand opgeslagen met een .php extensie?
Een voorbeeld is: mail.php of contact.php (geef je fantasie de vrije hand :-)
Zo niet dan zou ik dit eerst is doen en dan proberen.
Groet, lissy


23 jaar geleden
 
0 +1 -0 -1
En ik maar denken dat bestanden bepaald worden door de inhoud ....
De verandering van de extensie verandert vanalles, maar ik krijg er voorlopig vooral meer ipv minder foutmeldingen door. Zal de boel nog eens stap voor stap doorlopen, maar heb daar de komende dagen geen tijd voor. Het eventuele resultaat zal dus even op zich laten wachten.

G's


23 jaar geleden
 
0 +1 -0 -1
ik snap da verbinding.php niej :S wat word er bedoelt met databasename? en met localhost?
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
Kijk HIER voor de nodige tutorials voor uitleg met betrekking tot databases etc.

Heel veel suc6 ermee!!
Groet, lissy
Starlove
Starlove
23 jaar geleden
 
0 +1 -0 -1
hoi dames en heren.....

ik ben nog maar een beginner, dus zouden jullie mij aub willen helpen ???

ik heb het contactformulier aan het werk gekregen, alleen het bijhorende Bedankt.php heb ik niet. Zou iemand dat voor mij kunnen opgeven.

alvast bedankt.

doegg
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
Komt het:

**************************bedankt.php*********************
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
session_start();
?>

<html>
<head>
<title>jouw titel</title>
</head>
<body bgcolor="fffffff">
<div align="center">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
include ("../include/db.php");

echo "<table width=\"50%\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"tekst\">";    
  echo "<tr><td align=\"center\"><br><br>Bedankt voor uw eMail bericht ".$_SESSION['Naam']." <br>Indien U dit wenst en hebt aangegeven nemen wij zo snel mogelijk contact met U op.<br><br>Even een opmerking:<br>indien u dit formulier verstuurt, mag u zeker een reactie verwachten.<br>Mocht dit niet zo zijn wilt u dan gewoon even telefoneren (010-jouw nummer),<br>want dat betekent dat de virusscanner uw mail heeft onderschept.</tr></td>";
  echo "</table>";
  
  echo '<meta http-equiv="Refresh" content="5; url=home.php">';
  
  ?>

</div>
</body>
</html>
Starlove
Starlove
23 jaar geleden
 
0 +1 -0 -1
hartelijk dank lissy...
B.Vervoorn
B.Vervoorn
23 jaar geleden
 
0 +1 -0 -1
Ik heb al de bestandjes op de goede plek gezet, en vanalles gewijzigd maar ik snap nog niet helemaal hoe ik het zit met mysqlconnect.
ik krijg namelijk deze foutmelding.

Logisch want ik heb daar niets ingevuld, maar hoe moet ik dit regelen?


Warning: mysql_connect(): Access denied for user: '[email protected]' (Using password: YES) ******************/mail/include/verbinding.php on line 3
Er kan geen verbinding worden gemaakt met de database
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
OK dan ga ik je verder helpen :)

Hier dus de juiste gegevens invullen:

Code:
************************verbinding.php**************************
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    // Open de database connectie
    $link = mysql_connect ("localhost", "jouw_accountnaam", "jouw_wachtwoord")
    or die ("Er kan geen verbinding worden gemaakt met de database");
    
    // Selecteer de juiste database
    $res = mysql_select_db("jouw_databasenaam", $link);
    if (!$res){
        // er is een fout opgetreden bij het selecteren
        echo "Er is een fout opgetreden bij het openen van de database, probeer het later nog eens";
    }

?>


===> jouw_accountnaam // wat je van je provider hebt gekregen vul je hierin
===> jouw_wachtwoord // wat je van je provider hebt gekregen vul je hierin
===> jouw_databasenaam // wat je van je provider hebt gekregen vul je hierin
Frans
frans
23 jaar geleden
 
0 +1 -0 -1
===> jouw_accountnaam // wat je van je provider hebt gekregen vul je hierin
===> jouw_wachtwoord // wat je van je provider hebt gekregen vul je hierin
===> jouw_databasenaam // wat je van je provider hebt gekregen vul je hierin

Kun je wat voorbeelden geven??
Bijvoorbeeld jouw_accountnaam ----> frans.nl ofzo?
en jou_wachtwoord ----> wachtwoord om in te loggen bij je host
jouw_databasenaam ----> gebruikersnaam van je host
???
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
@ frans : deze gegevens krijg je uniek van je provider toegemailt/opgestuurd.

Hier een voorbeeld maar is dus fake/nep omdat ik je gegevens niet ken en ook niet moet weten omdat ik/of een ander anders bij de database kan en dit wil je als het goed is niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    // Open de database connectie
    $link = mysql_connect ("localhost", "frans01", "haVWx12")
    or die ("Er kan geen verbinding worden gemaakt met de database");
    
    // Selecteer de juiste database
    $res = mysql_select_db("fransdatabse1", $link);
    if (!$res){
        // er is een fout opgetreden bij het selecteren
        echo "Er is een fout opgetreden bij het openen van de database, probeer het later nog eens";
    }

?>
Rik Engelen
Rik Engelen
23 jaar geleden
 
0 +1 -0 -1
Beste lezer,

Ik krijg de volgende melding.

Warning: Cannot modify header information - headers already sent by (output started at /home/necangel/public_html/contact/include/verbinding.php:13) in /home/necangel/public_html/contact/mail.php on line 92

wat kan ik hier aan doen?

zie link: http://www.necangel.nl/contact/mail.php
Lissy Pixel
Lissy Pixel
22 jaar geleden
 
0 +1 -0 -1
@ Rik : net na de php tag geen output neerzetten. Over dit probleem is veel te vinden hier op de site bij headers. Dit even lezen. Suc6 in iedergeval!!
MP Londeman
MP Londeman
22 jaar geleden
 
0 +1 -0 -1
Hoi,

ik krijg bij het ontvangen van de mail geen subject te zien en heb hier niks veranderd in het script.

Hoe kan dit ??

ik gebruik FF en Thunderbird.
Lissy Pixel
Lissy Pixel
22 jaar geleden
 
0 +1 -0 -1
Haal dit is weg van regel 144 :
<input type = 'hidden' name = 'Subject' value = 'mail van jouw website'>
en kijk is wat er dan gebeurd.

Wellicht ook even naar de headers kijken of hier wat in gewijzigd kan worden.
Ton Boers
Ton Boers
21 jaar geleden
 
0 +1 -0 -1
Kan je het ook nog zo doen dat je bepaalde gegevens in je database en per email verstuurt krijg?
Dus adres gegevens in de db en het bericht en naam ook naar je email adres?
Johnny Winter
Johnny Winter
20 jaar geleden
 
0 +1 -0 -1
Hoi, Het script werk wel, ik krijg vanalles meldingen boven aan de site, kan iemand mij hiermee helpen ? zie www.radiomontana.nl/contact.php

Groetjes
Johnny
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Tommy
Tommy
20 jaar geleden
 
0 +1 -0 -1
Hoi,

Ik weet niet of iemand hier nog op gaat reageren maar ik probeer het toch maar even.
Ik ben vrij nieuw in heel het PHP gebeuren en heb dit script gebruikt als contact formulier. Dat werkt verder zonder problemen. Alle mails komen gewoon binnen. Heb ook een database aangemaakt, gebruiker toegevoegd.
Maar hoort dit script ook iets in de database weg te schrijven? dat gebeurd namelijk nog niet. In bedankt.php zie ik ook een include naar db.php. waar is dit voor?

groeten,
Tommy

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. contact-formulier

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.