problemen met een invulformulien op een website

Status
Niet open voor verdere reacties.
Maar je laat je probeersels niet zien. :/
Laat eens zien wat je geprobeerd hebt. Misschien is het iets dat in 5 tellen werkend is gemaakt.

Logisch kijken, code kopieren, proberen aan te passen, testen of het werkt...
Dat lees ik nergens in je reacties terug.
 
Laatst bewerkt:
Prima. Succes!
 
Ik heb mijn script nog eens bekeken en weet met de beste wil van de wereld niet hoe ik een verbetering moet invoeren.
Het is de laatste lijn die niet werkt:

Dus helemaal onderaan:
if ($success){ echo "Success! Your e-mail was sent!";} DIT WERKT
else { echo "Error! Your e-mail was not sent!";} DIT WERKT NIET
?>
Zie volledig script onderaan




PHP:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>send.php</title>
</head>

<body>
<?php
$EmailFrom = $_POST['EmailFrom'];
$owner = trim($_POST['owner']);
$apartment = trim($_POST['apartment']);
$block = trim($_POST['block']);
$names_friends_and_family = trim($_POST['names_friends_and_family']);
$arrival_date = trim($_POST['arrival_date']);
$departure_date = trim($_POST['departure_date']);
$comments = trim($_POST['comments']);

/// Validate

$message = "<h2>Error!</h2><h4>You need to fill in the following:</h4><ul>";

if($owner == ""){$message .= "<li><b>Owner</b> Not completed!"; $fail = "Y";}

if($apartment == ""){$message .= "<li><b>Apartment</b> Not completed!"; $fail = "Y";}

if($block == ""){$message .= "<li><b>Block</b> Not completed!"; $fail = "Y";}

if($names_friends_and_family == ""){$message .= "<li><b>Names friends and family</b> Not completed!"; $fail = "Y";}

if($arrival_date == ""){$message .= "<li><b>Arrival date</b> Not completed!"; $fail = "Y";}

if($departure_date == ""){$message .= "<li><b>Departure date</b> Not completed!"; $fail = "Y";}

if($fail == "Y")

{

$message .= "</ul>";

include("form.htm");

die();

}

$EmailTo = "mailadres@live.be";

$validationOK=true;

if (trim($EmailFrom)=="") $validationOK=false;

if (!$validationOK) {

  echo "Error! E-mail was not sent. Please check your code.";

  exit;

}

$Body = "";

$Body .= "Owner:\n$owner\n\n";

$Body .= "Apartment:\n$apartment\n\n";

$Body .= "Block:\n$block\n\n";

$Body .= "Names friends and family:\n$names_friends_and_family\n\n";

$Body .= "Arrival date:\n$arrival_date\n\n";

$Body .= "Departure date:\n$departure_date\n\n";

$Body .= "Comments:\n$comments\n\n";


$Subject = "From $EmailFrom";
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

if ($success){ echo "Success! Your e-mail was sent!";}
 else { echo "Error! Your e-mail was not sent!";}
?>

</body>

</html>
 
Wat is er mis met mijn voorbeeld?

Anyway: Wat werkt er niet aan? Wat meer uitleg is zeker niet overbodig.
Als ik naar de garage ga met mijn auto, dan zeg ik ook niet "Hij werkt niet". Dan ben ik wat gespecificeerde, en zeg ik: "De ruitenwisser werkt niet"

Dus het is voor mij nu lastig te vertellen wat er fout gaat. Maar met mijn code heb je zeker meer goede structuur.
 
Zeer specifiek onderaan in mijn script staat

else { echo "Error! Your e-mail was not sent!";} EN DAT WERKT NIET
 
Dan ga ik doorvragen:
- Komt er rook uit je computer?
- Gaat je beeldscherm flikkeren?
- Zie je dansende unicorns op je scherm?
- krijg je een foutmelding?

Ik wil niet vervelend zijn, maar wees toch eens specifieker.
Wat werkt er niet aan? Wat gebeurt er? Wat zie je?

Ik ben zelf wel webdeveloper, maar ik heb geen glazen bol, en de sterren zeggen mij ook niks over wat er gebeurt.
 
Als het formulier op mijn website volledig wordt ingevuld verschijnt een scherm met de vermelding "your e-mail was sent". Ik ontvang dan per e-mail de informatie die op het formulier werd ingevuld.
Wanneer een persoon het formulier op mijn website "onvolledig" invult verschijnt er alleen een blanco blad zonder het bericht ""error" your e-mail was not sent". Dus die persoon denkt dat het bericht werd verstuurd en dat klopt niet want ik ontvang het niet!
 
Gebruik mijn voorbeeld eens. Die is veel logischer opgebouwd!
 
Dat zal direkt proberen maar nog 1 vraag:
Wat moet ik op lijn 64 en 65 schrijven: gewoon mijn e-mail adres?

dus
if(count(errors)==0) {mijnemailadres@live.be}
 
Nee, de functie waarmee PHP moet mailen.

Google eens op PHP + mail in Google. Dan zal je vast al wat mooie voorbeelden zien.
Misschien is het ook wel zinvol om een tutorial PHP te doen. Want hoe wil je dit onderhouden zonder enige kennis?
 
Je hebt natuurlijk gelijk maar het is het enige script in mijn website en alles werkt goed behalve dat diegene die het fout invoert hierover geen bericht krijgt dat de e-mail niet verstuurd is.
Ik ben gaan kijken bij PHP + Mail en wat ik allemaal zie begrijp ik niet
Bijvoorbeeld:
<?php
// the message
$msg = "First line of text\nSecond line of text";

// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);

// send email
mail("someone@example.com","My subject",$msg);
?>$

Maar ik begrijp daar echt niets van. Je zal weer denken dat ik geen moeite wil doen zeker!
Laat het nu maar zitten en denk maar dat ik een hopeloos geval ben.
Toch bedankt voor alle moeite maar helaas zonder oplossing voor mij.
 
zet de code tussen de PHP-tags eens in het script, op de juiste plek.
 
Ik heb het getest met het hiernavolgend script en ik krijg onmiddellijk een blanko blad bij het versturen. dus een goed ingevuld formulier geeft een blanko blad!

?>
<form id="FormName" action="" method="post" name="FormName">
<table border="0" cellspacing="2" cellpadding="0">
<tr><td align="left"><label for="EmailFrom">Your E-mail</label></td>
<td><input id="EmailFrom" type="text" name="EmailFrom" size="50"></td></tr>
<tr><td align="left" valign="top"><label for="owner"><font size="2">*</font> Owner</label></td>
<td valign="top"><input id="owner" name="owner" type="text" size="50" maxlength="255"></td></tr><tr>
<td align="left" valign="top"><label for="apartment">* Apartment</label></td>
<td valign="top"><input id="apartment" name="apartment" type="text" size="3" maxlength="255"></td></tr><tr>
<td align="left" valign="top"><label for="block">* Block</label></td>
<td valign="top"><input id="block" name="block" type="text" size="3" maxlength="255"></td></tr><tr>
<td align="left" valign="top"><label for="names_friends_and_family">* Names friends and family</label></td>
<td valign="top"><textarea id="names_friends_and_family" name="names_friends_and_family" rows="1" cols="90"></textarea></td></tr><tr>
<td align="left" valign="top"><label for="arrival_date">* Arrival date (DD/MM/YYYY)</label></td>
<td valign="top"><input id="arrival_date" name="arrival_date" type="text" size="25" maxlength="255"></td></tr><tr>
<td align="left" valign="top"><label for="departure_date">* Departure date (DD/MM/YYYY)</label></td>
<td valign="top"><input id="departure_date" name="departure_date" type="text" size="25" maxlength="255"></td></tr><tr>
<td align="left" valign="top"><label for="comments">Comments</label></td>
<td valign="top"><textarea id="comments" name="comments" rows="1" cols="60"></textarea></td></tr><tr>
<td align="left"></td>
<td><input type="submit" name="submitButtonName" value="Send E-mail"></td>
</tr>
</table>
</form>
*
*
<p><strong>Only</strong>when you completed all the fields
indicated with a star (*) you will receive a message that the mail has been
sent.<br>
If you cannot send this register list you can manually send an email to the webmaster
(see contacts in the menu)</p>
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
// dit wordt uitgevoerd na het drukken van de verstuur-knop. Ook wel het POST-proces genoemd
*
$errors = array(); // array container maken voor verzamelen van e.v.t. errors.
// error worden verzameld.
if (!filter_var($_POST['EmailFrom'], FILTER_VALIDATE_EMAIL)) {
* *$errors[] = "E-mail adres is niet correct";
}
if (trim($_POST['owner')=='') {
* *$errors[] = "Owner is niet ingevuld";
}
if (trim($_POST['apartment')=='') {
* *$errors[] = "Appartement is niet ingevuld";
}
*
if(count(errors)==0)<?php
// the message
$msg = "First line of text\nSecond line of text";

// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);

// send email
mail("mijnemailadres@live.be","My subject",$msg);
?>$?>
</body>
</html>
 
Waarom die sterretjes?
Waarom: ?>$?>?

Een blok aan PHP code begin je doorgaan met <?php en ?>

Ik wil niet vervelend zijn, maar wat houdt je tegen om misschien eens een tutorial te doen? Dan weet je in ieder geval hoe de basis en de opbouw is.
 
Kan je dit script echt niet verbeteren?
Ik zal je raad opvolgen en een tutorial doen en voorlopig zal ik mijn bestaand script wel blijven gebruiken.
 
Op de plek van die gele comment dit neerzetten:
Code:
// hier maken we het bericht aan, met de ingevoerde velden uit de $_POST
$msg = "Naam: ".$_POST['Owner']."\n
Mail: ".$_POST['EmailFrom']."\n
Naam: ".$_POST['apartment']."\n
";

// send email
if(mail("mijnemailadres@live.be","My subject",$msg)) {
echo "message sent!";
} else {
echo "Message failed by a system failure. Please contact the administrator at: bladiebla@yaddah.nl";
}

Als je het goed doet, zal het vast wel moeten werken.
 
Ook dat gaf een blanco scherm wanneer ik het formulier (volledig ingevuld) verstuur.
Ik geef het op.
Bedankt voor de moeite!
 
Dan zal je het wel verkeerd geïntegreerd hebben. Als je geen doorzettingsvermogen hebt, dan raad ik aan om ergens een vacature te plaatsen om het te laten doen.

PHP is een leuke en krachtige programmeertaal. Als je maar weet hoe het werkt.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan