Wie kan er voor mij contactformulier schrijven?

Status
Niet open voor verdere reacties.

Titto

Gebruiker
Lid geworden
30 aug 2011
Berichten
55
Hallo iedereen,

Ik heb enkele invulformulieren in php nodig voor mijn website www.zee-online.be .
Zelf kan ik nog geen php en dus ben ik opzoek naar iemand die gratis zo'n formulieren voor me kan maken.

Het eerste formulier zou een contactformulier moeten worden.
De formulieren die ik graag wens zijn naam, e-mailadres, telefoonnummer, onderwerp en bericht. Behalve de telefoonnummer moeten alle andere formulieren verplicht zijn in te vullen.

Daarnaast heb ik graag dat elke mail dat via het formulier verzonden wordt een unieke referentienummer van een 6 tal cijfertjes heeft. Die referentienummer zou zowel naar de verzender als naar mij moeten verstuurd worden. (naar de verzender via een automatisch antwoord en naar mij bij in de formuliergegevens)
Elke mail moet zo'n andere nummer hebben.

Graag had ik ook gehad dat elk verzonden mailtje een bedank scherm te zien krijgt en nog een automatisch antwoord mailtje naar de inbrenger van die mail. daarin moet ook een vermelding van het referentienummer komen te staan.

Tot slot moet het formulier makkelijk in te brengen worden in de lay out van de website www.zee-online.be .

Is iemand bereid om mij hiermee vrijwillig te helpen a.u.b?
 
Hmm, ik heb liever een eigen formulier dan zo eentje die door jan en alleman gebruikt wordt.
Daarbij, ik heb graag dat die dingetjes die ik er bij wilde zoals met die ref. nummer enzo dat het allemaal er zeker bij in kan. (en ook dat auto. antwoord)
 
Gratis doen niet veel programmeurs aan, en degene die er wel aan doen moet je je afvragen waarom ze er geen geld voor vragen...
 
Ik heb inmiddels zelf een php formulier kunnen schrijven dat tot mn grootste verbazing goed werkt.
Enkel dat dingetje om elke mail een nieuwe 6 cijferige ref. nummer te geven lukt me niet. Kan iemand me daarbij helpen plz?
 
Hm als je een uniek nummer wil hebben moet je ergens opslaan welke nummers al gebruikt zijn. Als je het in volgorde wil doen (en je niet meer dan 1 request per seconde verwacht) dan kun je gebruik maken van een simpele flat file:

PHP:
$nummer = (int) @file_get_contents( 'file.txt' ); // haal het huidige nummer uit een file
$nummer++; // verhoog met 1
file_put_contents( 'file.txt', $nummer ); // schrijf het nieuwe nummer weg
$nummer = str_pad( $nummer, 6, '0', STR_PAD_LEFT ); // vul aan de linker kant aan met 0en tot er 6 tekens zijn

Zou moeten werken... niet getest. Moet je wel schrijfrechten hebben zodat je file.txt aan kunt maken (of een andere file, je kunt de naam wijzigen natuurlijk)

Als je random getallen wilt kan ook, is ietsje lastiger. Gaat ook gekke dingen doen als je dicht nadert bij het max aantal nummers maar dat zal wel een tijdje duren.

PHP:
$lijst = @file_get_contents( 'file.txt' ); // haal de data uit de file
$lijst = unserialize ( $lijst ); // bouw de data om naar een lijst met getallen
$found = false; // we hebben nog niks gevonden
while ( $found == false ) { // blijf net zolang doen totdat we een nieuw getal hebben:
  $nummer = rand( 0, 999999 ); // pak een willekeurig getal
  if ( !in_array( $nummer, $lijst ) ) { // als dit getal nog niet gebruikt is
    $lijst[] = $nummer; // voeg het toe aan de lijst
    file_put_contents( 'file.txt', serialize( $lijst ) ); // zet de lijst om naar data en schrijf nieuwe lijst weg naar file
    $found = true; // nieuw getal gevonden
  }
} // controleer of getal gevonden, zo nee herhaal

$nummer = str_pad( $nummer, 6, '0', STR_PAD_LEFT ); // vul aan de linker kant aan met 0en tot er 6 tekens zijn

Hier geldt ook; zou moeten werken maar niet getest. Hoop dat je snapt hoe het werkt met de comments. Als er iets niet werkt, kijk dan eerst of je er zelf uit komt, daar leer je meer van :)


Bonus punten als je snapt waarom de tweede steeds moeilijker doet naarmate je meer getallen gebruikt hebt.
 
Frats,

Ik begrijp het niet zo goed.
Kijk, het is dus de bedoeling dat als men een nieuwe mail verstuurd via het formulier elke mail zo een willikeurige ref. nummer van 6 cijfers krijgt. (elke mail een andere)
Deze nummer moet op het bedanktscherm na het verzenden verschijnen als ook in de mail die naar mij verstuurd wordt met de inhoud van het ingevulde formulier.

