Пятница, 08 Ноября 2024, 08:59

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Ошибка при авторизации
RioluДата: Суббота, 14 Июля 2012, 14:10 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Помогите эта злобная авторизация никого не хочет пускать в игру angry
login.php
Code
<?php
session_start();
include ("games/conf.php");

if(strlen($_POST['user'])>0){
if(strlen($_POST['pass'])>0){
if (isset($_POST['user']) && isset($_POST['pass']))
{
$_POST['user'] = htmlspecialchars($_POST['user']);
$_POST['user'] = stripslashes($_POST['user']);
$_POST['user'] = trim($_POST['user']);

$_POST['pass'] = htmlspecialchars($_POST['pass']);
$_POST['pass'] = stripslashes($_POST['pass']);
$_POST['pass'] = trim($_POST['pass']);
       $login = mysql_real_escape_string($_POST['user']);
       $password = md5($_POST['pass'] . 'i7b5j9');
       $password = strrev($password);
       $query = "SELECT `username`,`ID`, 'passw' FROM `players_the_game` WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1";
       $sql = mysql_query($query) or die("Возникла ошибка");

       if (mysql_num_rows($sql) == 1) {

           $row = mysql_fetch_assoc($sql);
           $_SESSION['user'] = $row['username'];
           $_SESSION['id'] = $row['ID'];
           $_SESSION['pass'] = $row['passw'];

$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("UPDATE `players_the_game` SET `ip`='".$ip."' WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1") or die ("Can't update");
mysql_query ("UPDATE `players_the_game` SET `last_entry`='".time()."' WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1") or die ("Can't update");
mysql_query ("UPDATE `players_the_game` SET `online`='1' WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1") or die ("Can't update");
mysql_query("INSERT INTO `online` (`id_session`, `putdate`) VALUES ('".$row['ID']."', '".time()."')");

echo "<script>location.href='/game.php?the=my_pokes'</script>";

       }
       else {
          echo "<script>alert('Не верный Логин или Пароль'); location.href='/index.php';</script>";
       }
}
}
else{
echo "<script>alert('Вы заполнили не все поля!'); location.href='/index.php';</script>";
}
}
else{
echo "<script>alert('Вы заполнили не все поля!'); location.href='/index.php';</script>";
}

?>

Добавлено (14.07.2012, 14:10)
---------------------------------------------
15просмотров и никто ничем помочь не может ??


Рoke-x (ММОRPG про покемонов)



Сообщение отредактировал Riolu - Суббота, 14 Июля 2012, 09:39
NosorogДата: Суббота, 14 Июля 2012, 15:56 | Сообщение # 2
участник
Сейчас нет на сайте
$password = md5($_POST['pass']) . 'i7b5j9';

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
RioluДата: Суббота, 14 Июля 2012, 18:27 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Quote (Nosorog)
$password = md5($_POST['pass']) . 'i7b5j9';

Не не пускает эта злобная авторизация angry


Рoke-x (ММОRPG про покемонов)

GoodwinДата: Суббота, 14 Июля 2012, 18:28 | Сообщение # 4
был не раз
Сейчас нет на сайте
Что пишет?
NosorogДата: Суббота, 14 Июля 2012, 20:04 | Сообщение # 5
участник
Сейчас нет на сайте
Quote (Goodwin)
Что пишет?

Да, какие ошибки?
error_reporting(E_ALL);
И всё-таки мне кажется, что проблема в том как ты шифруешь пароль... Скрипт регистрации юзера можешь выложить?


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
RioluДата: Суббота, 14 Июля 2012, 21:07 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Quote (Nosorog)
Что пишет?

Да, какие ошибки?

У меня на сервере ошибки не показывают но на денвере выдает ошибку

Quote

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in Z:\home\test1.ru\www\test.php on line 36

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\test1.ru\www\test.php on line 36


Рoke-x (ММОRPG про покемонов)

GoodwinДата: Суббота, 14 Июля 2012, 21:20 | Сообщение # 7
был не раз
Сейчас нет на сайте
Конфиг правильно настроен?
RioluДата: Суббота, 14 Июля 2012, 21:23 | Сообщение # 8
почетный гость
Сейчас нет на сайте
папка и настройки конфига указаны правильно

Рoke-x (ММОRPG про покемонов)



Сообщение отредактировал Riolu - Суббота, 14 Июля 2012, 21:27
NosorogДата: Суббота, 14 Июля 2012, 23:25 | Сообщение # 9
участник
Сейчас нет на сайте
В процессе разработки удобнее использовать
Code
or die(mysql_error())
, а не
Code
or die("Возникла хз какая ошибка");

Quote (Riolu)
У меня на сервере ошибки не показывают но на денвере выдает ошибку

Это, наверняка, ошибка настройки денвера, и если закинуть скрипт в папку "test" вместо "test1.ru", то все должно быть нормуль... Короче, поиграйся с солью в пароле... Или скинь скрипт реги...


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
RioluДата: Воскресенье, 15 Июля 2012, 12:54 | Сообщение # 10
почетный гость
Сейчас нет на сайте
Quote (Nosorog)
У меня на сервере ошибки не показывают но на денвере выдает ошибку

Это, наверняка, ошибка настройки денвера,

Это я сервере Poke-x не показываются ошибки

conf.php
Code
<?php
$base_name="localhost";  
$base_user="root";  
$base_pass="";  
$db_name="my_game";  
$link = mysql_pconnect($base_name, $base_user, $base_pass);  
mysql_select_db($db_name, $link);  
mysql_query("SET CHARSET cp1251");  
$ADDR = $_SERVER["HTTP_HOST"];
?>


Quote (Nosorog)
Или скинь скрипт реги...

Зачем ?? ошибка же не в реге а в авторизации


Рoke-x (ММОRPG про покемонов)

NosorogДата: Воскресенье, 15 Июля 2012, 14:23 | Сообщение # 11
участник
Сейчас нет на сайте
Quote (Riolu)
Зачем ?? ошибка же не в реге а в авторизации

Забей короче...


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
RioluДата: Четверг, 19 Июля 2012, 00:04 | Сообщение # 12
почетный гость
Сейчас нет на сайте
Написал новую авторизацию, ошибка исправил, но опять в игру не пускает =( даже ошибку не выдает =(
Code
<?php
session_start();
include("games/conf.php");

if (isset($_POST['email'])) {
   $email = $_POST['email'];   
   if ($email == '') {
    unset($email);
      echo "<script>alert('Введите email!'); location.href='/index.php';</script>";   
   }   
}
if (isset($_POST['password'])) {
   $pas=$_POST['password'];   
   if ($pas =='') {
    unset($pas);
      echo "<script>alert('Введите пароль!'); location.href='/index.php';</script>";   
   }
}

$email = trim($email);
$email = stripslashes($email);
$email = htmlspecialchars($email);
$pas = trim($pas);
$pas = stripslashes($pas);
$pas = htmlspecialchars($pas);
$pas = strrev($pas);
$pas = md5($pas . 'i7b5j9');

$query = mysql_query("SELECT `ID` FROM `players_the_game` WHERE `email`='$email' AND `passw`='$password'");
$sql = mysql_fetch_array($query) or die(mysql_error());

if(!empty($sql['ID'])){

$_SESSION['email']=$email;     
$_SESSION['passw']=$pas;   
$_SESSION['user']=$sql['username'];   
$_SESSION['id']=$sql['ID'];

$pas = $password;
$login = $sql['username'];
$ip = $_SERVER['REMOTE_ADDR'];   
   mysql_query("UPDATE `players_the_game` SET `ip_adres`='".$ip."' WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1") or die ("Can't update");   
   mysql_query ("UPDATE `players_the_game` SET `last_entry`='".time()."' WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1") or die ("Can't update");   
   mysql_query ("UPDATE `players_the_game` SET `online`='1' WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1") or die ("Can't update");   
   mysql_query("INSERT INTO `online` (`id_session`, `putdate`) VALUES ('".$sql['ID']."', '".time()."')");   

echo "<script>alert('Вы успешно прошли авторизацию!'); location.href='/game.php?the=my_pokes';</script>";
} else {
echo "<script>alert('Не верный email или пароль'); location.href='/index.php';</script>";
}   
?>


Убрал or die(mysql_error()) пишет неверный email или пароль!
Вставить не выдает ошибку а просто пустой экран помогите пожалуйста

Добавлено (19.07.2012, 00:04)
---------------------------------------------
Все ошибки исправил, но теперь сессии не создаются сессию что делать ??????????? cry


Рoke-x (ММОRPG про покемонов)



Сообщение отредактировал Riolu - Воскресенье, 15 Июля 2012, 16:09
BasiserДата: Четверг, 19 Июля 2012, 05:11 | Сообщение # 13
частый гость
Сейчас нет на сайте
жжжжесть
llibertyДата: Четверг, 19 Июля 2012, 09:49 | Сообщение # 14
был не раз
Сейчас нет на сайте
Тебе правильно сказали, приведи скрипт регистрации. Т.к. у тебя просто не находит пользователя.
Уверен что в скрипте реги именно так?
Code
$pas = md5($pas . 'i7b5j9');


Тьху, только сейчас увидел. Глянь на строки:
Code

$pas = md5($pas . 'i7b5j9');
$query = mysql_query("SELECT `ID` FROM `players_the_game` WHERE `email`='$email' AND `passw`='$password'");

пароль получаешь в $pas, а а базе ищешь $password. Ясен пень он его не находит.

P.S.
Code
mysql_query("UPDATE `players_the_game` SET `ip_adres`='".$ip."' WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1") or die ("Can't update");     
     mysql_query ("UPDATE `players_the_game` SET `last_entry`='".time()."' WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1") or die ("Can't update");     
     mysql_query ("UPDATE `players_the_game` SET `online`='1' WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1") or die ("Can't update");

Ужжасный код. Лучше уж так
Code
mysql_query("UPDATE `players_the_game` SET `ip_adres`='".$ip."',`last_entry`='".time()."',`online`='1'  WHERE `username`='".$login."' AND `passw`='".$password."' LIMIT 1")


Сообщение отредактировал lliberty - Четверг, 19 Июля 2012, 10:40
RioluДата: Воскресенье, 22 Июля 2012, 00:17 | Сообщение # 15
почетный гость
Сейчас нет на сайте
Quote (lliberty)
пароль получаешь в $pas, а а базе ищешь $password. Ясен пень он его не находит.

У меня новая форма:
Code
<?
include ("games/conf.php");
?>
<link rel="stylesheet" title="default" href="poke-x_index.css" type="text/css" />
<?
if (isset($_POST['email'])) {  
$login = $_POST['email'];
}
if (isset($_POST['pass'])) {  
$pass = $_POST['pass'];
}
$login = trim($login);
$login = stripslashes($login);
$login = htmlspecialchars($login);
$ip = $_SERVER['REMOTE_ADDR'];
$pass = trim($pass);
$pass = stripslashes($pass);
$pass = htmlspecialchars($pass);
$pass = strrev($pass);
$pass = md5($pass . 'i7b5j9');

$result = mysql_query("SELECT `ID` FROM `players` WHERE `email`='".$login."' AND `passw`='".$pass."' LIMIT 1") or die("Query failed");{
$aRow = mysql_fetch_array( $result);
$id = $aRow['ID'];
$user = $aRow['username'];

$line = mysql_fetch_array($result);
}

if (empty ($login) || empty ($pass)) {
echo"<div id=error>Заполните все поля</div><br>";
}
if (empty ($login) or $login == "") {
echo"<div id=error>Введите E-mail</div><br>";
}
if (empty ($pass) or $pass == "") {
echo"<div id=error>Введите пароль</div><br>";
}
if (empty ($id)) {
echo'<div id=error>Вы ввели неправильные данные!</div><br>';
} else {
session_start();
$_SESSION['user']=$user;
$_SESSION['id']=$id;
$_SESSION['pass']=$pass;
$_SESSION['email']=$login;
$_SESSION['ip']=$ip;
echo"<script>location.href='/game.php?the=my_pokes'</script>";
}

?>  


Сессия создается но почему то когда ставлю такой код:
<?
if (!empty($_SESSION['user']) and !empty($_SESSION['pass'])){
Этот текст показывается только зашедшим пользователям
} else {
Форма входа
}
?>

форма показывается всегда даже если пользователь зашел что делать???

Добавлено (22.07.2012, 00:17)
---------------------------------------------
Модераторы пожалуйста удалите эту тему


Рoke-x (ММОRPG про покемонов)

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг