注册表单不是数据库表中的已发布详细信息

时间:2013-12-18 00:20:22

标签: php mysql database forms

我正在尝试制作注册表格。在我的每个PHP代码是寄存器形式的工作文件,但一个问题。当我点击提交按钮时,它没有注册,只说 - “错误没有从详细信息中发布数据库用户表”。

我在注册系统中有3个选项。 register.php 的第一个功能我认为我的问题就在这里。

<?php  
include '../core/init.php';
if (empty($_POST) === false && empty($errors) === true ) {

$register_data = array(
   'name'    => $_POST['name'],
   'surname'    => $_POST['surname'],
   'email'    => $_POST['email'],
   're_email'    => $_POST['re_email'],
   'password'    => $_POST['password'],
   'day'    => $_POST['day'],
   'year'    => $_POST['year'],
   'month'    => $_POST['month'],
   'birthday'    => $_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day'],
   'kadin_erkek'    => $_POST['optionsRadios']
);

register_user($register_data);
}
if(empty($_POST) === false) {
    $required_fields = array('name','surname','email','re_email','password','birthday','kadin_erkek');
    foreach($_POST as $key=>$value) {
        if(empty($value) && in_array($key, $required_fields) === true) {
             echo"<div class='error_name'>Doldurmanız gereken alanları boş bıraktınız!</div>";
           exit();
             break 1;
            }
        }
        if (empty($errors) === true) {
            if(user_exists($_POST['email']) === true) {
                echo"<div class='error_name'> Üzgünüz bu email adresi kullanımda</div>";

                }
                if($_POST['email'] !== $_POST['re_email']) {
                    echo"<div class='error_name'> Email adresleri eşleşmiyor</div>";

                    } 
                if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
                    echo"<div class='error_name'>Lütfen geçerli bir email adresi giriniz!</div>";

                    }
                if(strlen($_POST['password']) < 6) {

                    echo"<div class='error_name'>Parolanız en az 6 karakter olabilir</div>";
                    }

            }

    }

?>

第二次是 users.php 功能

function register_user($register_data) {
    array_walk($register_data, 'array_sanitize');
    $register_data['password'] = md5($register_data['password']);
    $fields = '`' . implode('`,`', array_keys($register_data)) . '`';
    $data = '\'' . implode('\', \'', $register_data) . '\'';
    mysql_query("INSERT INTO `users` ($fields) VALUES ($data)");
    }

,最后一个是 general.php

<?php 
function array_sanitize(&$item) {
    $item =  mysql_real_escape_string($item);
    }
function sanitize($data) {
    return mysql_real_escape_string($data);
}

?>

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。如果你遇到这样的问题的朋友。 date,month,year post方法使用相同的参数。就像那样:

这是我在本节中的register.php我有一年,数据月份的形式:

首先,register.php代码在这里:

<?php  
include '../core/init.php';
if (empty($_POST) === false && empty($errors) === true ) {

$register_data = array(
   'name'    => $_POST['name'],
   'surname'    => $_POST['surname'],
   'email'    => $_POST['email'],
   're_email'    => $_POST['re_email'],
   'password'    => $_POST['password'],
   'day'    => $_POST['day'],
   'year'    => $_POST['year'],
   'month'    => $_POST['month'],
   'birthday'    => $_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day'],
   'kadin_erkek'    => $_POST['optionsRadios']
);

register_user($register_data);
}
if(empty($_POST) === false) {
    $required_fields = array('name','surname','email','re_email','password','birthday','kadin_erkek');
    foreach($_POST as $key=>$value) {
        if(empty($value) && in_array($key, $required_fields) === true) {
             echo"<div class='error_name'>Doldurmanız gereken alanları boş bıraktınız!</div>";
           exit();
             break 1;
            }
        }
        if (empty($errors) === true) {
            if(user_exists($_POST['email']) === true) {
                echo"<div class='error_name'> Üzgünüz bu email adresi kullanımda</div>";

                }
                if($_POST['email'] !== $_POST['re_email']) {
                    echo"<div class='error_name'> Email adresleri eşleşmiyor</div>";

                    } 
                if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
                    echo"<div class='error_name'>Lütfen geçerli bir email adresi giriniz!</div>";

                    }
                if(strlen($_POST['password']) < 6) {

                    echo"<div class='error_name'>Parolanız en az 6 karakter olabilir</div>";
                    }

            }

    }

?>

我删除了:

'day'    => $_POST['day'],
   'year'    => $_POST['year'],
   'month'    => $_POST['month'],

我的代码和问题中的这个paramatr已经完成。

这是月份,日期和年份的表格。 对于DAY:          天             

            <option value="<?=$i;?>"><?=$i;?></option>
        <? endfor; ?>
    </select>

对于MONTH:

<select name="month">
        <option value='0'>Ay</option>
        <option value='1'>Oca</option>
        <option value='2'>Şub</option>
        <option value='3'>Mar</option>
        <option value='4'>Nis</option>
        <option value='5'>May</option>
        <option value='6'>Haz</option>
        <option value='7'>Tem</option>
        <option value='8'>Agu</option>
        <option value='9'>Eyl</option>
        <option value='10'>Eki</option>
        <option value='11'>Kas</option>
        <option value='12'>Ara</option>
    </select>

年份:

<select name="year">
            <option value="">Yıl</option>
        <? for($i = 2013; $i > 1904; $i--) : ?>
            <option value="<?=$i;?>"><?=$i;?></option>
        <? endfor; ?>
    </select>

不使用此,因为数据库表中没有只有生日

   'day'    => $_POST['day'],
   'year'    => $_POST['year'],
   'month'    => $_POST['month'],

当你发布它时,它看起来像这样的表:

<强> 1970年5月5日