Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
GREMLIN-71
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 7
#1

Подскажите как улучшить форму входа

03.04.2013, 20:13. Просмотров 507. Ответов 3
Метки нет (Все метки)

Прощу не ругаться в php новичек.
Проблема с сессиями...

Делаю профили пользователей. Ну впринципе с помощью великого гугла сделал как то..

Но вот проблема хочу чтобы при авторизации пользователю дописывались сессии фамилии и имени.
Чтобы в определенной части сайта эта информация из профиля отображались.
Но что то не понимаю как это сделать.

Есть скрипт изменения информации пользователя тоесть Имя Фамилия и т.д. когда в форме на сайте нажимаю именить все данные отлично меняются и отображаются и в профиле и в других частях сайта. Ну к примеру имя:

PHP
1
<p>Имя: <? echo $_SESSION[name];?><p>

Когда жму выйти из профиля естественно сессии удаляются. Все нормально все отлично.
Но беда то вот в чем что все отлично отображается только при нажати на кнопку именить.
И после того как с вышел из профиля и сново авторизовался те места где я хочу что бы были имя и фамилия естественно пустые. Надо как то осуществить это а скрипте login.php что бы при успешной авторизации эти сессии записывались.



Вот тот самый скрипт изменения информации о пользователе save_edit.php после которого все успешно работает (комментарии там некоторые левые, но работает все отлично я примерно понимаю что и к чему там)
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
////////Изменение аватары
 
if (isset($_FILES['fupload']['name'])){ //отправлялась ли переменная
 
    if (empty($_FILES['fupload']['name']) AND $_FILES['fupload']['name'] == ''){
        
        $noAvatar = "noAvatar.jpg";//изображение если пользователь не загрузил свое
        $result = mysql_query("SELECT avatar FROM users WHERE id='$id_user'");//извлекаем текущий аватар
        $avatarka = mysql_fetch_array($result);
        
        if ($avatarka['avatar'] != $noAvatar) {//если аватар был стандартный, то не удаляем его, ведь у на одна картинка на всех.
            unlink ('avatars/'.$avatarka['avatar']);
        }   
        
    }
 
    else{
        //иначе - загружаем изображение пользователя для обновления
        $path_to_90_directory = 'avatars/';//папка, куда будет загружаться начальная картинка и ее сжатая копия
            
        if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
             {  
                    
                $filename = $_FILES['fupload']['name'];
                $source = $_FILES['fupload']['tmp_name'];   
                $target = $path_to_90_directory . $filename;
                move_uploaded_file($source, $target);//загрузка оригинала в папку $path_to_90_directory
 
            if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
            $im = imagecreatefromgif($path_to_90_directory.$filename) ; //если оригинал был в формате gif
            }
            if(preg_match('/[.](PNG)|(png)$/', $filename)) {
            $im = imagecreatefrompng($path_to_90_directory.$filename) ;//если оригинал был в формате png
            }
            
            if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
                $im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg
            }
            
        //СОЗДАНИЕ КВАДРАТНОГО ИЗОБРАЖЕНИЯ И ЕГО ПОСЛЕДУЮЩЕЕ СЖАТИЕ ВЗЯТО С САЙТА www.codenet.ru
        
        
        
        
        
        $w = 120;  // ширина изображения
        
        $quality = 100; //Качество создаваемого изображения max 100
                
        $w_src = imagesx($im); //вычисляем ширину
        $h_src = imagesy($im); //вычисляем высоту изображения
        
        //Создавать квадратное изображение $rezim = 1
        //Создать изображение пропорционально оригиналу $rezim = 2
        
        $rezim = 1;     
        
        switch ($rezim){
                //**************************** 1
            case "1" : 
                
                 // создаём пустую квадратную картинку 
                 // важно именно truecolor!, иначе будем иметь 8-битный результат 
                 $dest = imagecreatetruecolor($w,$w); 
 
                 // вырезаем квадратную серединку по x, если фото горизонтальное 
                 
                if ($w_src > $h_src){ 
                    imagecopyresampled($dest, $im, 0, 0, round((max($w_src,$h_src)-min($w_src,$h_src))/2), 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
                }
                 // вырезаем квадратную верхушку по y, 
                if ($w_src < $h_src){
                    imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src)); 
                }
                 // квадратная картинка масштабируется без вырезок 
                
                if ($w_src == $h_src){
                    imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $h_src); 
                }
 
            break;
                    //***************************** 2
            case "2" : 
                $prop = $w_src/$h_src;
                $h = $w/$prop;
                $dest = imagecreatetruecolor($w,$h); 
                imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $h, $w_src, $h_src); 
            break;
            
        }
        
        
        
 
                
        $random = rand(1000000, 9999999);
        imagejpeg($dest, $path_to_90_directory.$random.".jpg", $quality);//сохраняем изображение формата jpg в нужную папку
        
        $avatar = $random.".jpg";//заносим в переменную путь до аватара.
 
        $delfull = $path_to_90_directory.$filename; 
        unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен.
 
        $result = mysql_query("SELECT avatar FROM users WHERE id='$id_user'");//извлекаем текущий аватар пользователя
        $avatarka = mysql_fetch_array($result);
        
        if ($avatarka['avatar'] != $noAvatar) {//если аватар был стандартный, то не удаляем его, ведь у на одна картинка на всех.
            unlink ('avatars/'.$avatarka['avatar']);
        }
        }
        else{
            //в случае несоответствия формата, выдаем соответствующее сообщение
            exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
        }
        
    }
    
 
    $up = mysql_query("UPDATE users SET avatar='$avatar' WHERE id='$id_user'");//обновляем аватар в базе
    if ($up == true) {//если верно, то отправляем на личную страничку
        echo "<meta http-equiv='Refresh' content='0; URL=profile.php?id=".$id_user."'>";
    }
 
}
 
////////Изменение имени
 
    else if (isset($_POST['name'])){//Если существует имя
    $name = $_POST['name'];
    $name = stripslashes($name);
    $name = htmlspecialchars($name);
    $name = trim($name);//удаляем все лишнее
 
    $up = mysql_query("UPDATE users SET name_user='$name' WHERE id='$id_user'");//обновляем имя
    if ($up == true) {
        $_SESSION['name'] = $name;
        echo "<meta http-equiv='Refresh' content='0; URL=profile.php?id=".$id_user."'>";
    }
}
 
////////Изменение фамилии
 
    if (isset($_POST['lastname'])){//Если существует фамилия
    $lastname = $_POST['lastname'];
    $lastname = stripslashes($lastname);
    $lastname = htmlspecialchars($lastname);
    $lastname = trim($lastname);//удаляем все лишнее
 
    $up = mysql_query("UPDATE users SET lastname='$lastname' WHERE id='$id_user'");//обновляем фамилию
    if ($up=='TRUE') {//если верно, то обновляем его в сессии
        $_SESSION['lastname'] = $lastname;
        echo "<meta http-equiv='Refresh' content='0; URL=profile.php?id=".$id_user."'>";
    }
}
 
////////Изменение страны
 
    if (isset($_POST['country'])){//Если существует фамилия
    $country = $_POST['country'];
    $country = stripslashes($country);
    $country = htmlspecialchars($country);
    $country = trim($country);//удаляем все лишнее
 
    $up = mysql_query("UPDATE users SET country='$country' WHERE id='$id_user'");//обновляем страну
    if ($up == true) {
        $_SESSION['country'] = $country;
        echo "<meta http-equiv='Refresh' content='0; URL=profile.php?id=".$id_user."'>";
    }
}
 
////////Изменение города
 
    if (isset($_POST['city'])){//Если существует фамилия
    $city = $_POST['city'];
    $city = stripslashes($city);
    $city = htmlspecialchars($city);
    $city = trim($city);//удаляем все лишнее
    
 
    $up = mysql_query("UPDATE users SET city='$city' WHERE id='$id_user'");//обновляем город
    if ($up == true) {//если верно, то обновляем его в сессии
        $_SESSION['city'] = $city;
        echo "<meta http-equiv='Refresh' content='0; URL=profile.php?id=".$id_user."'>";
    }
}
 
////////Изменение числа, месяца и года
 
    if (isset($_POST['birthdate_day']) AND isset($_POST['birthdate_month']) AND isset($_POST['birthdate_year'])){//Если существует день рождения
    $birthdate_day = $_POST['birthdate_day'];
    $birthdate_day = stripslashes($birthdate_day);
    $birthdate_day = htmlspecialchars($birthdate_day);
    $birthdate_day = trim($birthdate_day);//удаляем все лишнее
    
    if ($birthdate_day == '' OR $birthdate_day > 31) {
        exit("Вы не ввели день рождения<br><a href='edit.php'>Вернуться назад</a>");
    }
    
    $birthdate_month = $_POST['birthdate_month'];
    $birthdate_month = stripslashes($birthdate_month);
    $birthdate_month = htmlspecialchars($birthdate_month);
    $birthdate_month = trim($birthdate_month);//удаляем все лишнее
    
    if ($birthdate_month == '' OR $birthdate_month > 12) {
        exit("Вы не ввели месяц рождения<br><a href='edit.php'>Вернуться назад</a>");
    }
    
    $birthdate_year = $_POST['birthdate_year'];
    $birthdate_year = stripslashes($birthdate_year);
    $birthdate_year = htmlspecialchars($birthdate_year);
    $birthdate_year = trim($birthdate_year);//удаляем все лишнее
    
    if ($birthdate_year == '' OR $birthdate_year < 1940 OR $birthdate_year > 2005) {
        exit("Вы не ввели год рождения<br><a href='edit.php'>Вернуться назад</a>");
    }
 
    $up = mysql_query("UPDATE users SET birthdate_day='$birthdate_day',birthdate_month='$birthdate_month',birthdate_year='$birthdate_year' WHERE id='$id_user'");//обновляем день
    if ($up == true) {
        echo "<meta http-equiv='Refresh' content='0; URL=profile.php?id=".$id_user."'>";
    }
}
 
 
 
////////Изменение пола
 
    if (isset($_POST['sex'])){//Если существует фамилия
    $sex = $_POST['sex'];
    $sex = stripslashes($sex);
    $sex = htmlspecialchars($sex);
    $sex = trim($sex);//удаляем все лишнее
    
    if ($sex == '') {
        exit("Вы не ввели пол<br><a href='edit.php'>Вернуться назад</a>");
    }
 
    $up = mysql_query("UPDATE users SET sex='$sex' WHERE id='$id_user'");//обновляем пол
    if ($up == true) {
        echo "<meta http-equiv='Refresh' content='0; URL=profile.php?id=".$id_user."'>";
    }
}
?>

login.php а это тот самый скрипт авторизации который надо улучшить но я не понимаю как
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
<?php
include_once ("../../php/bd.php");
if (isset($_POST['login'])) {
    $login = $_POST['login']; 
    if ($login == '') {
        unset($login);
        exit ("Введите пожалуйста логин!");
    } 
}
if (isset($_POST['password'])) {
    $password=$_POST['password']; 
    if ($password =='') {
        unset($password);
        exit ("Введите пароль");
    }
}
 
 
$login = stripslashes($login);
$login = htmlspecialchars($login);
 
$password = stripslashes($password);
$password = htmlspecialchars($password);
 
$login = trim($login);
$password = trim($password);
 
$password = md5($password);//шифруем пароль
 
$user = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'");
$id_user = mysql_fetch_array($user);
if (empty($id_user['id'])){
    exit ("Извините, введённый вами логин или пароль неверный.");
}
else {
 
   
    $_SESSION['password']=$password; 
    $_SESSION['login']=$login; 
    $_SESSION['id']=$id_user['id'];
 
    
          
}
echo "<meta http-equiv='Refresh' content='0; URL=/index.php'>";
?>

PHP
1
session_start();
Прописан в bd.php если что...

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2013, 20:13
Ответы с готовыми решениями:

Капча в форму входа + редирект
Во общем всем привет Ребят! Итак сложилась у меня не большая проблемка, вернее...

Как улучшить этот поиск?
if (empty($_POST)) { $what=&quot;&quot;; } else { $what=$_POST; } if...

Вывести форму входа
Всем привет! Не знаю кто как отреагирует, но вопрос наверное будет смешной. ...

Подскажите, как создать форму
Вобщем есть таблица: &lt;table class=&quot;trdiv str2&quot;&gt; &lt;td class=&quot;td1&quot;&gt;&lt;a...

Подскажите как сделать динамическую форму
Добрый вечер! Есть форма: &lt;input type=&quot;checkbox&quot; name=&quot;ch1&quot;&gt; &lt;input...

3
Donald28
странник
809 / 480 / 108
Регистрация: 28.05.2012
Сообщений: 1,516
Записей в блоге: 2
04.04.2013, 00:17 #2
в login.php достань из БД имя пользователя, и присвой его $_SESSION['name'];

если не ошибаюсь то в 31 строке:
PHP
1
$user = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password' AND activation='1'");
и это имя будет содержаться в переменной $id_user['user_name'];
0
GREMLIN-71
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 7
04.04.2013, 04:48  [ТС] #3
Выводит не имя а id пользователя

Добавлено через 26 минут
Цитата Сообщение от GREMLIN-71 Посмотреть сообщение
Выводит не имя а id пользователя
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$user = mysql_query("SELECT id, name_user='$name' FROM users WHERE login='$login' AND password='$password' AND activation='1'");
$id_user = mysql_fetch_array($user);
if (empty($id_user['id'])){
    exit ("Извините, введённый вами логин или пароль неверный.");
}
else {
 
   
    $_SESSION['password']=$password; 
    $_SESSION['login']=$login; 
    $_SESSION['id']=$id_user['id'];
    $_SESSION['name'];
Вроде все так сделал..
0
GREMLIN-71
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 7
05.04.2013, 17:13  [ТС] #4
UP!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2013, 17:13

После входа заново возвращает на форму авторизации
есть вот такая штука(смотри ниже). Короч цель проста- авторизовался и получаешь...

Подскажите пожалуйста, как исправить форму комментария
Здравствуйте! Подскажите пожалуйста, как исправить форму комментария для WP....

Скрыть форму входа на сайт, после успешной авторизации?
Как скрыть форму входа на сайт, после успешной авторизации??? И чтобы вместо...


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

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

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