Heren,
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>
Wat werkt er niet? Wat gebeurt er? En wat deed je precies?
Voeg eens deze twee regels toe aan het begin van het PHP-script?
Dan zie je waarschijnlijk een foutmelding die aangeeft wat er aan het script mankeert.


<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>


In deze expressie met de functie mail() staat één argument te veel:


<?php
mail("[email protected]", $subject, $msg, $headers, "From: Zomergem Beachsports Team <[email protected]>");
?>


From is een mailheader: die hoort in de string $headers.
Dag Arien
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



[size=xsmall]Toevoeging op 28/06/2016 10:08:26:[/size]

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
Zet dit bovenin je script.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
Dan zijn een aantal variabelen niet gedefineerd, en gebruik je een verouderde eregi-functie.

Laat je relevante code eens zien?

<?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>";
								        }
								    }
?>



[size=xsmall]Toevoeging op 28/06/2016 10:19:11:[/size]

mijn excuses arien
Ik zie hier weinig fouts aan wat opeens stuk kan gaan.
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.


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;
}
Je kan beter de filter_var() van PHP gebruiken om je mailadressen te controleren i.p.v. een door iemand zelf bedachte reguliere expressie. Want deze zal volgens mij al vastlopen met TLD's zoals .amsterdam, .flight, .musea etc.

http://www.w3schools.com/php/filter_validate_email.asp
Ok, bedankt. Doe ik

[size=xsmall]Toevoeging op 28/06/2016 10:29:15:[/size]

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 :)

Reageren