X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Нужна помощь в исправлении РНР кода
Badgerl1969
Badgerl1969
Topic Starter сообщение 5.11.2016, 11:15; Ответить: Badgerl1969
Сообщение #1


Доброго времени суток коллеги. Нужна ваша профессиональная помощь в исправлении РНР кода. Приобрёл скрипт, установил, регистрация проходит нормально, но вот, когда потом вводишь логин(свой e-mail) и пароль не попадаешь в свой кабинет, а перебрасывает обратно на главную страницу. Не могу понять почему так происходит. Вот сам код:

<?php @session_start();
require_once('./class/conect.php');
require_once('./class/class_func.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="keywords" content="" />
<link rel="icon" href="<?=$domain_url?>img/icon/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="<?=$domain_url?>img/icon/favicon.ico" type="image/x-icon">
<title>приём платежей на сайте</title>
<link href='https://fonts.googleapis.com/css?family=Lora&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="<?=$domain_url?>/js/jquery.1.9.2.min.js"></script>
<script type="text/javascript" src="<?=$domain_url?>/js/ajax.js"></script>
<link rel="stylesheet" type="text/css" href="<?=$domain_url?>/style.css" />
<link rel="stylesheet" type="text/css" href="<?=$domain_url?>/media.css" />
<meta name="w1-verification" content="149613302602" />
</head>
<body>

<div class="line_v">
<div class="menu">
<a class="logo" href='<?=$domain_url?>/index.php' ></a>
<? if(isset($_SESSION["email"])) {


$dpl = $mysqli->query("SELECT SUM(`balance`) as `total` FROM merchant WHERE user='".$_SESSION["id"]."'");

$row = $dpl->fetch_assoc();

?>
<a href="<?=$domain_url?>/logout.php" class='out'></a>
<a href="<?=$domain_url?>/addnewmerchant/" class='link_rig' >Добавить новый магазин</a>
<a href="<?=$domain_url?>/merchant/" class='link_rig'>Магазины</a>
<a href="<?=$domain_url?>/personal/" class='link_rig'>Личные данные</a>
<a href="<?=$domain_url?>/withdrawal/" class='link_rig'>Снять деньги</a>
<div class='bal_rig'><?=$row['total']?> RUR</div><? }else{ ?>
<? if(isset($_SESSION["email"]))
{
$result = $mysqli->query("SELECT * FROM user WHERE id='".$_SESSION["id"]."'");
$row = $result->fetch_assoc();
$user=$row["login"];
$mysqli->query("update `user` set `ip_log`='".$_POST['amount']."' where `email`='".$_POST['payment_id']."'");

}else{

if(isset($_POST['email']))
{
$email=$_POST['email'];
$pass=$_POST['pass'];

$result = $mysqli->query("SELECT COUNT(*) FROM `user` WHERE email = '".$email."' and pass='".pass_hash($pass)."' ");
$row = $result->fetch_row();
$usego=$row[0];

if($usego==0)
{
$error = "<div align='center'><font size='2' color='#3A3A3A'>Неверная пара Email и Пароль</font></div><br />";
}else{

$result = $mysqli->query("SELECT * FROM user WHERE email='".$email."'");
$row = $result->fetch_assoc();
$us_id=$row["id"];

$_SESSION["id"]=$us_id;
$_SESSION["email"]=$email;
$_SESSION["pass"]=$pass;
$ip_l=getRealIP();
$mysqli->query("update `user` set `ip_log`='".$ip_l."' where `id`='".$us_id."'");

?>
<script>document.location.replace('<?=$domain_url?>/index.php');</script>
<?

}
}
?>
<form action="" method="post"><button class="ok_log"></button>
<input type="password" value="" name="pass" maxlength="20" placeholder="Пароль" class="style_inputl" autocomplete="on">
<input name="email" value="" type="email" maxlength="20" placeholder="Email" class="style_inputl" autocomplete="on">
</form>
<?}?>
<?}?>
</div></div>


<? if(isset($_SESSION["email"]))
{
$result = $mysqli->query("SELECT * FROM user WHERE id='".$_SESSION["id"]."'");
$row = $result->fetch_assoc();
$fam=$row["family"];
$fam_n=$row["fam_name"];
$ip_log=$row["ip_log"];
$wallet=$row["wallet"];
$money=$row["money"];
?>

<div class="user_panel">
<div class="pane">
<div class="us_bloc">
<div class="nameus"><?=$fam?> <?=$fam_n?></div>
<li>IP: <?=$ip_log?></li>
</div>
<div class="us_bloc">
<div class="bal">WA: <?=$wallet?></div>
<li>RUB: <?=$money?></li>
</div>
</div>
</div>
<? }?>


<div class="vert"></div>
<div id="container">
<!-- / Левая часть -->
<div class="left">

0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 5.11.2016, 11:49; Ответить: yury_mw
Сообщение #2


На 78й строке вашего кода

<form action="" method="post"><button class="ok_log"></button>

укажите адрес обработчика формы (который по идее и должен переадресовывать вас в личный кабинет).
Т.е. если обработчик находится в файле login.php то должно быть как-то так:

<form action="login.php" method="post"><button class="ok_log"></button>

Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Badgerl1969
Badgerl1969
Topic Starter сообщение 5.11.2016, 12:02; Ответить: Badgerl1969
Сообщение #3


yury_mw,
Но сам файл login.php выглядит так:

<?php
if (isset($_POST['email']))
{

require_once('./class/head.php');
$a=strtolower(clean($_POST['email']));
$b=strtolower(clean(pass_hash($_POST['pass'])));



if ($b==NULL)
{
echo '<div class="title_content">Введите пароль !</div><div class="left_l">';
echo '</div>';

}


$result = $mysqli->query("SELECT COUNT(*) FROM `user` WHERE email = '$a' and pass='$b' ");
$row = $result->fetch_row();
$usego=$row[0];



if($usego==0)
{
echo '<div class="title_content">Введите пароль !</div><div class="left_l">';
echo "Введены неверные данные!!! Вход невозможен !";
echo '</div>';

}else{

echo '<div class="left_l">';
?>
<script type="text/javascript"> document.location.href = "index.php"; </script>
<?php
echo "$t Вы успешно авторизовались! Ожидайте перенаправления! $u";



$_SESSION["login"]=$a;
$_SESSION["pass"]=$b;


echo '</div>';
require_once('./class/foot.php');
}


}else{
require_once('./class/head.php');
echo '<div class="left_l">';
?>
<? echo '</div>';?>
<? require_once('./class/foot.php'); } ?> 

И ни чего не происходит.


(yury @ 5.11.2016, 14:49) *
На 78й строке вашего кода
укажите адрес обработчика формы (который по идее и должен переадресовывать вас в личный кабинет). Т.е. если обработчик находится в файле login.php то должно быть как-то так:


Так не работает, пишет: 

Введите пароль !

Введены неверные данные!!! Вход невозможен !
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 5.11.2016, 12:29; Ответить: yury_mw
Сообщение #4


(Badgerl1969 @ 5.11.2016, 15:02) *
Так не работает, пишет:
 
    Введите пароль !
Введены неверные данные!!! Вход невозможен !

Если так пишет, то как раз работает.
Просто либо вы ошибаетесь при вводе логина и/или пароля либо пары логин/пароль, которые вы пытаетесь ввести, нет в базе. О чем вас и уведомляет скрипт.


Сообщение отредактировал yury - 5.11.2016, 12:30
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Badgerl1969
Badgerl1969
Topic Starter сообщение 5.11.2016, 12:36; Ответить: Badgerl1969
Сообщение #5


Но пара логин и пароль присутствуют в базе. 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 5.11.2016, 13:08; Ответить: yury_mw
Сообщение #6


(Badgerl1969 @ 5.11.2016, 15:36) *
Но пара логин и пароль присутствуют в базе.

У вас срабатывает вот этот кусок кода:

$result = $mysqli->query("SELECT COUNT(*) FROM `user` WHERE email = '$a' and pass='$b' ");
$row = $result->fetch_row();
$usego=$row[0];



if($usego==0)
{
echo '<div class="title_content">Введите пароль !</div><div class="left_l">';
echo "Введены неверные данные!!! Вход невозможен !";
echo '</div>';

}

Перевод указанного куска кода на человеческий язык:

(1 строка) Из БД запрашивается количество строк с полями email/pass, совпадающими с введенными в форму.
(2 строка) Результат помещается в переменную $row получается массив из одного элемента
(3 строка) Значение этого элемента массива $row[0] помещается в переменную $usego
Т.е. в переменную $usego попадает это самое кол-во пар мыло-пароль из БД, совпавших с тем, что скрипт получил из заполненной вами формы.
(4 строка) Далее срабатывает проверка: если это кол-во равно нулю if($usego==0), т.е. совпадений нет, то выдать сообщение "Введите пароль! Введены неверные данные!!! Вход невозможен !", которое вы и видите на экране.

Отсюда вывод: того, что вы вводите, в базе нет. Разбирайтесь.


Сообщение отредактировал yury - 5.11.2016, 13:10
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Badgerl1969
Badgerl1969
Topic Starter сообщение 5.11.2016, 13:12; Ответить: Badgerl1969
Сообщение #7


Ошибка найдена, всё работает. Всем большое спасибо. Тема закрыта.


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется помощь по сайту на "ВордПресс"
Закрылся доступ в панель администратора
15 Tia2 2352 17.4.2024, 0:54
автор: diviner99
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСостояние после ампутации - нужна помощь
благотворительный топик
49 vitvirtual 5876 1.4.2024, 5:23
автор: vitvirtual
Открытая тема (нет новых ответов) Нужна ли плоская структура категорий в ИМ?
1 noviktamw 1173 26.3.2024, 21:50
автор: c4p1t4l15t
Открытая тема (нет новых ответов) требуется помощь с themasoftware (Темапостером)
0 Taylor 625 16.3.2024, 18:41
автор: Taylor
Открытая тема (нет новых ответов) Нужна рассылка по емаил базе сео-студий
0 kasey7 682 2.3.2024, 23:13
автор: kasey7


 



RSS Текстовая версия Сейчас: 20.4.2024, 13:54
Дизайн