@Office » 2010.03.29 03:40

Всем драсте  :)
Короче хочу замутить что то типо проверки обратной ссылки...
$site = 'http://clikun.ru'; //Где ищим
$link = 'http://1porki.org'; //Что ищим
$go = file ($site);
$go = implode("",$go);
if (str_replace($link,"",$go)) echo "Ссылка $link присутствует на сайте $site" ;
else echo "Ненайдено";
Выдаем Ссылка $link присутствует на сайте ... что не так?:(
Может кто нибуть даст другой код?))  :D

Код не мой...:)

Fuelen » 2010.03.29 08:16

Ойойой...
Этот код, что выше, закинь на govnowap.ru

Код:

1
span style="color: #0000BB"><?phpif(strpos($link, file_get_contents($site)) !== FALSE)echo 'адрес найден';
@Office » 2010.03.29 19:28

Неработает твой код,
$site = 'http://clikun.ru';
$link = 'http://porki.org';
if(strpos($link, file_get_contents($site)) !== FALSE)
echo 'адрес найден'; else echo 'ненайден';
Вечно выдает, ненайден

2010 » 2010.03.29 19:48

@Office, пробуй:

$site = 'http://clikun.ru';
$link = 'http://porki.org';
if(strpos($link, file_get_contents($site)) != FALSE) {

echo 'адрес найден';
} else {
echo 'ненайден';
}

или так:

$site = 'http://clikun.ru';
$link = 'http://porki.org';
if(strpos($link, file_get_contents($site))) {
echo 'адрес найден';
} else {
echo 'ненайден';
}
Добавлено спустя   6 минут  37 секунд:
@Office,
Непиши двойные кавычки типа echo " ";
так как php будет обрабатывать их как переменные и грузить сервер.

Пиши апостаф(Одинарные кавычки)
echo ' ';

@Office » 2010.03.29 19:55

2010 написал:

@Office, пробуй:

$site = 'http://clikun.ru';
$link = 'http://porki.org';
if(strpos($link, file_get_contents($site)) != FALSE) {

echo 'адрес найден';
} else {
echo 'ненайден';
}

или так:

$site = 'http://clikun.ru';
$link = 'http://porki.org';
if(strpos($link, file_get_contents($site))) {
echo 'адрес найден';
} else {
echo 'ненайден';
}

От того что ты поставил {} ничего не изменится  :P
P.S: где ты видешь что бы я писал двойные ковычки?  :D

2010 » 2010.03.29 19:59

Полюбому ничего. Это я пишу так. Обрати внимание, я заменил !== на != неравно. И во втором варианте убрал вобще
''!= ложь''
Попробуй.
Добавлено спустя   2 минуты  11 секунд:
Первый пост:
echo "Ссылка $линк присутствует на сайте"; Двойные кавычки.

@Office » 2010.03.29 20:06

Первый пост: Код не мой...

Gemorroj » 2010.03.29 20:30

там как раз нужно !==

Код:

1
2
3
4
5
if (stripos($link, file_get_contents($site)) !== false) {
echo 'адрес найден';
} else {
echo 'адрес не найден';
}
@Office » 2010.03.30 18:33

Ничего не помогает :(

Gemorroj » 2010.03.30 18:43

значет ты делаешь что-то не так. и на пост "ничего не помогает" - ничем и не помогут.

@Office » 2010.03.30 18:59

Gemorroj, что сдесь нетак то?

Код:

1
span style="color: #0000BB"><?phpset_time_limit(0);$site = 'http://clikun.ru'; $link = 'http://kicki.org/';if (stripos($link, file_get_contents($site)) !== false) { echo 'Есть';} else { echo 'Нету';}?>
2010 » 2010.03.30 19:13

Пишет всегда нет?

Gemorroj » 2010.03.30 19:37

Код:

1
2
3
4
5
6
7
$site = 'http://clikun.ru';
$link = 'http://kicki.org/';
if (stripos(file_get_contents($site), $link) !== false) {
echo 'Есть';
} else {
echo 'Нету';
}
2010 » 2010.03.30 20:20

@office,

Я так понял тебе надо просто сравнить ссылку с другой - есть она там где ищим или нет.

<?php
$site = "http://wapinet.ru";
$link = "http://wapinet.ru";

if ($site == $link) {
echo 'Есть';
} else {
echo 'Нету';
}
?>

Вот и всё. Переменная $site - где ищим, переменная $link - что ищим. Просто сравниваем одну переменную с другой, если адрес подходит - truе(истина), т.е. всё верно и напишет ''есть''. Если неподходит - false(ложь), напишет ''нет''.
У меня один вопрос, зачем функция file_get_contents() которая для открытия файлов? если можно просто сравнить переменные.
Тут же URL адрес сравниваем на присутствие, а не файл открываем для сравнения.

if (file_get_contents($site), $link) !== false)
- вот это сдесь не рулит.

