Foutje in Code
Ik heb geen kaas gegeten van Php, dat is al een slecht begin.
ik had een basiswebsite die elk jaar maar een maand online komt. Vroeger werkte de php code ervan, plots niet meer. Kan iemand me helpen ?
wat is er mis met dit stukje code ? Het is een invulform
mail("[email protected]", $subject, $msg, $headers, "From: BLBLABL Team <[email protected]>");
of zit mijn fout ergens anders in de code ?
op de verzendknop zit dit :
<div id=\"contactknop\"><input type=\"submit\" name=\"verzenden3\" value=\"Verzend!\"></div>
Gewijzigd op 28/06/2016 09:58:14 door Jo Mou
Wat werkt er niet? Wat gebeurt er? En wat deed je precies?
Dan zie je waarschijnlijk een foutmelding die aangeeft wat er aan het script mankeert.
In deze expressie met de functie mail() staat één argument te veel:
Code (php)
1
2
3
2
3
<?php
mail("[email protected]", $subject, $msg, $headers, "From: Zomergem Beachsports Team <[email protected]>");
?>
mail("[email protected]", $subject, $msg, $headers, "From: Zomergem Beachsports Team <[email protected]>");
?>
From is een mailheader: die hoort in de string $headers.
Bedankt voor de snelle reply.
Ik heb een basis php pagina waar 2 forms op staan. En deze werken niet meer en ik vind de reden niet
http://78.22.156.152:10000/seasonbreaks/index-5.php
Toevoeging op 28/06/2016 10:08:26:
Ik krijg nu dit als foutcode
Deprecated: Function eregi() is deprecated in /volume1/web/seasonbreaks/index-5.php on line 15 Notice: Undefined index: TeamNaam in /volume1/web/seasonbreaks/index-5.php on line 195 Notice: Undefined index: Reservespeler in /volume1/web/seasonbreaks/index-5.php on line 198
en
Notice: Undefined variable: headers in /volume1/web/seasonbreaks/index-5.php on line 207
Gewijzigd op 28/06/2016 10:07:54 door Jo Mou
Laat je relevante code eens zien?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
if(check_mail($Email) == 1)
{
$msg = "Zomergem Beachsports: Inschrijving Beachvolley\n";
$msg .= "\n";
$msg .= "Team Naam: " . htmlentities($_POST['TeamNaam']) . "\n";
$msg .= "Speler 1: " . htmlentities($_POST['NaamSpeler1']) . "\n";
$msg .= "Speler 2: " . htmlentities($_POST['NaamSpeler2']) . "\n";
$msg .= "Reservespeler: " . htmlentities($_POST['Reservespeler']) . "\n";
$msg .= "E-mail: " . htmlentities($_POST['Email']) . "\n";
$msg .= "Catergorie : " . htmlentities($_POST['Poule']) . "\n";
$subject = "Zomergem Beachsports: Inschrijving Beachvolley";
echo "<table style=\"margin-left:19px\" class=\"form\">
<tr><td>Uw inschrijving is doorgegeven. Alvast bedankt!<br><br>";
echo "Wijzigingen aan uw inschrijving kan u doorgeven door een e-mail te sturen naar xxx<br><br>";
echo "Let wel, uw inschrijving is pas definitief wanneer u het inschrijvingsgeld hebt overgeschreven op rekeningnummer BE27 0635 2660 7173 met vermelding: Teamnaam + beachtennis. Op die manier willen wij voorkomen dat ploegen op het laatste moment afzeggen. U ontvangt binnen de 3 dagen een bevestigingsmail!</td></tr></table>";
mail('[email protected]', $subject, $msg, "From: Zomergem Beachsports Team <[email protected]>");
}
else
{
echo "<a href=\"javascript:history.back(-1)\">Terug</a><br><br>";
echo "<ol>";
echo "<li><b>Ongeldig</b> e-mailadres</li>";
}
}
?>
if(check_mail($Email) == 1)
{
$msg = "Zomergem Beachsports: Inschrijving Beachvolley\n";
$msg .= "\n";
$msg .= "Team Naam: " . htmlentities($_POST['TeamNaam']) . "\n";
$msg .= "Speler 1: " . htmlentities($_POST['NaamSpeler1']) . "\n";
$msg .= "Speler 2: " . htmlentities($_POST['NaamSpeler2']) . "\n";
$msg .= "Reservespeler: " . htmlentities($_POST['Reservespeler']) . "\n";
$msg .= "E-mail: " . htmlentities($_POST['Email']) . "\n";
$msg .= "Catergorie : " . htmlentities($_POST['Poule']) . "\n";
$subject = "Zomergem Beachsports: Inschrijving Beachvolley";
echo "<table style=\"margin-left:19px\" class=\"form\">
<tr><td>Uw inschrijving is doorgegeven. Alvast bedankt!<br><br>";
echo "Wijzigingen aan uw inschrijving kan u doorgeven door een e-mail te sturen naar xxx<br><br>";
echo "Let wel, uw inschrijving is pas definitief wanneer u het inschrijvingsgeld hebt overgeschreven op rekeningnummer BE27 0635 2660 7173 met vermelding: Teamnaam + beachtennis. Op die manier willen wij voorkomen dat ploegen op het laatste moment afzeggen. U ontvangt binnen de 3 dagen een bevestigingsmail!</td></tr></table>";
mail('[email protected]', $subject, $msg, "From: Zomergem Beachsports Team <[email protected]>");
}
else
{
echo "<a href=\"javascript:history.back(-1)\">Terug</a><br><br>";
echo "<ol>";
echo "<li><b>Ongeldig</b> e-mailadres</li>";
}
}
?>
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Toevoeging op 28/06/2016 10:19:11:
mijn excuses arien
Gewijzigd op 28/06/2016 10:17:54 door - Ariën -
Wel wat opmerkingen om niet voor elke regel een echo te starten en single-quotes (') te gebruiken. Dit voorkomt het 'escapen' van de dubbele quotes uit je HTML.
De enige fout is nog je eregi-functie, maar die vind ik niet in je gegeven code terug.
- Ariën - op 28/06/2016 10:20:04:
De enige fout is nog je eregi-functie, maar die vind ik niet in je gegeven code terug.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
function check_mail($email)
{
$email_host = explode("@",$email);
$email_host = isset($email_host['1']) ? $email_host['1'] : "";
$email_domein = gethostbyname($email_host);
$geldig = 0;
if($email_domein !== $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email))
{
$geldig = 1;
}
return $geldig;
}
{
$email_host = explode("@",$email);
$email_host = isset($email_host['1']) ? $email_host['1'] : "";
$email_domein = gethostbyname($email_host);
$geldig = 0;
if($email_domein !== $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email))
{
$geldig = 1;
}
return $geldig;
}
Gewijzigd op 28/06/2016 10:22:37 door Jo Mou
http://www.w3schools.com/php/filter_validate_email.asp
Gewijzigd op 28/06/2016 10:25:17 door - Ariën -
Toevoeging op 28/06/2016 10:29:15:
Heren, bedankt voor jullie tijd, maar hoe meer ik verander hoe meer fouten er op komen. Ik ken er gewoon niks van.
Zal beter de site gewoon offline halen :)
Dus
1. Ik heb de eregi-functie volledig gewist en vervangen door
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
error_reporting(E_ALL);
ini_set('display_errors', '1');
// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
error_reporting(E_ALL);
ini_set('display_errors', '1');
// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
Daar krijg ik een fout op (Notice: Undefined variable: email in /volume1/web/seasonbreaks/index-5.php on line 7 is not a valid email address)
2. Ik krijg onder mijn form deze
Notice: ob_end_flush(): failed to delete and flush buffer. No buffer to delete or flush in /volume1/web/seasonbreaks/index-5.php on line 389
3. De form werkt nog steeds niet :)
Toevoeging op 28/06/2016 10:37:44:
Ik ga er gewoon afblijven, php pagina wegdoen, en een html pagina van maken. Schoenmaker blijf bij je leest :)
Gewijzigd op 28/06/2016 10:37:02 door Jo Mou
En hoe ziet jouw check_mail() functie er nu uit?
Ik heb beslist de pagina niet te gebruiken. Omdat het me toch niet zal lukken ongeacht welke goeie tips jullie me zullen geven. Je hoeft er dus je tijd niet meer in de steken.
Toch bedankt
Zomaar een paar mogelijkheden als je niet op wilt geven.
Indien er een probleem in de functie check_mail() is dan los je dit ook daar op.
Een functie is niets meer dan een zwarte doos waar je iets instopt (in dit geval $email) en waar iets uitkomt (in dit geval 0 of 1). Het enige wat aangepast dient te worden is de inhoud (ook wel implementatie genoemd) van de functie met behoud van het gedrag hiervan (invoer $email; uitvoer 0 of 1) zodat aan de buitenkant van de functie in wezen niets verandert.
Je zou er dus zoiets van kunnen maken:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
function check_mail($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL) === false ? 0 : 1;
}
?>
function check_mail($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL) === false ? 0 : 1;
}
?>
Gewijzigd op 28/06/2016 13:49:42 door Thomas van den Heuvel