validering af email
Hey alle sammen. Jeg har følgende kode som bare ikke vil validere navnet om til en "mailto:". Dette er et stykke af en tagwall, som jeg tror problemet ligger i.På forhånd tak!
<?php
ob_start();
require("./gbog-ting/mysql-funktioner.php");
require("./gbog-ting/design-funktioner.php");
require("./gbog-ting/indstillinger.php");
/*
* Foerst napper vi variablerne fra miljoet.
*/
if(is_array($HTTP_POST_VARS)) {
$navn = $HTTP_POST_VARS['navn'];
$emne = $HTTP_POST_VARS['emne'];
$epost = $HTTP_POST_VARS['epost'];
$besked = $HTTP_POST_VARS['besked'];
} elseif (is_array($_POST)) {
$navn = $_POST['navn'];
$emne = $_POST['emne'];
$epost = $_POST['epost'];
$besked = $_POST['epost'];
}
/*
* Her er en simpel funktion der spytter en fejlmelding ud.
* Den bruger vi senere, når vi checker, at folk har skrevet noget i formularen.
*/
function gbog_fejl($fejl) {
$generel_tekst = "<p>Vær venlig at gå tilbage og ret til.</p>";
$fejlmelding = "<ul>";
for($i=0;$i<count($fejl);$i++) {
$fejlmelding .= "<li>". $fejl[$i];
}
$fejlmelding .= "</ul>";
echo top("Fejl") . "Gæstebogen brokkede sig lidt over dit input:" . $fejlmelding . $generel_tekst . bund();
exit;
}
/*
* Denne funktion skriver i gæstebogen - altså i databasen.
* Bemærk, at vi ikke bruger PHP til at indsætte tiden, men
* bruger MySQLs indbyggede funktion now().
*/
function skriv_i_gbog($navn, $emne, $epost, $besked) {
$ip = getenv('REMOTE_ADDR');
$sql = "insert into gaestebog(navn,epost,besked,emne,ip,tid)
values('$navn','$epost','$besked','$emne','$ip',now())";
aabn_forbindelse_og_vaelgdb();
sql_spoerg($sql);
luk_forbindelse();
}
/*
* Vi laver lidt simpelt fejlcheckeri og ser, om der overhovedet
* er skrevet noget. Hvis ikke, bruger vi fejlfunktionen til at brokke os.
* Fejlfunktionen slutter med "exit", der sørger for, at PHP stopper.
*/
if(!ereg("[A-z0-9]+", $navn)) {
$fejl[] = "Du har ikke skrevet dit navn";
}
if(!ereg("[A-z0-9]+", $besked)) {
$fejl[] = "Du har ikke skrevet nogen besked";
}
if(count($fejl) > 0) {
gbog_fejl($fejl);
}
/*
* Hvis vi er nået hertil, så står der i det mindste et eller andet i felterne og vi
* knalder det i databasen med funktionen skriv_i_gbog().
* Vi escaper alle fyfy-tegn med addslashes(). Når vi senere præsenterer indholdet
* af gBogen bruger vi stripslashes() til at "afkode".
*
* Alt dette besvær er til for at folk ikke skal snige ondsindede SQL-kommandoer
* ind i deres indlæg. Nyere versioner af PHP gør alt dette automatisk,
* men vi kan godt li' at være på den sikre side.
*/
skriv_i_gbog(addslashes($navn),addslashes($epost),addslashes($emne),addslashes($besked));
/*
* Så er skidtet banket i databasen og vi sender folk videre til selve gBogen
* hvor de kan se deres eget indlæg.
*/
header("Location: gbog.php");
/*
* Skal der sendes epost til administratoren?
*
* Bemærk, at vi godt kan gøre dette selv om folk er sendt videre til gBogen.
* Der er ingen grund til at gæsterne skal vente på, at der bliver sendt
* post - derfor kommer det først allersidst.
*/
if($epost_p == "t") {
$ip = getenv('REMOTE_ADDR');
$epostens_indhold = "$navn har skrevet denne besked fra IP-adressen $REMOTE_ADDR:\n-----------------------------------------------------\n\n$besked";
mail($admin_epost, "b-teens tagwall!", $epostens_indhold);
}
ob_end_flush();
?>