Gemorroj » 2010.03.30 22:43

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

2010 » 2010.03.30 22:59

Gemorroj, это у тебя говнокод! Ты хоть проверяешь что пишешь? нихуя неработает твой кусок нижнего регистра с подподъёбочным написанием кроме file get contents. Чем мой код тебе не так? добавь file g...c..(); и радуйся жизни. Я проверил твой код, в операторе if в любом случае ''нету'' покажет какой бы адрес небыл. Купи себе мозг, подумай о программировании на php, и нековыряй меня.

@Office » 2010.03.31 16:58

2010, прочитай первый пост.
Gemorojj тоже не катит :(

Gemorroj » 2010.03.31 17:11

@Office, var_dump(file_get_contents('сайт на котором ищем ссылку')); что пишет? получает страницу с удаленного сервера хоть?

@Office » 2010.03.31 17:34

Да, страницу получает.. но ссылку ненаходит :(

выдает страницу и string(3039) " в самом верху

Fuelen » 2010.03.31 17:48

19, там хоть есть ссылка?

2010 » 2010.03.31 19:31

Office, я сделал! всё работает. Тебе надо много сайтов проверять на ссылки? если да, то щас сделаю крутой скрипт типа поисковика любых ссылок которые находятся на сайте ввиде <a href="http">name</a>.

@Office » 2010.03.31 19:39

Нет мне надо 1 ссылку проверять.
Короче я делаю типо автоматическая проверка ссылке, если ссылка моя есть на сайте юзера, то проходит модерацию, если нет то нет.

P.S: Если сделал, поделись:)


Есть еще такой вариант:

Код:

1
2
3
4
5
6
7
8
9
10
11
12
$url = 'http://cайт';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$file = curl_exec($ch);
curl_close($ch);
 
$pos = strpos($file, 'porki.org');
if($pos === true)
{
echo 'Найдено';
}

Но проверить его немогу :( т.к. денвер у меня не держит curl как я понял...

2010 » 2010.03.31 19:45

Щас доделаю и дам код. Вобщем там показывает
1. текст адреса сайта вверху
2. само содержание сайта на котором проверяем
3. Внизу пишет: ссылка такая то такая присутствует на сайте или нет.

Gemorroj » 2010.03.31 19:46

то, что ты написал равнозначно тому, что тебе писали ранее. И strpos возвращает число, а не булевый тип. Ищи проблему в чем-то ином. Код из 13 поста работает.

2010 » 2010.03.31 19:46

Кстати, я использовал не strpos)

Gemorroj » 2010.03.31 19:48

2010, и что? тут много что можно использовать. Ну лучший вариант stripos

@Office » 2010.03.31 19:52

АА ребята))) я сам сделал))
$site = 'http://deq.su/';
$link = 'waplog.3net';
if(stripos(file_get_contents($site),$link) === false)
echo 'ЙУХ'; else echo 'Ура';
Вот и все)) надо было не !== а ===:))))
Всем спасибо!

Gemorroj » 2010.03.31 19:53

@Office, еще раз, 13 пост работает корректно.

@Office » 2010.03.31 19:54

У меня не работает:)
Добавлено спустя   3 минуты  32 секунды:
Еще вопрос, будет ли это говнокодом?

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
/* Функция фильтровки при выводи из БД */
function utf($str)
{
$str = htmlspecialchars(trim(stripslashes($str)),ENT_QUOTES);
return $str;
}
 
/* Функция фильтровки при записи в БД */
function win($str)
{
$str = trim(mysql_real_escape_string($str));
return $str;
}
2010 » 2010.03.31 20:02

Гемарой, ну я для себя поробывал так:

<?php
echo '<style type="text/css">body {background: white} .class {background: #fff; padding: 4px; border: 2px solid red;}</style>';
$site = 'http://webl.us';
$link = '"http://webl.us/billing/billing.php"';
echo '<div class="class">' . $site . '</div>';
echo file_get_contents($site);

if (strstr(file_get_contents($site), $link)) {
echo '<div class="class">Ссылка ' . $link . ' присутствует на сайте</div>';
} else {
echo '<div class="class">Ссылка ' . $link . ' на сайте ненайдена!</div>';
}
?>
----
Office, нет. небудет. Почему сразу говнокод? это вполне нормальный код. Говнокод это первый пост.

@Office » 2010.03.31 20:06

2010, а я подругому сделал:)

Код:

1
span style="color: #0000BB"><?php$error = '';if(isset($_POST['url']) && isset($_POST['site'])){ if(empty($_POST['url']) or empty($_POST['site'])) { $error.= 'Заполните все поля<br/>'; } if(!preg_match("/^http:\/\/[a-zA-Z0-9\/.=?_-]+$/",$_POST['site'])) { $error.= 'Не верный адрес сайта<br/>'; } if($error) { echo $error; } else { if(stripos(file_get_contents($_POST['site']),$_POST['url']) === false) echo 'Ссылки нет'; else echo 'Ссылка есть'; }}?><form name="form" action="" method="post">Введите сайт:<br/><input type="text" name="site"/><br/>Введите то что ищем:<br/><input type="text" name="url"/><br/><input type="submit" value="Поиск"/></form>
Gemorroj » 2010.03.31 20:08

@Office,

Код:

1
2
3
4
5
6
7
8
9
10
11
/* Функция фильтровки при выводи из БД */
function utf($str)
{
return htmlspecialchars($str, ENT_QUOTES);
}
 
/* Функция фильтровки при записи в БД */
function win($str)
{
return mysql_real_escape_string(trim($str));
}

@Office написал:

У меня не работает

значит ты делаешь что-то не так, как написано в 13 посте.
Добавлено спустя    49 секунд:

@Office написал:

echo 'Ссылки нет'; else echo 'Ссылка есть';

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

@Office » 2010.03.31 20:10

Gemorojj, a stripslashes почему убрал?)

Gemorroj » 2010.03.31 20:12

@Office, а может ты расскажешь зачем ты его туда поставил? чем больше функций, тем лучше?

2010 » 2010.03.31 20:14

можешь addslashes() использовать. Я всегда его пишу если запрос в бд от юзеров.

Gemorroj » 2010.03.31 20:16

нет, addslashes использовать не надо. он подходит для обработки JS в основном.

@Office » 2010.03.31 20:23

Я использую stripslashes т.к. в базе текст хранится в экранированном виде, а как я знаю
stripslashes удаляем при выводе экранирование:)

2010 » 2010.03.31 20:23

office, если у тебя magic quotes gpc off, тогда только используется функция stripslashes.

Gemorroj » 2010.03.31 20:25

2010, как раз наоборот.

2010 » 2010.03.31 20:26

Которая преобразовует обратные слэши в кавычки и апострафы, и двойные обратные слэши в один.
Добавлено спустя   1 минуту  41 секунду:
Гемарой, точно. Наоборот. Перепутал.

Gemorroj » 2010.03.31 20:28

2010, как раз наоборот.

2010 написал:

преобразовует обратные слэши в кавычки и апострафы

ЩИТО?? Лучше промолчи, ну реально, почитай манов, потом пиши.

2010 » 2010.03.31 20:31

Гемарой, ну вот например \" преобразует в "
разве не так?
Добавлено спустя   3 минуты  29 секунд:
Короче, функция stripslashes удаляет экранирование символов произведенное функцией  аddslashes

@Office » 2010.03.31 20:40

Gemorojj, ответь на мой последний (самый важный для меня сейчас вопрос).
Когда я пытаюсь перенаправить юзера на нужную мне страницу ч/з
header('Location: куда'); Выдает ошибку Warning: Cannot modify header information - headers already sent by (output started at W:\home\create\www\pages\head.php:5) in W:\home\create\www\go.php. что бы сделать что бы избежать этого?
юзал другие функции переброса, такие как window.location.href, http-equiv, больее быстрого способа чем header не увидал, а мне нужно что бы перебрасывало моментом..

2010 » 2010.03.31 20:42

Я знаю что Гемарой ответить. Заголовки должны выводится в браузер первыми чем какой либо текст. Короче, это у тебя с кодом косяк. У меня бывает такое. Покажи файл с этим кодом.

@Office » 2010.03.31 20:45

Немного кода убрал
Вот код

Код:

1
span style="color: #0000BB"><?phpsession_name('inv');session_start();$set['title'] = 'Переход';include("config.php");include("pages/function.php");include("pages/head.php");include("pages/control.php");if(isset($active_user) == 1){ echo '<div class="title"><b>Переход</b></div>'; $row = @mysql_fetch_array(zapros("SELECT * FROM `".prefix."platform` WHERE `id`='".intval($_GET['id'])."' and `status`='1' LIMIT 1")); if(@mysql_num_rows(zapros("SELECT * FROM `".prefix."platform` where `id`='".abs(intval($_GET['id']))."''"))) { echo '<div class="menu">Такой ссылки не существует!</div>'; } elseif($row['id_user'] == intval($user['id'])) { echo '<div class="menu">По своей ссылки переходить нельзя!</div>'; } elseif(mysql_num_rows(zapros("SELECT credit FROM `".prefix."platform` where `id`='".abs(intval($_GET['id']))."' and `credit`<1"))) { echo '<div class="menu">У пользователя нехватает кредитов для перехода по этой ссылке!</div>'; } elseif(mysql_num_rows(zapros("SELECT who FROM `".prefix."clicks` WHERE `who`='".intval($user['id'])."' and `whom`='".$row['url']."'")) == 1) { echo '<div class="menu">Вы уже переходили по этой ссылке!</div>'; } elseif($row['status'] != 1) { echo '<div class="menu">Площадка не промодерированна!</div>'; } elseif($row['act'] != 1) { echo '<div class="menu">Площадка отключенна!</div>'; } else { if((@time() - @$_SESSION['time']) > 3 ) { $_SESSION['time'] = time(); header('Location: '.$row['url']); // echo '<script language="JavaScript"> window.location.href = "'.$row['url'].'"</script>'; } else { echo '<div class="menu">Слишком частые клики!<br/>Переходить по ссылкам нужно до конца!</div>'; } } echo '<div class="block"><a href="/">ClickClub</a> &raquo; <a href="/profile.php">Кабинет</a> &raquo; Переход</div>';}else{ echo '<div class="title">ERROR</div> <div class="menu">Вы не зарегистрированы, и не можете переходить по ссылкам!<br/> Пожалуйста <a href="auth.php">Войдите</a> или <a href="reg.php">Зарегистрируйтесь</a></div>'; echo '<div class="block"><a href="/">ClickClub</a> &raquo; Переход</div>';}include("pages/foot.php");?>
2010 » 2010.03.31 20:47

Используй буферизацию и заголовки будут выводится где хочешь. Я уверен на 100 процентов что header(location: file.php); будет работать в самой первой строке кода под <?php.
Добавлено спустя   3 минуты  40 секунд:
Куда header location убежал? покажи файл где имено он.

Fuelen » 2010.03.31 22:54

Gemorroj написал:

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

Почему?

Gemorroj » 2010.03.31 23:01

Fuelen, потому что это правила хорошего кода.