29. januar 2009 - 20:46
Der er
2 kommentarer
Tjek ved tilmelding
Hej eksperter,
Jeg har lavet et tilmeldingssystem, men desværre mangler der lidt "sikkerhed" i det. Det jeg godt kunne tænke mig at få ind i scriptet er at den tjekker om mailen eksisterer, om den allerede er i systemet og om tlf. nummerene er 8 digits/tal.
Tilmeld.php:
<?php
include("opencon.php");
$sql="INSERT INTO nyhedsbrev (firstname, lastname, adress, zip, city, phone, cell, sex, birthyear, mail)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[adress]','$_POST[zip]','$_POST[city]','$_POST[phone]','$_POST[cell]','$_POST[sex]','$_POST[birthyear]','$_POST[mail]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Tilføjet!";
include("closecon.php");
?>
23. februar 2009 - 18:53
#2
Flg. kode beskytter dine formularer mod SQL injections med mysql_escape_string().
Desuden er det bygget op sådan at hvis man skriver en eksisterende mail, bliver man afmeldt.
<?php
include("opencon.php");
$fname = mysql_escape_string($_POST['firstname']);
$lname = mysql_escape_string($_POST['lastname']);
$adress = mysql_escape_string($_POST['adress']);
$zip = mysql_escape_string($_POST['zip']);
$city = mysql_escape_string($_POST['city']);
$phone = mysql_escape_string($_POST['phone']);
$cell = mysql_escape_string($_POST['cell']);
$sex = mysql_escape_string($_POST['sex']);
$birth = mysql_escape_string($_POST['birthyear']);
$mail = mysql_escape_string($_POST['mail']);
if($fname == "" OR $lname == "" OR $adress == "" OR $zip == "" OR $city == "" OR $phone == "" OR $cell == "" OR $sex == "" OR $birth == "" OR $mail == ""){
header("Location: ".$_SERVER['HTTP_REFERER']."");
}
$sql = mysql_query("SELECT COUNT(*) AS exist FROM nyhedsbrev WHERE mail = '".$mail."'", $con);
if($sql['exist'] == 0){
if(strlen(is_int($phone)) == 8 AND strlen(is_int($cell)) == 8){
$sqlI="INSERT INTO nyhedsbrev (firstname, lastname, adress, zip, city, phone, cell, sex, birthyear, mail)
VALUES
('".$fname."','".$lname."','".$adress."','".$zip."','".$city."','".$phone."','".$cell."','".$sex."','".$birth."','".$mail."')";
}
} else {
$sqlI = "DELETE FROM nyhedsbrev WHERE mail = '".$mail."'";
}
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Tilføjet!";
include("closecon.php");
?>