Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [PHP] Проерка Пароля на Валидность


Автор: APro 5.6.2008, 19:23
Я ещё не учил PHP, но думаю стоит! Срочно нужна помощь Проффесионалов. Сам немогу написать то что хочу на php, хочу попросить Вас. То что мне надо можно написать за пару сек. Просто я не умею. Итак:

Должна быть форма на которой InputBox (однострочный) для ввода текста и кнопка "Проверить".
Есть некий код, который нужно ввести в InputBox. При нажатии на кнопку "Проверить" нужно сравнить MD5 текста который в InputBox и тот который в скрипте (вобщем сравнить 2 значения). Если раны - вывести текс который я напишу, если нет, вывести надпись "Неверно" или типа того.

(sorry за неграмотность и т.д.)

Зарание спасибо!

Автор: skyboy 5.6.2008, 20:10
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: APro 5.6.2008, 20:19
хи, ну не совсем это домашнее задание... ну да ладно!!! Если помогут то это уже будет хорошо!

Автор: Staind 5.6.2008, 20:30
Что-то на подобие такого.
Переменная $MD5cache содержит значение. Вы пишите строку, он потом сам переводит ее в md5 хэш.

Код

<?php
$MD5cache = 'Значение, которое проверяется';
if (isset($_POST['submit']) &&
    isset($_POST['MD5']))
{
   if (md5(trim($_POST['MD5']))==md5($MD5cache))   echo 'Текст, который Вы напишите';
   else echo 'Неверно';
}
?>
<form action='' method='post'>
<input name='MD5' type='text'>
<input name='submit' type='submit' value='Проверить'>
</form>

Автор: APro 5.6.2008, 21:02
Огромное спасибо! Я просто наверное не правильно написал, но мне нужно было так:

Код

if (md5(trim($_POST['MD5']))==$MD5cache)   echo 'Текст, который Вы напишите';


Чтобы $MD5cache уже содержал хэш. А то вдруг как-нибудь удалось бы посмотреть страницу, тогда $MD5cache сразу было бы видно, а так он уже захеширован smile

Автор: APro 6.6.2008, 07:19
А как вывеси 'Текст, который Вы напишите' там где я захочу? (ну в начале формы, а напремер в третий input или  вобще в том месте, где мне надо)

Автор: Letov 6.6.2008, 11:02
Примерно вот так:
Код

<?php
$MD5cache = 'Значение, которое проверяется';
if (isset($_POST['submit']) &&
    isset($_POST['MD5']))
{
   if (md5(trim($_POST['MD5']))==md5($MD5cache))   $text =  'Текст, который Вы напишите';
   else $text = 'Неверно';
}
?>
<form action='' method='post'>
<input name='MD5' type='text'>
<input name='result' id='result' type='text' value="<?php if(!empty($text)) echo $text ?>">
<input name='submit' type='submit' value="проверить">
</form>


Т.е. надо вставить код
Код

<?php if(!empty($text)) echo $text ?>

там, где Вы захотите. В моем примере - это второй input.

Автор: APro 6.6.2008, 13:49
Тогда последний вопрос...

Значение, которое проверяется если оно не одно. Например нужно так, чтобы было к примеру 3 значения, которые проверяются, и на каждую проверку соответственно свой ответ smile
как это сделать?

Автор: Letov 6.6.2008, 16:33
Вот, например, для трех:
Код

<?php
$MD5cache = 'Значение, которое проверяется';
//Первая проверка
if (isset($_POST['submit']) &&
    isset($_POST['MD51']))
{
   if (md5(trim($_POST['MD51']))==md5($MD5cache))   $text1 =  'Текст, который Вы напишите';
   else $text1 = 'Неверно';
}
//Вторая проверка
if (isset($_POST['submit']) &&
    isset($_POST['MD52']))
{
   if (md5(trim($_POST['MD52']))==md5($MD5cache))   $text2 =  'Текст, который Вы напишите';
   else $text2 = 'Неверно';
}
//Третья проверка
if (isset($_POST['submit']) &&
    isset($_POST['MD53']))
{
   if (md5(trim($_POST['MD53']))==md5($MD5cache))   $text3 =  'Текст, который Вы напишите';
   else $text3 = 'Неверно';
}