Hoe ga ik te werk?
Php is voor mij nieuw en ben er nog maar sinds vandaag mee bezig.
 
Hm als je een uniek nummer wil hebben moet je ergens opslaan welke nummers al gebruikt zijn. Als je het in volgorde wil doen (en je niet meer dan 1 request per seconde verwacht) dan kun je gebruik maken van een simpele flat file:

PHP:
$nummer = (int) @file_get_contents( 'file.txt' ); // haal het huidige nummer uit een file
$nummer++; // verhoog met 1
file_put_contents( 'file.txt', $nummer ); // schrijf het nieuwe nummer weg
$nummer = str_pad( $nummer, 6, '0', STR_PAD_LEFT ); // vul aan de linker kant aan met 0en tot er 6 tekens zijn

Zou moeten werken... niet getest. Moet je wel schrijfrechten hebben zodat je file.txt aan kunt maken (of een andere file, je kunt de naam wijzigen natuurlijk)

Als je random getallen wilt kan ook, is ietsje lastiger. Gaat ook gekke dingen doen als je dicht nadert bij het max aantal nummers maar dat zal wel een tijdje duren.

PHP:
$lijst = @file_get_contents( 'file.txt' ); // haal de data uit de file
$lijst = unserialize ( $lijst ); // bouw de data om naar een lijst met getallen
$found = false; // we hebben nog niks gevonden
while ( $found == false ) { // blijf net zolang doen totdat we een nieuw getal hebben:
  $nummer = rand( 0, 999999 ); // pak een willekeurig getal
  if ( !in_array( $nummer, $lijst ) ) { // als dit getal nog niet gebruikt is
    $lijst[] = $nummer; // voeg het toe aan de lijst
    file_put_contents( 'file.txt', serialize( $lijst ) ); // zet de lijst om naar data en schrijf nieuwe lijst weg naar file
    $found = true; // nieuw getal gevonden
  }
} // controleer of getal gevonden, zo nee herhaal

$nummer = str_pad( $nummer, 6, '0', STR_PAD_LEFT ); // vul aan de linker kant aan met 0en tot er 6 tekens zijn

Hier geldt ook; zou moeten werken maar niet getest. Hoop dat je snapt hoe het werkt met de comments. Als er iets niet werkt, kijk dan eerst of je er zelf uit komt, daar leer je meer van :)


Bonus punten als je snapt waarom de tweede steeds moeilijker doet naarmate je meer getallen gebruikt hebt.

Heb je mail(), nee dus.
 
Mijn stukje code kun je bovenaan het stukje PHP zetten dat je mail verstuurt. Het genereert een variabele $nummer die je in je mail en in het bedank scherm op kunt nemen, en die variabele is een uniek getal specifiek voor die email. Het eerste stukje zet ze op volgorde, de tweede maakt ze willekeurig.

Als het goed is kun je zien hoe het werkt als je gewoon die code op een lege pagina zet, met eronder:
PHP:
echo $nummer;
en dan een paar keer op F5 drukt. Als het goed is verschijnen er dan verschillende getallen.

Waar WDHBGS het over heeft weet ik ook niet.
 
Kijk, dit is de php code voor de FormulierAfhandeling.php .

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html lang="nl">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8">
	<title>Zee Online :: Contact :: Contactformulier :: Verzonden!</title>
</head>
<body>
<div style="padding:1em 2em 3em 4em; background-color: #BDBDBD">
<?
// Eventueel is de informatie ook in een database op te slaan
$naam = $_POST['naam'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$bericht = $_POST['bericht'];

$formsent = mail('info@zee-online.be',
		'Contactformulier',
		"Naam: $naam
		 E-mailadres: $email
		 Onderwerp: $subject
		Bericht: $bericht",
		"From: $EmailAdres\r\nBounce-to: info@zee-online.be");
if ($formsent) {
	echo "<p>Beste $naam,<br><br> Uw mailtje is correct verzonden naar de redactie van Zee Online en zal indien nodig zo snel mogelijk beantwoord worden.</p>";
	} else {
	echo "<p>Sorry, maar uw mailtje kan niet verzonden worden. <br>Controleer of alle verplichte velden ingevuld zijn.</p>";
	}
?>
</div>
</body>
</html>

Wat moet er komen te staan en waar?
Sorry dat ik zoveel vragen stel, maar het is echt allemaal nieuw voor me en wil het zeer graag hebben, maar snap er geen snap van .

Kan jij heet anders in die code al insteken en dan de code terug op forum plaatsen a.u.b?

Ik weet niet of het zo is, maar de nummers mogen enkel in het bedankscherm komen en dan in de mail die naar mij verstuurd wordt met de gegevens (ref. nummer: xxxxx)
Dus niet zo op het formulier en elke verstuurde mail moet zo'n nieuwe nummer hebben, geen 2 dezelfde dus.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan