Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
lodem009
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 10
1

Данные не заносится в базу данных, несмотря на то, что данные проверку успешно проходят.

11.02.2014, 01:53. Просмотров 951. Ответов 2
Метки нет (Все метки)

Здравствуйте, у меня есть регистрация вот код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?php
if(!defined("access")){die();}
Class Register{
    
    //account email
    private $email;
    //account password
    private $password;
 
    //errors we will be showing to the user
    private $error = '';
    //which field have errors so they get a red border
    private $error_fields = '';
    
    /* Initializes the variables that we will be needing for the registration process
     * $data Array - contains all user info of the form
    */
    function __construct($data){
        $misc = new Misc();
        foreach ($data as $id => $val){
            //assign each item to its variable
            $this->$id = $misc->trimValue($val);//remove all spaces
        }
    }
    
    /* Validates the user data
     * all variables are initialized from the constructor above
     * returns errors if found and registers user if not
    */
    public function registerUser(){
        $misc = new Misc(); //get the Misc Class
        
        //are the variables blank? throw error
        if (
            $this->email != "" && $this->password != "")
        {
            //is the email address valid? if not throw an error
            if(preg_match( "/^[\d\w\/+!=#|$?%{^&}*`'~-][\d\w\/\.+!=#|$?%{^&}*`'~-]*@[A-Z0-9][A-Z0-9.-]{1,61}[A-Z0-9]\.[A-Z]{2,6}$/ix", $this->email ) == 0){
                $this->error .= '<li>Please enter a valid Email address.</li>';
                $this->error_fields .= 'email';
            }
            
            //if the email already exist , throw an error... we dont need duplicates as well
            if ($misc->emailExist(mysql_real_escape_string($this->email))){
                $this->error .= '<li>This email is already taken.</li>';
                $this->error_fields .= 'email';
            }
            
            //if password does not meet our criteria for the password (at least 6 characters length with maximum
            //of 128 characters and alphanumeric throw an error
            if (!ctype_alnum($this->password)
                || strlen($this->password)<6
                || strlen($this->password)>=128
                || !preg_match('`[A-Z]`',$this->password)
                || !preg_match('`[a-z]`',$this->password)
                || !preg_match('`[0-9]`',$this->password)
            ){
                $this->error .= '<li>Your first password must have at least one of each: a-z A-Z 0-9 and be atleast 6 characters.</li>';
                $this->error_fields .= 'password,';
            }
            
            
            //if no errors found , we are good... for now ;)
            if ($this->error == ""){
                //we gotta check if the passwords match
                if ($this->password){
                    //and if the user has entered a valid gender... user can easily change the values from the HTML DOM
 
                        //make an array with all the data for the account
                        $array = array(
 
                            'email' => $misc->escapeValue($email),
                            'password' => $misc->escapeValue($this->password)
 
 
                        );
 
                }
            }
        }else{
            //all fields are blank, tell the user to fill them.
            $this->error .= '<li>Please fill in all fields.</li>';
            //red marked fields
            $this->error_fields .= 'email,password';
        }
        
        //no errors for sure(hopefully)
        if ($this->error == ""){
            //send user a message that the account is registered
            $array = array(
                'error' => false,
                'message' => 'Successfully registered',
                'inputs_errors' => ''
            );
        }else{
            //else send the errors
            $array = array(
                'error' => true,
                'message' => '<ul style="padding:0;margin:0;margin-left:15px;">'.$this->error.'</ul>',
                'inputs_errors' => $this->error_fields
            );
        }
        return $array;
    }
    
    /* @param $data Array - Contains users data
     * Registers the users account
     * returns nothing
    */
    private function addUser($data){
        $misc = new Misc();
        //generate the users id
        $user_id = $misc->generateId();
        $flag = false;
        //until flag is false
        while ($flag == false){
            //check if the user id exists
            $q = mysql_query("SELECT * FROM users WHERE user_id='$user_id'") or die(mysql_error());
            $rows = mysql_num_rows($q);
            //if it does try again till you find an id that does not exist
            if ($rows){
                $user_id = $misc->generateId();
            }else{
                //if it does not exist, exit the loop
                $flag = true;
            }
        }
        if ($flag == true){
            //md5 password
            $password = md5($this->password);
            if ($this->gender == 1){
                $avatar = "photos/default_male.png";
            }else{
                $avatar = "photos/default_female.png";
            }
            //insert into db the data
            mysql_query("INSERT INTO users VALUES ('', '$user_id', '$user_email', '$user_password')");
        }
    }
 
}
?>
А вот обработчик

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {    
    define("access", true);
    include_once 'config/config.php';
    include_once 'classes/misc.class.php';
    include_once 'classes/email.class.php';
    include_once 'classes/photos.class.php';
    $misc = new Misc();
    $photos = new Photos();
    //no errors at start
    $error = false;
    //message to return and inputs with errors
    $message = $inputs_errors = $logged_in = $logged_out = '';
    //assign all variables that we get via the ajax requests
    $method = isset($_POST["method"]) ? $_POST["method"] : "";
 
    $email = isset($_POST["email"]) ? $_POST["email"] : "";
    $password = isset($_POST["password"]) ? $_POST["password"] : "";
    
        $email = isset($_POST["email"]) ? $_POST["email"] : "";
    $password = isset($_POST["password"]) ? $_POST["password"] : "";
    $email_ue = isset($_POST["email_ue"]) ? $_POST["email_ue"] : "";
    //send json back
    $array = array(
        'error' => $error,
        'message' => $message,
        'inputs_errors' => $inputs_errors
    );
    //if user is not logged in
    if (!$misc->loggedIn()){
        //signing in
        if ($method == 'signin'){
            //include the Login class
            include_once 'classes/login.class.php';
            $array = array(
                'email' => $email,
                'password' => $password
            );
            $login = new Login($array);
            //log in the user
            $recieve_data = $login->LoginUser();
            //data got back from log in
            $error = $recieve_data["error"];
            $message = $recieve_data["message"];
            $inputs_errors = $recieve_data["inputs_errors"];
            $logged_in = $recieve_data["logged_in"];
            //send json back
            $array = array(
                'error' => $error,
                'message' => $message,
                'inputs_errors' => $inputs_errors,
                'logged_in' => $logged_in
            );
        }else if ($method == 'signup'){ //signing up
            //includes the register class
            include_once 'classes/register.class.php';
            $array = array(
                'email' => $email,
                'password' => $password
 
            );
            $register = new Register($array);
            //registers the user
            $recieve_data = $register->registerUser();
            //data got back from registration
            $error = $recieve_data["error"];
            $message = $recieve_data["message"];
            $inputs_errors = $recieve_data["inputs_errors"];
            //send json back
            $array = array(
                'error' => $error,
                'message' => $message,
                'inputs_errors' => $inputs_errors
            );
        
        }else if ($method == 'recover_password'){ //recover password
            //include recover password library
            include_once 'classes/recover_password.class.php';
            $recover = new Recover_Password($email);
            //send recover email to the user
            $recieve_data = $recover->sendRecoverEmail();
            //get back data from recover system
            $error = $recieve_data["error"];
            $message = $recieve_data["message"];
            $inputs_errors = $recieve_data["inputs_errors"];
            //send json back
            $array = array(
                'error' => $error,
                'message' => $message,
                'inputs_errors' => $inputs_errors
            );
        }else{
            //every other method cannot go any further than getting an error.
            $error = true;
            $message = 'Could not complete the request.';
        }
    }else{
        //for logged in users
        if ($method == 'update_settings'){
            //updating user settings
            //include the library
            include_once 'classes/change_settings.class.php';
            //send the array with the user data
            $array = array(
 
                'current_password' => $current_password,
                'email' => $email,
                'password' => $password
            );
            $cs = new ChangeSettings($array);
            //update user Settings
            $recieve_data = $cs->updateSettings();
            $error = $recieve_data["error"];
            $message = $recieve_data["message"];
            $inputs_errors = $recieve_data["inputs_errors"];
            //send json back
            $array = array(
                'error' => $error,
                'message' => $message,
                'inputs_errors' => $inputs_errors
            );
        }else
            $message = 'Please log in to use these features.';//simple message when a user tries to do ajax requests when logged in and its not a logout or update settings method
    }
    if ($method == "admin_update_settings"){//changing user settings when logging in as admin
        if (isset($_SESSION["logged_as_admin"])){
            //updating user settings
            //include the library
            include_once 'classes/change_settings.class.php';
            //send the array with the user data
            $array = array(
                'email' => $email,
                'password' => $password
            );
            $cs = new ChangeSettings($array);
            //update user Settings
            $recieve_data = $cs->AdminUpdateSettings();
            $error = $recieve_data["error"];
            $message = $recieve_data["message"];
            $inputs_errors = $recieve_data["inputs_errors"];
            //send json back
            $array = array(
                'error' => $error,
                'message' => $message,
                'inputs_errors' => $inputs_errors
            );
        }
    }
    //headers for JSON
    header('Content-type: application/json');
    //encode the array that we sent back
    echo json_encode($array);
}else die();
?>
Ввожу данные регистрация пишет прошла успешна POST 200 прошол а вот в mysql данные не приходят. Помогите
Если не по теме перенисите.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2014, 01:53
Ответы с готовыми решениями:

Нужно записывать данные в базу данных только при условии если данные уникальны
нужно пропустить те строки в БД, которые совпадают с массивом данных, который...

Не заносится пользователь в базу данных
Доброго времени суток, есть форма регистрации: &lt;body&gt; &lt;form...

Не добавляются данные в базу данных
$dbhost = &quot;localhost&quot;; $dbusername = &quot;root&quot;; $dbpass = &quot;&quot;; $dbname =...

Не добавляются данные в базу данных
Приветствую всех,хочу обратиться с проблемой,которая не даёт мне покоя уже 2...

Данные не заносятся в базу данных
Здравствуйте, есть форма для добавления новости и обработчик к ней, который...

2
pav1uxa
1858 / 1712 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
11.02.2014, 14:18 2
Цитата Сообщение от lodem009 Посмотреть сообщение
mysql данные не приходят
в php.ini стоит это?
Код
error_reporting = E_ALL
display_errors = On
и код выполняется без ошибок?
0
ilikesmile
75 / 75 / 17
Регистрация: 29.11.2013
Сообщений: 262
11.02.2014, 19:55 3
Цитата Сообщение от lodem009 Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
9
10
11
12
while ($flag == false){
* * * * * * //check if the user id exists
* * * * * * $q = mysql_query("SELECT * FROM users WHERE user_id='$user_id'") or die(mysql_error());
* * * * * * $rows = mysql_num_rows($q);
* * * * * * //if it does try again till you find an id that does not exist
* * * * * * if ($rows){
* * * * * * * * $user_id = $misc->generateId();
* * * * * * }else{
* * * * * * * * //if it does not exist, exit the loop
* * * * * * * * $flag = true;
* * * * * * }
* * * * }
Ежи-матержи, прочитайте про auto_increment.
Цитата Сообщение от lodem009 Посмотреть сообщение
PHP
1
mysql_query("INSERT INTO users VALUES ('', '$user_id', '$user_email', '$user_password')");
Поля можно опустить, только при заполнении всех значений. А еще возможно, что просто доступа нет. Лог скажет точно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2014, 19:55

Не записывает данные в базу данных
Всем доброго времени суток. Столкнулся с проблемой записи данных в базу...

Данные не добавляются в Базу Данных
В запросе на добавление данных вроде ошибок нет, не могу понять почему данные...

Не вводятся данные в базу данных
Я зарегистрировался но мои данные с учебного сайта не сохранились и войти не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru