пхп код

12
Trafikgon
На сайте с 24.10.2008
Offline
174
1212

я создал файл codes.txt. Там пароль

Скрипт страно работает ввожу верный пароль он все кидает на страницу http://ххх.ru/404.html

или неверный тоже самое.

//если пароль верный то выполняется код ниже

// разместите ниже ваш код

что сюда написать?

<?php

/** Путь к файлу с кодами

*/

define ('CODES_FILE', 'codes.txt'); // пароли в файле должны быть расположенны построчно, каждый пас в отдельной строке

/** Функция проверки ключа по списку ключей в файле

@param $code - проверяемый код

*/

function checkCode ($code) {

$codes_array = file(CODES_FILE);

foreach ($codes_array as $cur_code) {

if (trim($cur_code) == $code) return true;

}

return false;

}

// пример провеки кода

if (checkCode(@$_GET['code']) == false) {

// если пароль неверный, по переадресация на форму входа

header ('Location: http://ххх.ru/404.html');

exit;

}

// если пароль верный то выполняется код ниже

// разместите ниже ваш код

?>

. (#)
P
На сайте с 25.10.2009
Offline
24
#1

А Вы собственно гет-запрос создали?

http://www.....ru/index.php?code=pass

наличие файла проверили?

<?php

$filename = '/path/to/foo.txt';

if (file_exists($filename)) {

echo "The file $filename exists";

} else {

echo "The file $filename does not exist";

}

?>

Господа, не смыслящие, но любящие тупо голосовать. Пожалуйста отведите душу. Слева у комментария есть кнопка, тупо жмите занизить Prishelec(у) репутацию. \@,@/
[Удален]
#2
Trafikgon:

function checkCode ($code) {
$codes_array = file(CODES_FILE);
foreach ($codes_array as $cur_code) {
if (trim($cur_code) == $code) return true;
}

return false;
}

попробуйте вставить else

foreach ($codes_array as $cur_code) {

if (trim($cur_code) == $code) return true;

}else{

return false;

}

}

Trafikgon
На сайте с 24.10.2008
Offline
174
#3

http://www.....ru/index.php?code=pass

Нет уменя таким образом сделано на сайте ввожу пароль через форму <form action="/pass.php" method="post"> он передаеться скрипту pass.php

Может здесь код вообще неполный?

/** Путь к файлу с кодами

*/

раз неуказано даже

unlimbox
На сайте с 03.01.2008
Offline
56
#4
Нет уменя таким образом сделано на сайте ввожу пароль через форму <form action="/pass.php" method="post"> он передаеться скрипту pass.php

Так в Вашем скрипте вы ищите пароль в GET, а передаете скрипту в POST....

JamBlog.ru (http://jamblog.ru)
Trafikgon
На сайте с 24.10.2008
Offline
174
#5

Выходит полный код рабочийй такой?

<?php

/** Путь к файлу с кодами

$filename = '/path/to/codes.txt';

if (file_exists($filename)) {

echo "The file $filename exists";

} else {

echo "The file $filename does not exist";

}

?>

*/

define ('CODES_FILE', 'codes.txt'); // пароли в файле должны быть расположенны построчно, каждый пас в отдельной строке

/** Функция проверки ключа по списку ключей в файле

@param $code - проверяемый код

*/

function checkCode ($code) {

$codes_array = file(CODES_FILE);

foreach ($codes_array as $cur_code) {

if (trim($cur_code) == $code) return true;

}

return false;

}

foreach ($codes_array as $cur_code) {

if (trim($cur_code) == $code) return true;

}else{

return false;

}

}

// пример провеки кода

if (checkCode(@$_POST['code']) == false) {

// если пароль неверный, по переадресация на форму входа

header ('Location: http://ххх.ru/404.html');

exit;

}

// если пароль верный то выполняется код ниже

// разместите ниже ваш код

здесь что писать? если код верный и открывалась нужная страница

?>

[Удален]
#6
Trafikgon:
Выходит полный код рабочийй такой?...

Нет, тестируйте вот это:

<?php

define ('CODES_FILE', 'codes.txt');

function checkCode ($code) {

$codes_array = file(CODES_FILE);

foreach ($codes_array as $cur_code) {

if (trim($cur_code) == $code) {

return true;

}else{

return false;

}

}

}

if (checkCode(@$_POST['code']) == false) {

header ('Location: http://ххх.ru/404.html');

exit;

}

header ('Location: http://нужная страница.html');

?>

pass.php и codes.txt должны быть в одном каталоге

Trafikgon
На сайте с 24.10.2008
Offline
174
#7

Всё в одном. Дело в том что почему-то код чтоли непроверяеться толи скрипт непашет.

Ввожу любое число или неввожу всё время перекидывает на http://ххх.ru/404.html в чём прикол неясно такое ощущение нет проверки кода

gormarket
На сайте с 29.12.2010
Offline
47
#8

Trafikgon, первый код проверил, все пашет (при передаче методом GET)

проблема возникает только если значение 'code' содержит кириллицу

Скорей всего проблема в передаче 'code' в скрипт проверки

посмотрите что туда приходит и что там попадает в codes_array из файла codes.txt:

после строк

function checkCode ($code) {

$codes_array = file(CODES_FILE);

вставьте для проверки такие строчки

print '$_GET<br />';

print '<pre>';

print_r($_GET);

print '</pre><br /><br />';

print '$_POST<br />';

print '<pre>';

print_r($_POST);

print '</pre><br /><br />';

print '$codes_array<br />';

print '<pre>';

print_r($codes_array);

print '</pre><br /><br />';

exit;

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
Trafikgon
На сайте с 24.10.2008
Offline
174
#9

Проверил приходит вот что.

ну ввожу и открываеться этот код.

$_GET

Array

(

)

$_POST

Array

(

[key] => 343434

[enter_key] => Войти »

)

$codes_array

Array

(

[0] => 888766

)

---------- Добавлено в 13:18 ---------- Предыдущее сообщение было в 13:17 ----------

Ну уменя методом post по-этому с get скрипт непроверял. а 888766 это верный код. для доступа к странице!!! который сохранен в файле utf-8

Сам файл code.txt сохранен в utf-8

Cтоит убрать проверочный код ваш. такая же беда что угодно вводи невводи всё кидает на 404.html

gormarket
На сайте с 29.12.2010
Offline
47
#10

Почему же у Вас нет $_POST['code'] ?

Вы ведь это значение сравниваете с "888766" из $codes_array

У Вас форма не передает значение 'code', а только "key" и "enter_key"

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий