Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 218
1

Профиль пользователя на сайт

11.10.2013, 16:27. Показов 2336. Ответов 4
Метки нет (Все метки)

Здравствуйте, внезапно решил поинтересоваться как сделать чтобы после регистрации на мыло пришло активационное письмо?!
Объясните пожалуйста как это происходит и как сделать, буду очень благодарен!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2013, 16:27
Ответы с готовыми решениями:

Профиль пользователя
Здравствуйте. Делая профиль для пользователя столкнулся с такими проблемами: 1) Дата выводиться...

Профиль пользователя
Здравствуйте. Не могу разобраться. Пишет что операция по изменению профиля удачна. Но страница...

Профиль пользователя
Не понимаю почему профиль пользователя выводит на страницу сайта, пользователь должен войти на сайт...

Профиль пользователя
Здравствуйте. Не могу разобраться. Пишет что операция по изменению профиля удачна. Но страница...

4
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
11.10.2013, 16:39 2
Заводите флаг в таблице аккаунта, или специальную группу.
После регистрации помещаете юзера в группу или ставите флаг, что нужно подтверждение.

Генерируете код, и шлёте его на почту, ну и с ним email или id юзера.
Код можно сгенерировать на основании имеющихся данных.
sha256 ( email : secret_key : id : created : group_id | flag)
ну а при переходе по ссылке, проверяете, выбираете юзера по ид или мылу, генерируете код, и сравниваете с тем что в ссылке.

Если код совпал, то меняем группу или флаг.
0
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 218
11.10.2013, 16:45  [ТС] 3
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Заводите флаг в таблице аккаунта, или специальную группу.
После регистрации помещаете юзера в группу или ставите флаг, что нужно подтверждение.

Генерируете код, и шлёте его на почту, ну и с ним email или id юзера.
Код можно сгенерировать на основании имеющихся данных.
sha256 ( email : secret_key : id : created : group_id | flag)
ну а при переходе по ссылке, проверяете, выбираете юзера по ид или мылу, генерируете код, и сравниваете с тем что в ссылке.

Если код совпал, то меняем группу или флаг.
Создаем файл activation.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
<?php
          include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто    измените путь  
          $result4 =    mysql_query    ("SELECT avatar FROM    users WHERE activation='0'    AND    UNIX_TIMESTAMP()    - UNIX_TIMESTAMP(date)    > 3600");//извлекаем аватарки тех пользователей, которые в    течении часа не активировали свой аккаунт. Следовательно их надо удалить из    базы, а так же и файлы их аватарок
 if    (mysql_num_rows($result4) > 0) {
            $myrow4    = mysql_fetch_array($result4);  
            do 
            {
 
            //удаляем    аватары в цикле, если они не стандартные
            if    ($myrow4['avatar'] == "avatars/net-avatara.jpg") {$a = "Ничего    не делать";}
            else    {
                     unlink ($myrow4['avatar']);//удаляем    файл
                     }
            }
 
            while($myrow4    = mysql_fetch_array($result4));
            }
            mysql_query    ("DELETE FROM users WHERE activation='0' AND UNIX_TIMESTAMP() -    UNIX_TIMESTAMP(date) > 3600");//удаляем пользователей из базы
 if    (isset($_GET['code'])) {$code =$_GET['code']; } //код подтверждения 
            else 
            {    exit("Вы    зашли на страницу без кода подтверждения!");} //если не указали code,    то выдаем ошибку
 if (isset($_GET['login'])) {$login=$_GET['login'];    } //логин,который    нужно активировать
            else 
            {    exit("Вы    зашли на страницу без логина!");} //если не указали логин, то выдаем ошибку
 $result = mysql_query("SELECT    id    FROM    users WHERE login='$login'",$db); //извлекаем    идентификатор пользователя с данным логином
            $myrow    = mysql_fetch_array($result); 
 $activation    = md5($myrow['id']).md5($login);//создаем    такой же код подтверждения
 if ($activation == $code) {//сравниваем полученный из url и сгенерированный код 
                     mysql_query("UPDATE    users SET activation='1' WHERE login='$login'",$db);//если равны, то активируем пользователя
                     echo "Ваш Е-мейл подтвержден! Теперь вы можете    зайти на сайт под своим логином! <a href='index.php'>Главная    страница</a>";
                     }
            else {echo "Ошибка! Ваш Е-мейл не    подтвержден! <a    href='index.php'>Главная    страница</a>";
            //если    же полученный из url и    сгенерированный код не равны, то выдаем ошибку
            }
            ?>
Таким кодом?!Ссылка на исходник

Добавлено через 1 минуту
В какую страницу это нужно вставить? регистрации? (сам скрипт, или в страницу с формой?)

Добавлено через 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
<?php
    
    require_once "functions.php";
    
    /* Получаем и обрабатываем данные */
    $login = escape($_POST['login']);
    if (strlen($login) == 0) exit;
    if (!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])) 
    {
       die("Ошибка. Вы ввели некоректный Логин");
       exit;
    } 
    
    $password = escape($_POST['password']);
    if (strlen($password) == 0) exit;
    if (!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['password'])) 
    {
       die("Ошибка. Вы ввели некоректный Пароль, проверьте раскладку");
       exit;
    } 
 
    $email = escape($_POST['email']);
    if (strlen($email) == 0) exit;
    
    if (!preg_match("/[-a-zA-Z0-9_]{3,20}@[-a-zA-Z0-9]{2,64}\.[a-zA-Z\.]{2,9}/", $_POST['email'])) 
    {
       die("Ошибка. Вы не ввели Email");
       exit;
    } 
 
    $password_hash = md5($password.$hash); // Создаём хеш пароля
    
    $result = $mysqli->query("INSERT INTO `users` (`login`, `password`, `date`, `email`) VALUES ('$login', '$password_hash', UNIX_TIMESTAMP(), '$email')"); // Добавляем пользователя в базу данных
    
    if ($result)
        $user = 'Вы успешно зарегистрировались';
    else
        $user = 'Ошибка регистрации! Попробуйте ешё раз или обратитесь к администрации';
    
    echo $user;
 
?>
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
11.10.2013, 16:46 4
Цитата Сообщение от QvaserZver Посмотреть сообщение
Таким кодом?
Это код Попова, однозначно не таким
Там наличие SQL инъекций + просто не красивый код со странным использованием цикла do ... while
0
2 / 2 / 1
Регистрация: 31.03.2013
Сообщений: 218
11.10.2013, 16:53  [ТС] 5
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Это код Попова, однозначно не таким
Там наличие SQL инъекций + просто не красивый код со странным использованием цикла do ... while
А как мне это сделать?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2013, 16:53

Сделать ссылку на профиль пользователя
Обьясните пожалуйста, как сделать ссылки такого типа: mysite.ru/username. Я знаю, можно сделать...

Короткая ссылка на профиль пользователя
У меня сейчас ссылка на профиль : site.ru/profile?id=1 А как сделать stie.ru/profile1 ? и после...

Как запомнить вошедшего пользователя на сайт ?
Как запомнить вошедшего пользователя на сайт, чтобы при следующем его входе ему не приходилось...

Скорость интернета при входе пользователя на сайт
Подскажите как сделать чтобы при входе на сайт вычислялась скорость интернет соединения посетителя,...


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

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

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