if($_SERVER['REQUEST_METHOD'] != 'POST')
{
/*formularen er ikke blevet postet endnu, vis den.
bemærke, at action = "" vil medføre, at formularen til at sende til den samme side det er på */
echo '<form method="post" action="">
<table border="0" >
<tr><td> Dit navn: </td><td> <input type="text" class="ed" name="bruger_navn" />
<tr><td> Din adresse: </td><td> <input type="text" class="ed" name="bruger_adresse" />
<tr><td> Din email: </td><td> <input type="email" class="ed" name="bruger_email" />
<tr><td> Vælg password: </td><td> <input type="password" class="ed" name="bruger_kode"/>
<tr><td> Bekræft password: </td><td> <input type="password" class="ed" name="bruger_kode_check"/>
<br> <tr><td>
<div class="check">
<label for="checkbox">Jeg har læst og er acceptere centrets regler</label>
<input type="checkbox" class="checkbox" name="check" required />
<input type="submit" value="Send" id="button1" />
</form></td><td>';
}
else
{
/* Formularen er blevet postet. Dataen bliver behandlet i tre trin:
1. Tjek dataen
2. Lad brugeren udfylde de tomme felter, hvis det er nødvendigt
3. Gem dataen
*/
$errors = array(); /* erklære arrayet til senere brug */
if(isset($_POST['bruger_navn']))
{
//Brugernavnet findes ctype_alnum betyder at den skal indholder kun tal og bogstaver "Ingen Mellemrum".
if(!ctype_alnum($_POST['bruger_navn']))
{
$errors[] = 'Brugernavnet kan kun indeholde bogstaver og tal.';
}
if(strlen($_POST['bruger_navn']) > 30)
{
$errors[] = 'Brugernavnet må ikke være længere end 30 tegn.';
}
}
else
{
$errors[] = 'Du skal udfylde et brugernavn.';
}
if(isset($_POST['bruger_kode']))
{
if($_POST['bruger_kode'] != $_POST['bruger_kode_check'])
{
$errors[] = 'Adgangskoden matcher ikke.';
}
}
else
{
$errors[] = 'Du skal udfylde en adgangskode.';
}
if(!empty($errors)) /*kontrollere, om der er et tomt array, hvis der er fejl, hvis der er, er de i dette array*/
{
echo 'Du mangler at udfylde nogle felter.<br /><br />';
echo '<ul>';
foreach($errors as $key => $value) /* går gennem arrayet, så alle fejl bliver vist */
{
echo '<li>' . $value . '</li>'; /* Her laves en liste med fejlene */
}
echo '</ul>';
}
else
{
// formularen er nu postet uden fejl, så det bliver gemt
// bemærk brug af mysql_real_escape_string, holder alt sikkert!
// SHA1 funktionen, hasher adgangskoden
$sql = "INSERT INTO
bruger(bruger_navn, bruger_adresse, bruger_email, bruger_kode, fk_roller_id)
VALUES('" . mysql_real_escape_string($_POST['bruger_navn']) . "',
'" . mysql_real_escape_string($_POST['bruger_email']) . "',
'" . mysql_real_escape_string($_POST['bruger_adresse']) . "',
'" . sha1($_POST['bruger_kode']) . "',
NOW(),
1)";
答案 0 :(得分:1)
您的查询中有5个字段,并在其中插入6个值。
INSERT INTO
bruger(bruger_navn, bruger_adresse, bruger_email, bruger_kode, fk_roller_id)
VALUES('" . mysql_real_escape_string($_POST['bruger_navn']) . "',
'" . mysql_real_escape_string($_POST['bruger_adresse']) . "',
'" . mysql_real_escape_string($_POST['bruger_email']) . "',
'" . sha1($_POST['bruger_kode']) . "',
1)
所以删除未使用的值。(根据我的说法,你没有时间字段,所以我从查询中删除now()
)或者如果你有一个与时间相关的字段进入数据库,那么就加入你的查询。
注意:我会调整您的值的顺序。