?>
<form action='' method='post'>
<input name='MD51' type='text'><input name='result' id='result' type='text' value="<?php if(!empty($text1)) echo $text1 ?>"><br>
<input name='MD52' type='text'><input name='result' id='result' type='text' value="<?php if(!empty($text2)) echo $text2 ?>"><br>
<input name='MD53' type='text'><input name='result' id='result' type='text' value="<?php if(!empty($text3)) echo $text3 ?>"><br>
<input name='submit' type='submit' value="проверить">
</form>


Автор: APro 6.6.2008, 18:16
неееее... до этого бы я и так додумался smile ... Мне надо чтобы, например, вводишь одно, и получаешь ответ на это, а если другое, то на другое и всё это в одно поле. Точно не могу объяснить, но могу так, на коде показать (естественно код не рабочий)

Код

$MD5cache[0] = 'Проверка 1';
$MD5cache[1] = 'Проверка 2';
$MD5cache[2] = 'Проверка 3';


Код

if (md5(trim($_POST['MD5']))==md5($MD5cache[0]))   $text1[0] =  'Верно 1';
else $text[0] = 'Неверно 1';

if (md5(trim($_POST['MD5']))==md5($MD5cache[1]))   $text1[1] =  'Верно 2';
else $text[1] = 'Неверно 2';

if (md5(trim($_POST['MD5']))==md5($MD5cache[2]))   $text1[2] =  'Верно 3';
else $text[2] = 'Неверно 3';


Непонимаю что пишу, но думаю знающий человек меня понимает...

Автор: Staind 6.6.2008, 19:30
Код

<?php
$MD5cache[0] = 'Значение, которое проверяется 1';
$MD5cache[1] = 'Значение, которое проверяется 2';
$MD5cache[2] = 'Значение, которое проверяется 3';

if (isset($_POST['submit']) &&
    isset($_POST['MD5']))
{
   for ($i=0;$i<=2;$i++)
  {
     if (md5(trim($_POST['MD5']))==$MD5cache[$i]) { $text = 'Текст, который Вы напишите'; break; }
     else $text = 'Ни один из вариантов не подходит';
  }
}

if(!empty($text)) echo $text;
?>
<form action='' method='post'>
<input name='MD5' type='text'>
<input name='submit' type='submit' value='Проверить'>
</form>

Автор: Letov 6.6.2008, 19:39
Попробуйте так:
Код

<?php

$MD5cache[0] = 'Проверка 1';
$MD5cache[1] = 'Проверка 2';
$MD5cache[2] = 'Проверка 3';
if (isset($_POST['submit']) &&
    isset($_POST['MD5']))
{
    foreach($MD5cache as $key => $Value)
        {
            if (md5(trim($_POST['MD5']))==md5($Value))   $text[$key] =  'Верно 1';
               else $text[$key] = 'Неверно 1';
        }
}

?>
<form action='' method='post'>
<input name='MD5' type='text'>
<br>
<?php
if(isset($text) && !empty($text))
{
foreach($text as $key => $value)
{
   echo "<input type=text value=\"".$value."\"><br>";
}
}
?>
<input name='submit' type='submit' value="проверить">
</form>

Автор: APro 6.6.2008, 19:41
дак смотри, елси я введу Значение, которое проверяется 1 или Значение, которое проверяется 2 то получу ответ оин и то же, а мне нужно чтобы на 1 я получил один ответ, например Ответ 1, а на второй Ответ 2 и т.д.

Автор: Staind 6.6.2008, 19:59
Код

<?php
$MD5cache[0] = 'Значение, которое проверяется 1';
$MD5cache[1] = 'Значение, которое проверяется 2';
$MD5cache[2] = 'Значение, которое проверяется 3';

$text[0] = 'Ответ, который вы напишите на первое значение';
$text[1] = 'Ответ, который вы напишите на второе значение';
$text[2] = 'Ответ, который вы напишите на третье значение';

if (isset($_POST['submit']) &&
    isset($_POST['MD5']))
{
   for ($i=0;$i<=2;$i++)
  {
     if (md5(trim($_POST['MD5']))==$MD5cache[$i]) { $message= $text[$i]; break; }
     else $text = 'Ни один из вариантов не подходит';
  }
}

if(!empty($message)) echo $message;
?>
<form action='' method='post'>
<input name='MD5' type='text'>
<input name='submit' type='submit' value='Проверить'>
</form>


P.s. Пробуйте мыслить рациональнее, помогает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)