Вы не зашли.
Главная » PHP » Проверка обратной ссылки
#1. @Office Off (0)
Участник
2010.03.29 03:03
Всем драсте  smile
Короче хочу замутить что то типо проверки обратной ссылки...
$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 присутствует на сайте ... что не так?sad
Может кто нибуть даст другой код?))  big_smile

Код не мой...smile
Отредактировано @Office (2010.03.29 03:03)
tongue
#2. Fuelen Off (5)
Участник
2010.03.29 08:08
Ойойой...
Этот код, что выше, закинь на govnowap.ru
Код:
span style="color: #0000BB"><?phpif(strpos($link, file_get_contents($site)) !== FALSE)echo 'адрес найден';
на хую вас вертів
#3. @Office Off (0)
Участник
2010.03.29 19:07
Неработает твой код,
$site = 'http://clikun.ru';
$link = 'http://porki.org';
if(strpos($link, file_get_contents($site)) !== FALSE)
echo 'адрес найден'; else echo 'ненайден';
Вечно выдает, ненайден
tongue
#4. 2010 Off (1)
Участник
2010.03.29 19:07
@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 ' ';
#5. @Office Off (0)
Участник
2010.03.29 19:07
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 'ненайден';
}
От того что ты поставил {} ничего не изменится  tongue
P.S: где ты видешь что бы я писал двойные ковычки?  big_smile
Отредактировано @Office (2010.03.29 19:07)
tongue
#6. 2010 Off (1)
Участник
2010.03.29 19:07
Полюбому ничего. Это я пишу так. Обрати внимание, я заменил !== на != неравно. И во втором варианте убрал вобще
''!= ложь''
Попробуй.
Добавлено спустя   2 минуты  11 секунд:
Первый пост:
echo "Ссылка $линк присутствует на сайте"; Двойные кавычки.
Отредактировано 2010 (2010.03.29 20:08)
#7. @Office Off (0)
Участник
2010.03.29 20:08
Первый пост: Код не мой...
tongue
#8. Gemorroj On (107)
Administrator
2010.03.29 20:08
там как раз нужно !==
Код:
if (stripos($link, file_get_contents($site)) !== false) {
echo 'адрес найден';
} else {
echo 'адрес не найден';
}
#9. @Office Off (0)
Участник
2010.03.30 18:06
Ничего не помогает sad
tongue
#10. Gemorroj On (107)
Administrator
2010.03.30 18:06
значет ты делаешь что-то не так. и на пост "ничего не помогает" - ничем и не помогут.
#11. @Office Off (0)
Участник
2010.03.30 18:06
Gemorroj, что сдесь нетак то?
Код:
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 'Нету';}?>
tongue
#12. 2010 Off (1)
Участник
2010.03.30 19:07
Пишет всегда нет?
#13. Gemorroj On (107)
Administrator
2010.03.30 19:07
Код:
$site = 'http://clikun.ru';
$link = 'http://kicki.org/';
if (stripos(file_get_contents($site), $link) !== false) {
echo 'Есть';
} else {
echo 'Нету';
}
#14. 2010 Off (1)
Участник
2010.03.30 20:08
@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)
- вот это сдесь не рулит.
#15. Gemorroj On (107)
Administrator
2010.03.30 22:10
2010, изучи внимательно первый пост, и только потом оставляй тут посты. в слудующий раз я буду удалять посты снова. я не хочу чтобы форум превращался в помойку с кусками неработающего говнокода.
#16. 2010 Off (1)
Участник
2010.03.30 22:10
Gemorroj, это у тебя говнокод! Ты хоть проверяешь что пишешь? нихуя неработает твой кусок нижнего регистра с подподъёбочным написанием кроме file get contents. Чем мой код тебе не так? добавь file g...c..(); и радуйся жизни. Я проверил твой код, в операторе if в любом случае ''нету'' покажет какой бы адрес небыл. Купи себе мозг, подумай о программировании на php, и нековыряй меня.
#17. @Office Off (0)
Участник
2010.03.31 16:04
2010, прочитай первый пост.
Gemorojj тоже не катит sad
tongue
#18. Gemorroj On (107)
Administrator
2010.03.31 17:05
@Office, var_dump(file_get_contents('сайт на котором ищем ссылку')); что пишет? получает страницу с удаленного сервера хоть?
#19. @Office Off (0)
Участник
2010.03.31 17:05
Да, страницу получает.. но ссылку ненаходит sad

выдает страницу и string(3039) " в самом верху
Отредактировано @Office (2010.03.31 17:05)
tongue
#20. Fuelen Off (5)
Участник
2010.03.31 17:05
19, там хоть есть ссылка?
на хую вас вертів
#21. 2010 Off (1)
Участник
2010.03.31 19:07
Office, я сделал! всё работает. Тебе надо много сайтов проверять на ссылки? если да, то щас сделаю крутой скрипт типа поисковика любых ссылок которые находятся на сайте ввиде <a href="http">name</a>.
#22. @Office Off (0)
Участник
2010.03.31 19:07
Нет мне надо 1 ссылку проверять.
Короче я делаю типо автоматическая проверка ссылке, если ссылка моя есть на сайте юзера, то проходит модерацию, если нет то нет.

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


Есть еще такой вариант:
Код:
$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 'Найдено';
}
Но проверить его немогу sad т.к. денвер у меня не держит curl как я понял...
Отредактировано @Office (2010.03.31 19:07)
tongue
#23. 2010 Off (1)
Участник
2010.03.31 19:07
Щас доделаю и дам код. Вобщем там показывает
1. текст адреса сайта вверху
2. само содержание сайта на котором проверяем
3. Внизу пишет: ссылка такая то такая присутствует на сайте или нет.
#24. Gemorroj On (107)
Administrator
2010.03.31 19:07
то, что ты написал равнозначно тому, что тебе писали ранее. И strpos возвращает число, а не булевый тип. Ищи проблему в чем-то ином. Код из 13 поста работает.
#25. 2010 Off (1)
Участник
2010.03.31 19:07
Кстати, я использовал не strpos)
#26. Gemorroj On (107)
Administrator
2010.03.31 19:07
2010, и что? тут много что можно использовать. Ну лучший вариант stripos
#27. @Office Off (0)
Участник
2010.03.31 19:07
АА ребята))) я сам сделал))
$site = 'http://deq.su/';
$link = 'waplog.3net';
if(stripos(file_get_contents($site),$link) === false)
echo 'ЙУХ'; else echo 'Ура';
Вот и все)) надо было не !== а ===roll))
Всем спасибо!
tongue
#28. Gemorroj On (107)
Administrator
2010.03.31 19:07
@Office, еще раз, 13 пост работает корректно.
#29. @Office Off (0)
Участник
2010.03.31 19:07
У меня не работаетsmile
Добавлено спустя   3 минуты  32 секунды:
Еще вопрос, будет ли это говнокодом?
Код:
/* Функция фильтровки при выводи из БД */
function utf($str)
{
$str = htmlspecialchars(trim(stripslashes($str)),ENT_QUOTES);
return $str;
}
 
/* Функция фильтровки при записи в БД */
function win($str)
{
$str = trim(mysql_real_escape_string($str));
return $str;
}
tongue
#30. 2010 Off (1)
Участник
2010.03.31 20:08
Гемарой, ну я для себя поробывал так:

<?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, нет. небудет. Почему сразу говнокод? это вполне нормальный код. Говнокод это первый пост.
#31. @Office Off (0)
Участник
2010.03.31 20:08
2010, а я подругому сделалsmile
Код:
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>
Отредактировано @Office (2010.03.31 20:08)
tongue
#32. Gemorroj On (107)
Administrator
2010.03.31 20:08
@Office,
Код:
/* Функция фильтровки при выводи из БД */
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 'Ссылка есть';
всегда пользуйся фигурными скобками.
#33. @Office Off (0)
Участник
2010.03.31 20:08
Gemorojj, a stripslashes почему убрал?)
tongue
#34. Gemorroj On (107)
Administrator
2010.03.31 20:08
@Office, а может ты расскажешь зачем ты его туда поставил? чем больше функций, тем лучше?
#35. 2010 Off (1)
Участник
2010.03.31 20:08
можешь addslashes() использовать. Я всегда его пишу если запрос в бд от юзеров.
#36. Gemorroj On (107)
Administrator
2010.03.31 20:08
нет, addslashes использовать не надо. он подходит для обработки JS в основном.
#37. @Office Off (0)
Участник
2010.03.31 20:08
Я использую stripslashes т.к. в базе текст хранится в экранированном виде, а как я знаю
stripslashes удаляем при выводе экранированиеsmile
tongue
#38. 2010 Off (1)
Участник
2010.03.31 20:08
office, если у тебя magic quotes gpc off, тогда только используется функция stripslashes.
#39. Gemorroj On (107)
Administrator
2010.03.31 20:08
2010, как раз наоборот.
#40. 2010 Off (1)
Участник
2010.03.31 20:08
Которая преобразовует обратные слэши в кавычки и апострафы, и двойные обратные слэши в один.
Добавлено спустя   1 минуту  41 секунду:
Гемарой, точно. Наоборот. Перепутал.
#41. Gemorroj On (107)
Administrator
2010.03.31 20:08
2010, как раз наоборот.
2010 написал:
преобразовует обратные слэши в кавычки и апострафы
ЩИТО?? Лучше промолчи, ну реально, почитай манов, потом пиши.
#42. 2010 Off (1)
Участник
2010.03.31 20:08
Гемарой, ну вот например \" преобразует в "
разве не так?
Добавлено спустя   3 минуты  29 секунд:
Короче, функция stripslashes удаляет экранирование символов произведенное функцией  аddslashes
#43. @Office Off (0)
Участник
2010.03.31 20:08
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 не увидал, а мне нужно что бы перебрасывало моментом..
tongue
#44. 2010 Off (1)
Участник
2010.03.31 20:08
Я знаю что Гемарой ответить. Заголовки должны выводится в браузер первыми чем какой либо текст. Короче, это у тебя с кодом косяк. У меня бывает такое. Покажи файл с этим кодом.
#45. @Office Off (0)
Участник
2010.03.31 20:08
Немного кода убрал
Вот код
Код:
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");?>
Отредактировано @Office (2010.03.31 20:08)
tongue
#46. 2010 Off (1)
Участник
2010.03.31 20:08
Используй буферизацию и заголовки будут выводится где хочешь. Я уверен на 100 процентов что header(location: file.php); будет работать в самой первой строке кода под <?php.
Добавлено спустя   3 минуты  40 секунд:
Куда header location убежал? покажи файл где имено он.
#47. Fuelen Off (5)
Участник
2010.03.31 22:10
Gemorroj написал:
всегда пользуйся фигурными скобками.
Почему?
на хую вас вертів
#48. Gemorroj On (107)
Administrator
2010.03.31 23:11
Fuelen, потому что это правила хорошего кода.
Страниц: 13 4 5 Все
Главная
WEB
PunBB Mod v0.6.2
0.036 s