列数与第1行的值计数不匹配?

时间:2014-01-28 10:07:27

标签: php

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)";

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())或者如果你有一个与时间相关的字段进入数据库,那么就加入你的查询。

注意:我会调整您的值的顺序。