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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема регистрации и ввывода данных 
:(
    Опции темы
MrDmitry
Дата 21.12.2007, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть таблица со следующими полями
Login
Password 
email
name

Вот код регистрации

Код

<?php
$_db_inc_ = true;
include("db.inc.php");

if(isset($_POST['submit'])) {
    if($_POST['password'] === $_POST['password2']) {
        $_POST['login'] = htmlspecialchars($_POST['login']);
        $_POST['password'] = htmlspecialchars($_POST['password']);
        $_POST['email'] = htmlspecialchars($_POST['email']);
        $_POST['name'] = htmlspecialchars($_POST['name']);

        $res = mysql_query("SELECT * FROM `user` WHERE `login`='{$_POST['login']}' OR `name`='{$_POST['name']}'");
        echo mysql_error();
        if(@mysql_num_rows($res) < 1) {
            mysql_query("INSERT INTO `user` (`login`, `password`, `email`, `name`) VALUES ('{$_POST['login']}', '".md5($_POST['password'])."', '{$_POST['email']}', '{$_POST['name']}')");
            echo mysql_error();
            
         mysql_query("INSERT INTO `user_par` (`name`, `level`, `sila`, `lovk`, `slosh`, `intel`, `charism`, `crediti`, `exp`, `param`, `hp`) VALUES ('{$_POST['login']}', '1', '1', '1', '1', '1', '1', '0', '0', '20', '10')");
         echo mysql_error();
        ?>
<br><br>
<center>Вы зарегистрированы. Можете <a href="/index.php">войти</a></center>
        <?
        exit;
        exit;
        }    
    else {
            header("Location: /index.php?err=4");
            exit;
        }
    } else {
        header("Location: /index.php?err=3");
        exit;
    }
}

header("Location: /index.php");

?>


Если я регестрирую 1 пользователя то все норм а если 2 то браузер подвисает ((
помогает только удаление cookies ((


И еще помогите вывести список всех зарегестрированных пользователей (по полю name)
PM MAIL   Вверх
MoLeX
Дата 21.12.2007, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


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

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



MrDmitry замечания тебе
   1.  какого черта используешь htmlspecialchars, поменяй на mysql_escape_string.
   2.
Цитата(MrDmitry @  21.12.2007,  00:54 Найти цитируемый пост)
помогает только удаление cookies ((

кук в вашем скрипте я не увидел, ткните пальцем пожалуста.
   3. надеюсь вы проверяете такие данные как email на валидность?!



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 21.12.2007, 09:20 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Хм. sila - я понимаю, это str. lovk - dex. а что такое slosh? С лошадью?

Мда, а по поводу авторизации - возможно, MrDmitry, у тебя проблема не в этом скрипте, а в том, который авторизует.
PM   Вверх
MoLeX
Дата 21.12.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


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

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



пардно не много не правильно выразился, могут не понять да и модераторы не одобрят  smile.

mysql_escape_string - необходимо использовать при исполнение запроса, т.е. примерно так:
Код

.....
 $res = mysql_query("SELECT * FROM `user` WHERE `login`='".mysql_escape_string($_POST['login']."' OR `name`='".mysql_escape_string($_POST['name'])."'");
        echo mysql_error();
.....


htmlspecialchars - когда выводишь имя пользователя или еще какието данные, может там <script>alert('La-la')</script> стоит или еще чтонить...


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
MrDmitry
Дата 21.12.2007, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот код главной странице на которой осущевстляеться вход!

Код

<?php

session_set_cookie_params(180000, "/");
session_start();

if(isset($_SESSION['mlogin']) or isset($_SESSION['mpassword'])) {
    header("Location: /play.php");
    exit;
}
$msg = '';
if(isset($_GET['err']))    $err = (int)$_GET['err']; else $err = 0;
if($err == 1) {$msg = "Не правильный логин или пароль.";}
if($err == 2) {$msg = "Соединение разорвано.";}
if($err == 3) {$msg = "Косяк с количеством пользователей.";}



?>

<html>
<head>

<script language="JavaScript">
   function openWin(AddressURL, NUM) {
    if (NUM == 1) {VarWin = "width=350,height=400,status=no,toolbar=no,menubar=no,scrollbars=no"}
    else {VarWin = "width=300,height=350,status=no,toolbar=no,menubar=no,scrollbars=no"}
    open(AddressURL,"DWIN"+NUM,VarWin)
    }
    </script>
</head>
<body BACKGROUND="img/fBG.jpg">

<center><h3><font color=red>Вход </font></h3></center>
<a href="/stat.php" target="_blank">статистика</a><br>
<center><font color="#FF0000"><?=$msg;?></font></center>
<table width="160" align="center">
<tr>
<td>
<form action="/auth.php" method="POST">
    Логин:<br>
    <input name="m_login" type="text" style="width: 160px;"><br>
    Пароль:<br>
    <input name="m_password" type="password" style="width: 160px;"><br>
    <input name="m_submit" type="submit" value="Войти">
</form>
</td>
</tr>
</table>
<center><H3><b><a onclick='openWin("reg.php", 1)'><span style="cursor: pointer">Регистрация</span></a></b></H3>
<font size="4">
Новости</center></font>
<script>
document.getElementById('m_login').focus();
</script>
</body>
</html>


код auth.php

Код

<? 
$_db_inc_ = true;
include("include/db.inc.php");

$login = htmlspecialchars($_POST['m_login']);
$password = htmlspecialchars($_POST['m_password']);

$login_result = mysql_query("SELECT `login` FROM `user` WHERE `login`='$login' AND `password`='".md5($password)."'"); 

if(!mysql_error() && @mysql_num_rows($login_result) == 1) {
  session_set_cookie_params(180000, "/");
  session_start();
  
  $_SESSION["mlogin"] = $login;
  $_SESSION["mpassword"] = md5($password);
    

    header("Location: /play.php"); 
    exit; 
} else if (!mysql_error()) {
    header("Location: /index.php?err=1"); 
} else {
    echo mysql_error(); 
}
?>


Это сообщение отредактировал(а) MrDmitry - 21.12.2007, 11:48
PM MAIL   Вверх
MoLeX
Дата 21.12.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


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

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



может стоит сделать при регистрации нового юзера удалений сесий?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 21.12.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



MrDmitry, я думаю, "браузер подвисает" - это он уходит в бесконечный цикл из локейшенов.
Поставь себе какой-нибудь HTTP сниффер, посмотри, с какой на какую страницу тебя кидает

на play.php, возможно, косяк при проверке авторизации.

но гаданием я очень не люблю заниматься. равно как и церебральной отладкой кода
PM   Вверх
MrDmitry
Дата 21.12.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Feldmarschall @ 21.12.2007,  12:07)
MrDmitry, я думаю, "браузер подвисает" - это он уходит в бесконечный цикл из локейшенов.
Поставь себе какой-нибудь HTTP сниффер, посмотри, с какой на какую страницу тебя кидает

на play.php, возможно, косяк при проверке авторизации.

но гаданием я очень не люблю заниматься. равно как и церебральной отладкой кода

Ошибка возникает при обращении к файлу auth.php его код я привел выше
PM MAIL   Вверх
Feldmarschall
Дата 21.12.2007, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Как забавно. Это напомнило мне один анекдот.
Цитата

Прапорщик перед строем новобранцев
- Кто может починить рацию на танке?
молчание
- Кто может починить рацию на танке?!
снова молчание
- Кто может починить рацию на танке???
наконец, робкий голос не сдавшего сессию студента-радиотехника
- А рация на лампах или на транзисторах?..
- Для тупых повторяю: рация - на танке!


Вообще-то, твой файл auth.php совершает различные действия. В том числе - перенаправление на разные другие скрипты.
а дальше - читай моё предыдущее сообщение

Добавлено через 12 минут
Цитата(MoLeX @  21.12.2007,  07:51 Найти цитируемый пост)
MrDmitry замечания тебе
   1.  какого черта используешь htmlspecialchars, поменяй на mysql_escape_string.


интересно, неделю назад ему уже говорили про mysql_real_escape_string...
PM   Вверх
MoLeX
Дата 21.12.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


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

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



Цитата(Feldmarschall @  21.12.2007,  12:25 Найти цитируемый пост)
интересно, неделю назад ему уже говорили про mysql_real_escape_string...

можешь и его использовать.
это было обращение ко мне?!


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 21.12.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



это обращение в пространство. речь не о том, что real или не real, а о том, что ему уже говорили, как правильно, а он почему-то htmlspecialchars пишет
PM   Вверх
MoLeX
Дата 21.12.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


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

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



а, понятно. просто думал это ты ко мне обратился вот и стал судорожно вспоминать где мне про это говорили, так и не вспомнил smile 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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