[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Идентификация
RuslanMRP
Привет всем, помогите, очень срочно. Как сделать так чтобы переменная login передавалась и для файла3. База уже заполнена, надо проверить существование login, т.е. idtovar=logib. Не вводя ее в форму файла2. Только начинаю изучать PHP помогите кто сможет.

файл1:
<html>
<head>
</head>
<body>
<form
action="файл2.php" method="post">
<table
border=0>

<tr>
<td
colspan="2" align="center">fsdfsdg</td>
</tr>
<tr>
<td
bgcolor=#336699><font color=white>Login</td><td bgcolor=#336699><font

color=white>Password</td>
</tr>
<tr>
<td><input
type="text" name="login"></td><td><input type="password" name="pass"></td>
</tr>
<tr>
<td
colspan=2 align="center"><input type="submit" name="go1" value="идентификация"></td>
<tr>
</form>
</table>

</body>
</html>






Файл2:

<?
include "config1.php";
$login = $_POST['login'];
if(!isset($_POST['go1']))
{
echo "Ошибка";
}
else{

$login=addslashes($login);
$result=mysql_query("SELECT zakaz.idtovar, tovar.opis, tovar.data, tovar.price
FROM zakaz INNER JOIN tovar ON zakaz.idtovar = tovar.idtovar WHERE zakaz.idtovar='"
.$login."' ORDER BY

tovar.opis"
);
if(mysql_num_rows($result)==0)
{
echo "Вас нету в БД</p>";
}
else{
echo "Здраствуйте";
echo "$HTTP_COOKIE_VARS[login]";
?>
<html>
<
head>
<
title>Поиск книги</title>
</
head>
<
body>
<
h1>Поиск заказов по дате</h1>
<
form action="results.php" method="post">
Укажите день с:
<
select name="den1">
<
option value="01" />1
<option value="02" />2
<option value="03" />3
<option value="04" />4
<option value="05" />5
<option value="06" />6
<option value="07" />7
<option value="08" />8
<option value="09" />9
<option value="10" />10
<option value="11" />11
<option value="12" />12
<option value="13" />13
<option value="14" />14
<option value="15" />15
<option value="16" />16
<option value="17" />17
<option value="18" />18
<option value="19" />19
<option value="20" />20
<option value="21" />21
<option value="22" />22
<option value="23" />23
<option value="24" />24
<option value="25" />25
<option value="26" />26
<option value="27" />27
<option value="28" />28
<option value="29" />29
<option value="30" />30
<option value="31" />31
</select>
<
br>
Укажите месяц с:
<
select name="mes1">
<
option value="01" />январь
<option value="02" />февраль
<option value="03" />март
<option value="04" />апрель
<option value="05" />май
<option value="06" />июнь
<option value="07" />июль
<option value="08" />август
<option value="09" />сентябрь
<option value="10" />октябрь
<option value="11" />ноябрь
<option value="12" />декабрь
</select>
<
br>
Укажите день с:
<
select name="god1">
<
option value="2000" />2000
<option value="2001" />2001
<option value="2002" />2002
<option value="2003" />2003
<option value="2004" />2004
<option value="2005" />2005
<option value="2006" />2006
<option value="2007" />2007
<option value="2008" />2008
<option value="2009" />2009
<option value="2010" />2010
<option value="2011" />2011
</select>
<
br>
<
br>
<
br>
Укажите день по:
<
select name="den2">
<
option value="01" />1
<option value="02" />2
<option value="03" />3
<option value="04" />4
<option value="05" />5
<option value="06" />6
<option value="07" />7
<option value="08" />8
<option value="09" />9
<option value="10" />10
<option value="11" />11
<option value="12" />12
<option value="13" />13
<option value="14" />14
<option value="15" />15
<option value="16" />16
<option value="17" />17
<option value="18" />18
<option value="19" />19
<option value="20" />20
<option value="21" />21
<option value="22" />22
<option value="23" />23
<option value="24" />24
<option value="25" />25
<option value="26" />26
<option value="27" />27
<option value="28" />28
<option value="29" />29
<option value="30" />30
<option value="31" />31
</select>
<
br>
Укажите месяц по:
<
select name="mes2">
<
option value="01" />январь
<option value="02" />февраль
<option value="03" />март
<option value="04" />апрель
<option value="05" />май
<option value="06" />июнь
<option value="07" />июль
<option value="08" />август
<option value="09" />сентябрь
<option value="10" />октябрь
<option value="11" />ноябрь
<option value="12" />декабрь
</select>
<
br>
Укажите день по:
<
select name="god2">
<
option value="2000" />2000
<option value="2001" />2001
<option value="2002" />2002
<option value="2003" />2003
<option value="2004" />2004
<option value="2005" />2005
<option value="2006" />2006
<option value="2007" />2007
<option value="2008" />2008
<option value="2009" />2009
<option value="2010" />2010
<option value="2011" />2011
</select>
<
br>
<
br>
<
br>
<
br>
<
br>
<
input type=submit value="Поиск" name="go">
</
form>
</
body>
</
html>
<?
}
}

?>



файл3:

</html>
<
html>
<
head>
<
title>Результаты поиска книги</title>
<?

$den1 = $_POST['den1'];
$mes1 = $_POST['mes1'];
$god1 = $_POST['god1'];
$den2 = $_POST['den2'];
$mes2 = $_POST['mes2'];
$god2 = $_POST['god2'];
$login = $_POST['login'];
?>
</head>
<
body>
<?
include "config1.php";
if (!$den1 || !$mes1 || !$god1 || !$den2 || !$mes2 || !$god2 || !$login)
{
echo "Вы не ввели критерии поиска.Вернитесь назад и попробуйте еще раз";
exit();
}
$den1=addslashes($den1);
$mes1=addslashes($mes1);
$god1=addslashes($god1);
$den2=addslashes($den2);
$mes2=addslashes($mes2);
$god2=addslashes($god2);
$login=addslashes($login);

echo "<table WIDTH=80% border=2 cellspacing=0 cellpadding=3 bordercolor=#336699

align=center>"
;
echo "<tr><td bgcolor=#336699><font color=white>Номер</td>
<td bgcolor=#336699><font color=white>Наименование</td><td bgcolor=#336699><font

color=white>Цена</td><td bgcolor=#336699><font color=white>Дата</td>
</tr>"
;

$result=mysql_query("SELECT zakaz.idtovar, tovar.opis, tovar.data, tovar.price
FROM zakaz INNER JOIN tovar ON zakaz.idtovar = tovar.idtovar WHERE

zakaz.idtovar='"
.$login."' AND tovar.data Between '".$god1.$mes1.$den1."' And

'"
.$god2.$mes2.$den2."' ORDER BY tovar.opis");


$num_results=mysql_num_rows($result);
echo "<p>Количество совершенных заказов:".$num_results."</p>";
for ($i=0; $i <$num_results; $i++){
echo "<tr>";
$row=mysql_fetch_array($result);
echo "<td>$row[idtovar]</td><td>$row[opis]</td><td>$row[price]</td><td>$row[data]</td>
</tr>"
;

}
echo "</table>";
?>
</body></html>




Спустя 7 минут, 41 секунда (4.02.2010 - 15:36) Soldier Ghost написал(а):
А зачем тебе это нужно? попробуй в сессию его положить

Спустя 2 минуты, 10 секунд (4.02.2010 - 15:38) RuslanMRP написал(а):
привет, Пробую но неполучаеться не могу разобраться с сессией.

Спустя 1 минута, 54 секунды (4.02.2010 - 15:40) RuslanMRP написал(а):
подскажи если знаешь как забить переменную login в сессию в моем случаи

Спустя 6 минут, 10 секунд (4.02.2010 - 15:46) Soldier Ghost написал(а):
в самом верху страницы самой первой строчкой пиши

session_start(); // и на всех страницах где работаешь с сессиями



$_SESSION['login'] = $login; // и далее работаешь уже с $_SESSION['login'];

Спустя 14 минут, 16 секунд (4.02.2010 - 16:01) RuslanMRP написал(а):
Огромное спасибо. Все получилось, все работает.

Подскажи почему в файле2 выводит ошибку:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0


Может не надо старт сессии прописывать, потомучто нет переменной login?

Спустя 3 минуты, 28 секунд (4.02.2010 - 16:04) RuslanMRP написал(а):
а если удалить строку session_start(); в файле2.то не работает.

В чем проблема?

Спустя 3 минуты, 18 секунд (4.02.2010 - 16:07) phz написал(а):
Оффтоп.
RuslanMRP, чтоб не делать в коде такие портянки, можно вместо:


<select name="mes2">
<option
value="01" />январь
<option value="02" />февраль
<option value="03" />март
<option value="04" />апрель
<option value="05" />май
<option value="06" />июнь
<option value="07" />июль
<option value="08" />август
<option value="09" />сентябрь
<option value="10" />октябрь
<option value="11" />ноябрь
<option value="12" />декабрь
</select>


можно сделать:

<select name="mes2">
<?php
for($a = 1; $a <= 12; $a++)
{
echo '<option value="'.$a.'">'.$a.'</option>';
}
?>
</select>

Спустя 2 минуты, 59 секунд (4.02.2010 - 16:10) RuslanMRP написал(а):
А как название месяца указать? Спасибо за подсказку

Спустя 10 минут, 19 секунд (4.02.2010 - 16:21) phz написал(а):
Цитата (RuslanMRP @ 4.02.2010 - 13:10)
А как название месяца указать? Спасибо за подсказку

Да можно и не указывать, смотря конечно в каких моментах. Вот к примеру и так понятно:

user posted image

нужно быть яйцелопом чтоб не понять

Извеняюсь что не по теме!

Спустя 3 минуты, 57 секунд (4.02.2010 - 16:25) RuslanMRP написал(а):
smile.gif только вливаюсь в это 1 неделю, поэтому понимаю, что такое отвечать на данные мной вопросы. Спасибо!

Спустя 28 минут, 57 секунд (4.02.2010 - 16:54) Ice написал(а):
так гораздо красивей
<select>
<?php
$months = array(1 => 'января',
'февраля',
'марта',
'апреля',
'мая',
'июня',
'июля',
'августа',
'сентября',
'октября',
'ноября',
'декабря');
for($month = 1; $month <= count($months); $month ++){

echo "<option>" . $months[$month] . "</option>";

}

?>
</select>

Спустя 3 минуты, 34 секунды (4.02.2010 - 16:57) RuslanMRP написал(а):
Спасибо!

Спустя 56 секунд (4.02.2010 - 16:58) Ice написал(а):
Пожалуйста!

Спустя 3 минуты, 3 секунды (4.02.2010 - 17:01) RuslanMRP написал(а):
Ice

Подскажи, как можно шифровать пароль?

Спустя 2 минуты, 5 секунд (4.02.2010 - 17:03) Ice написал(а):
$salt = "Круто сгенеренная соль";
md5($pass . $salt);

Спустя 6 минут, 50 секунд (4.02.2010 - 17:10) RuslanMRP написал(а):
Ice
Вместо Круто сгенеренная соль я могу сам ввести какие угодно мне символы?

Спустя 8 минут, 38 секунд (4.02.2010 - 17:19) Ice написал(а):
Да. И чем больше тем лучше.

Спустя 6 минут (4.02.2010 - 17:25) RuslanMRP написал(а):
Одного только не понимаю. Как мне нужно в БД содержать пороли. Просто у меня задача - пороли будут вбиты в БД и разданы соответствующим людям.

Представляю: они заходят вводят пароль, он генерируеться и сравниваеться с паролем БД. Он же не совпадет.

Как в мое случаи сделать?

Спустя 42 секунды (4.02.2010 - 17:25) RuslanMRP написал(а):
Ice
Одного только не понимаю. Как мне нужно в БД содержать пороли. Просто у меня задача - пороли будут вбиты в БД и разданы соответствующим людям.

Представляю: они заходят вводят пароль, он генерируеться и сравниваеться с паролем БД. Он же не совпадет.

Как в мое случаи сделать?

Спустя 4 минуты, 40 секунд (4.02.2010 - 17:30) Gabriel написал(а):
RuslanMRP
http://pyha.ru/articles/php/auth/ почитай

Спустя 3 минуты, 16 секунд (4.02.2010 - 17:33) Ice написал(а):
чё у тя за сиистема, что ты сам пароли раздаешь людям?

Спустя 3 минуты, 12 секунд (4.02.2010 - 17:36) RuslanMRP написал(а):
Повлияет ли на работу если в коде нет сессии на IP пользователя. Будет ли работать сайт коректно?

Спустя 12 минут, 13 секунд (4.02.2010 - 17:49) Ice написал(а):
Они реганулись, ввели пароль, он полетел из формы в скрипт. Там к нему добавилась соль, всё это дело зашифровалось и только потом происходит сравнение

Разработка системы авторизации - это целая, так сказать, наука=)

Спустя 8 минут, 11 секунд (4.02.2010 - 17:57) Dimaz написал(а):
Функцией md5() или sha1()

Спустя 3 минуты, 11 секунд (4.02.2010 - 18:00) Dimaz написал(а):
Цитата (RuslanMRP @ 4.02.2010 - 14:25)
Ice
Одного только не понимаю. Как мне нужно в БД содержать пороли. Просто у меня задача - пороли будут вбиты в БД и разданы соответствующим людям.

Представляю: они заходят вводят пароль, он генерируеться и сравниваеться с паролем БД. Он же не совпадет.

Как в мое случаи сделать?

С чего ты взял, что пароли не совпадут? Для каждого пароля генерируется свой хеш и он всегда таим и остается

Спустя 4 минуты, 5 секунд (4.02.2010 - 18:04) RuslanMRP написал(а):
Ice

Мне нужно внести сразу пароли в БД. А потом раздать их нужным пользователям. Но то бы пароли лежали в БД не в открытом виде?

Можно как-нибудь это сделать?


Спустя 1 минута, 46 секунд (4.02.2010 - 18:06) RuslanMRP написал(а):
Dimaz

Мне нужно внести сразу пароли в БД. А потом раздать их только нужным пользователям. Но что-бы пароли лежали в БД не в открытом виде?

Можно как-нибудь это сделать?


Спустя 1 минута, 39 секунд (4.02.2010 - 18:08) Dimaz написал(а):
RuslanMRP так тебе же уже сказали как шифровать пароль выше. Функция md5 () и соль применить salt(). wink.gif

Спустя 2 минуты, 28 секунд (4.02.2010 - 18:10) Dimaz написал(а):
Цитата (RuslanMRP @ 4.02.2010 - 15:06)
Dimaz

Мне нужно внести сразу пароли в БД. А потом раздать их только нужным пользователям. Но что-бы пароли лежали в БД не в открытом виде?

Можно как-нибудь это сделать?

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

Спустя 2 минуты, 3 секунды (4.02.2010 - 18:12) Dimaz написал(а):
RuslanMRP можешь объяснить с какой целью ты собираешься сам раздавать пароли пользователям и с какой целью?

Спустя 2 минуты (4.02.2010 - 18:14) RuslanMRP написал(а):
Dimaz

Реально извините, наверно вынашу мозг вам......

теперь понял.

Спустя 2 минуты, 20 секунд (4.02.2010 - 18:16) RuslanMRP написал(а):
Просто ту информацию что я должен передать должны просмотреть только свои люди. И я думал что надо раздать логин и пароль им, а они просто пройдут идентификацию и все!

Спустя 3 минуты, 2 секунды (4.02.2010 - 18:19) Dimaz написал(а):
RuslanMRP, почитай у Twin на сайте там все написано про это подробно wink.gif

Спустя 3 минуты, 29 секунд (4.02.2010 - 18:23) RuslanMRP написал(а):
Еще раз спасибо

Спустя 2 часа, 44 минуты, 43 секунды (4.02.2010 - 21:08) RuslanMRP написал(а):
Ice

Пдскажите, почему не получаеться?

<?
include "config1.php";
if(!isset($_POST['go1']))
{ echo "Ошибка";
}
else{
$salt="ruslan";
$_POST['pass']=md5($pass.$salt);

$result2 = mysql_query ("INSERT INTO zakaz iduser VALUES '$_POST[pass]'");
// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a

href='index.php'>Главная страница</a>";
}
else {
echo "Ошибка! Вы не смогли зарегистрироваться.";
}


}
?>

Спустя 44 секунды (4.02.2010 - 21:08) RuslanMRP написал(а):
не получаеться шифровать пароль. Почему?

Спустя 3 минуты, 47 секунд (4.02.2010 - 21:12) RuslanMRP написал(а):
Исправил ошибку. В БД заносит, но почему код шифровки одинаковый при разных паролях?

<?
include "config1.php";
if(!isset($_POST['go1']))
{ echo "Ошибка";
}
else{
$salt="ruslan";
$_POST['pass']=md5($pass.$salt);

$result2 = mysql_query ("INSERT INTO zakaz (iduser) VALUES ('$_POST[pass]')");
// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a

href='index.php'>Главная страница</a>";
}
else {
echo "Ошибка! Вы не смогли зарегистрироваться.";
}


}
?>

Спустя 42 секунды (4.02.2010 - 21:13) Ice написал(а):
else{
$salt="ruslan";
$_POST['pass']=md5($pass.$salt);

откуда pass?

Ты воще всё наизнанку вывернул! не трогай ПОСТ!)

Спустя 1 минута, 31 секунда (4.02.2010 - 21:14) RuslanMRP написал(а):
Ice

<html>
<head>
</head>
<body>
<form action="poiskc.php" method="post">
<table border=0>

<tr>
<td colspan="2" align="center">fsdfsdg</td>
</tr>
<tr>
<td bgcolor=#336699><font color=white>Password</td>
</tr>
<tr>
<td><input type="password" name="pass"></td>
</tr>
<tr>
<td colspan=2 align="center"><input type="submit" name="go1" value="идентификация"></td>
<tr>
</form>
</table>
</body>
</html>


Спустя 2 минуты (4.02.2010 - 21:16) Ice написал(а):
выключи register_globals!

Спустя 3 минуты, 6 секунд (4.02.2010 - 21:19) RuslanMRP написал(а):
Ice

В php.ini стоит register_globals = Off, если ты это имел ввиду

Спустя 5 минут, 10 секунд (4.02.2010 - 21:25) RuslanMRP написал(а):
Ice

Так тож работает, шифрует, но шифровка одинаковая и не видно чтобы salt добовляло в конец, как я понял.

Что не так, подскажи пожалуйсто!


<?
include "config1.php";
if(!isset($_POST['go1']))
{ echo "Ошибка";
}
else{
$salt="ruslan";
$pass=md5($pass.$salt);

$result2 = mysql_query ("INSERT INTO zakaz (iduser) VALUES ('$pass')");
// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a

href='index.php'>Главная страница</a>";
}
else {
echo "Ошибка! Вы не смогли зарегистрироваться.";
}


}
?>

Спустя 21 минута, 4 секунды (4.02.2010 - 21:46) Ice написал(а):

<?php

include "config1.php";

if($_SERVER['REQUEST_METHOD'] == 'POST'){

$salt = "ruslan";
$pass = md5($_POST['pass'] . $salt);
$pass = mysql_real_escape_string($pass);

$sql = "INSERT INTO zakaz (iduser) VALUES ('$pass')";
$result = mysql_query ($sql)
// Проверяем, есть ли ошибки
or die("Вы не смогли зарегистрироваться");
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
}

?>

вот как примерно должно всё это выглядеть
То, что соль добавлена в конец, - не увидишь. Но расшифровать пароль будет сложнее, пооскольку он становится, во-первых, длиннее на strlen соли, а во вторых приобретает большую криптостойкость еще из-за того, что в соли могут быть небуквенноцифровые символы, к примеру, - !"№;%:?*()_ и т.д. Это одно из, так скажем, условий верно сгенерированной соли.

А насчёт register_globals ты проверь всё же не создаётся ли переменная в скрипте автоматически. Уж очень это небезопасно.

Спустя 14 минут, 29 секунд (4.02.2010 - 22:00) RuslanMRP написал(а):
Ice

Большое спасибо. Работает!

Спустя 43 секунды (4.02.2010 - 22:01) Ice написал(а):
еще б не работало)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.