2014-01-28 5 views
-2
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

так в чем ваш вопрос? – bansi

+1

Вы пытаетесь вставить 6 элементов, и вы указали только 5 столбцов. –

+0

. Английский даст вам больше ответов. – MyPasswordIsLasercats

ответ

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() из вашего запроса), или если у вас есть время, связанные поля в базе данных, то добавьте в ваш запрос.

примечание: я корректирую порядок ваших значений.

+0

Кроме того, он обменял электронную почту и адрес в значениях, заданных порядком его столбцов –

+0

ya..true..i обновил ответ. – DS9

Смежные вопросы