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

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

11.02.2014, 01:53. Просмотров 993. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2014, 01:53
Ответы с готовыми решениями:

Введенные данные структуры не проходят проверку в конце (if (Sum/7 >= new_midsumma) и просто все эти данные выводят
Задание: Описать структуру с именем «Студенты», содержащую следующие поля: фамилия и инициалы;...

Как занести данные в базу полностью (сейчас заносится только title)?
Здравствуйте!!! Помогите понять, почему у меня заносится в бд только ТИТЛ , а остальные поля...

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

Как сделать что бы в базу данных заносились данные по умолчанию?
Например мне нужно что бы после регистрации если человек не выбрал аватар,то в базу данных по...

Как узнать, что данные успешно добавились в БД?
Сложилась такая ситуация: добавляется данные через INSERT в программе на делфи и почти сразу же...

2
pav1uxa
1890 / 1733 / 814
Регистрация: 23.01.2014
Сообщений: 6,134
Завершенные тесты: 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
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2014, 19:55

Программа не выводит данные при том, что успешно компилируется
вот собственно код самой программы: program fdggf; var a,b,e,c,fa,fb,fc,: real; begin write...

Reports 1 загрузился успешно, а при попытке загрузить 2 и 3 появляется надпись, что не все данные были записаны в реестр
Здравствуйте! У меня тоже семерка. Reports 1 загрузился успешно, а при попытке загрузить 2 и 3...

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


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

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

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