Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение конкретного e-mail или логина, система авторизации php + mysql 
V
    Опции темы
Cript777
  Дата 18.11.2012, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Приветствую! Вот есть простой скрипт выполняющий авторизацию\регистрацию с помощью mysql. 

форма входа  \ форма регистрации

Код

<table>
<form action="avt.php" method="POST">
<tr>
<td>Имя</td>
<td><input type="text" name="login"></td>
</tr>

<tr>
<td colspan="2"> <input type="submit" value="OK" name="submit"></td>
</tr>
</form>
</table>





<table>
<form action="reg.php" method="POST">
<tr>
<td>Имя</td>
<td><input type="text" name="login" ></td>
</tr>

<tr>
<td>Email</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="OK" name="submit" ></td>
</tr>

</form>
</table>


авторизация 

Код

<?php
include_once("connect.php");
if(isset($_POST['submit']))
{
$login = $_POST['login'];
$login=mysql_real_escape_string($login);
$query = "SELECT id, login
FROM users
WHERE login ='{$login}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) == 1)
echo 'Успешный вход .$login. ';
else 
echo 'Неверно введен логин';
}

?>


регистрация 

Код

<?
include_once("connect.php");
if (isset($_POST['submit']))
{
if(empty($_POST['login']))
{
echo 'Вы не ввели логин';
}

else
{
$login = $_POST['login'];
$email = $_POST['email'];
$query = "SELECT `id`
FROM `users`
WHERE `login`='{$login}'
";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) > 0)
{
echo 'Такой логин уже существует';
}

else 
{
$login=mysql_real_escape_string($login);
$email=mysql_real_escape_string($email);
$query = "INSERT INTO users(login , email )
VALUES ('$login', '$email')";
$result = mysql_query($query) or die(mysql_error());;
echo 'Регистрация успешно прошла';
}
}
}
?>


sql запрос

Код

CREATE TABLE `users` (
`id` INT( 255 ) NOT NULL AUTO_INCREMENT ,
`login` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
);


Вопрос такой. В файле авторизации есть такой момент 'Успешный вход .$login. ';  ни как не получается чтобы вместо .$login. отображался логин пользователя и имайл ('$email')  smile 

Это сообщение отредактировал(а) Cript777 - 18.11.2012, 06:09
PM MAIL   Вверх
Sanchezzz
Дата 18.11.2012, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Если я правильно вас понял вы хотите войти через авторизацию не только login  но и через email верно? 
Тогда sql должен быть с условием Или
Код

$sql = "SELECT id, login,email
FROM users
WHERE login ='{$login}' OR email='{$login}' 
LIMIT 1";



Это сообщение отредактировал(а) Sanchezzz - 18.11.2012, 08:12


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Guedda
Дата 18.11.2012, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



Вместо одинарных ковычек используйте двойные, или, если одинарные Вам ооочень хочется, то пишите так:
Код

'Успешный вход ' . $login

так как одинарные кавычки не обрабатывают переменную как переменную.

Добавлено через 1 минуту и 29 секунд
Цитата(Sanchezzz @  18.11.2012,  09:12 Найти цитируемый пост)
Если я правильно вас понял вы хотите войти через авторизацию не только login  но и через email верно? 

Нет. Судя по всему, у него е-мейл - это типа пароля smile


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Sanchezzz
Дата 18.11.2012, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Цитата

Нет. Судя по всему, у него е-мейл - это типа пароля  
  smile 


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Cript777
Дата 18.11.2012, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Guedda @ 18.11.2012,  08:13)
Вместо одинарных ковычек используйте двойные, или, если одинарные Вам ооочень хочется, то пишите так:
Код

'Успешный вход ' . $login

так как одинарные кавычки не обрабатывают переменную как переменную.


Нет. Судя по всему, у него е-мейл - это типа пароля smile

С логином сработало, очень выручили! 
Пароль здесь не нужен, а имайл как необязательный параметр..  вот с   . $email  не получилось - не отображает.. что не так?
PM MAIL   Вверх
Guedda
Дата 18.11.2012, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



Цитата(Cript777 @  18.11.2012,  18:12 Найти цитируемый пост)
вот с   . $email  не получилось - не отображает.. что не так? 

Постараюсь побыть волшебником, и поугадывать Ваши мысли: не получилось в скрипте авторизации? Так и не получится, потому что Вы переменную $email нигде не инициализируете.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Sanchezzz
Дата 18.11.2012, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



телепаты в отпуске  smile 


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Cript777
Дата 18.11.2012, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Guedda @ 18.11.2012,  18:06)
Цитата(Cript777 @  18.11.2012,  18:12 Найти цитируемый пост)
вот с   . $email  не получилось - не отображает.. что не так? 

Постараюсь побыть волшебником, и поугадывать Ваши мысли: не получилось в скрипте авторизации? Так и не получится, потому что Вы переменную $email нигде не инициализируете.

Был бы очень признателен если поточнее...  Если в моменте WHERE login ='{$login}' добавить OR email='{$login}' то после входа имайл отображается но под видом логина, хотелось бы чтобы правильно было...
PM MAIL   Вверх
Guedda
Дата 18.11.2012, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



Ну тогда вместо 
Код

$login = $_POST['login'];

напиши
Код

$login = $email = $_POST['login'];

И потом вставляй $email;


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Cript777
Дата 18.11.2012, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Guedda @ 18.11.2012,  19:39)
Ну тогда вместо 
Код

$login = $_POST['login'];

напиши
Код

$login = $email = $_POST['login'];

И потом вставляй $email;

В этом случае он выводит login вместо email, а нужно чтобы определял именно email из бд (всего 3 строки id, login, email) .

PM MAIL   Вверх
Guedda
Дата 18.11.2012, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



В выборке sql-запроса еще добавьте поле email и потом немного усложните конструкцию:
Код

<?php
include_once("connect.php");
if(isset($_POST['submit']))
{
    $login = $_POST['login'];
    $login=mysql_real_escape_string($login);
    $query = "SELECT id, login, email
    FROM users
    WHERE login ='{$login}'
    LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
    if (mysql_num_rows($sql) == 1) {
        $row = mysql_fetch_array($sql);
        $email = isset($row['email']) ? $row['email'] : "";
        echo 'Успешный вход ' . $email;
    } else { echo 'Неверно введен логин'; }
}
?>


Это сообщение отредактировал(а) Guedda - 18.11.2012, 21:25


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Cript777
  Дата 18.11.2012, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Guedda @ 18.11.2012,  21:24)
В выборке sql-запроса еще добавьте поле email и потом немного усложните конструкцию:
Код

<?php
include_once("connect.php");
if(isset($_POST['submit']))
{
    $login = $_POST['login'];
    $login=mysql_real_escape_string($login);
    $query = "SELECT id, login, email
    FROM users
    WHERE login ='{$login}'
    LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
    if (mysql_num_rows($sql) == 1) {
        $row = mysql_fetch_array($sql);
        $email = isset($row['email']) ? $row['email'] : "";
        echo 'Успешный вход ' . $email;
    } else { echo 'Неверно введен логин'; }
}
?>

 smile То что нужно, и в правду волшебство!  smile 
PM MAIL   Вверх
Aliance
Дата 19.11.2012, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Зачем при регистрации делать лишний запрос к БД? Не проше ли поставить уникальный индекс на поля и проверять по коду ошибки.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1381 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.