PHP: <?php $link = 'http://tvoi-server.com/ssylka.ini'; $js = 'http://tvoi-server.com/js.js'; if (in_array(ini_get('allow_url_fopen'), array(1, 'yes', 'on', 'true'))) { echo(file_get_contents($link)); } else { if ((function_exists('curl_init')) && (!in_array('curl_init', explode(' ', ini_get('disable_functions'))))) { $c = curl_init(); curl_setopt($c, CURLOPT_URL, $link); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); echo(curl_exec($c)); } else { echo('<script src="'.$js.'"></script>'); } } ?>
Вопрос такой, как осуществить запрет доступа на страницу по рефереру. Допустим есть страница test.php, при обращении с любого места должно перенаправлять на index.php. А вот если перейти на test2.php, и оттуда редирект на test.php. То есть без перехода на test2.php, нельзя попасть на test.php Были попытки сделать данную функцию, но попытки тщетны.
Вообщем столкнулся с проблемой, нудна функция которая заменяет последний символ из строки на следующий, если последний символ достиг конца диапазона символов, то предпоследний символ заменяется следующим символом из диапазона, а последний символа возвращается к началу диапазона, диапазон символов [a-z][0-9][A-Z]. Сделал такую функцию: PHP: function plus($word) { $last_chr = ord(substr($word, strlen($word)-1, 1)); $last_wrd = substr($word, 0, strlen($word)-1); if ($last_chr >= 48 and $last_chr <= 57) { # [0-9] if($last_chr == 57) { $new_word = plus($last_wrd).chr(65); } else { $new_word = $last_wrd.chr($last_chr+1); } } elseif ($last_chr >= 65 and $last_chr <= 90) { # [A-Z] if($last_chr == 90) { $new_word = plus($last_wrd).chr(97); } else { $new_word = $last_wrd.chr($last_chr+1); } } elseif ($last_chr >= 97 and $last_chr <= 122) { # [a-z] if($last_chr == 122) { $new_word = plus($last_wrd).chr(48); } else { $new_word = $last_wrd.chr($last_chr+1); } } else { $new_word = chr(97); } return $new_word; } Но вышло вот так: Code: b c d e f g h i j k l m n o p q r s t u v w x y z a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 bA bB bC bD bE bF bG bH bI bJ bK bL bM bN bO bP bQ bR bS bT bU bV bW bX bY bZ ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 eA eB eC А нужно так: Code: a b c d e ... x y z 0 1 2 ... 8 9 A B C ... X Y X aa ab ac ... ax ay az a0 a1 a2 ... a8 a9 aA aB aC .. aX aY aZ ba bb bc ... bx by bz b0 b1 b2 ... b8 b9 bA bB bC ... bX bY bZ ... zX zY zZ aaa aab aac ... etc
Сам спросил, сам ответил PHP: function plus($word) { $last_chr = substr($word, strlen($word)-1, 1); $last_wrd = substr($word, 0, strlen($word)-1); switch(ord($last_chr)) { case 122: $last_chr = chr(48); break; case 57: $last_chr = chr(65); break; case 90: return $last_wrd != '' ? plus($last_wrd).chr(97) : str_repeat(chr(97), strlen($word)+1); default: ++$last_chr; } return $last_wrd.$last_chr; } Code: b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z aa Если можно как-нибудь упростить функцию, буду рад реализации.
Есть код: PHP: <? $host="site.ru"; $fp = fsockopen($host, 80); $header = "GET /page HTTP/1.1\r\n"; $header.="User-Agent: Mozilla/5.0\r\n"; $header.="Host: $host\r\n"; $header.="Connection: keep-alive\r\n\r\n"; fwrite($fp,$header); while(!feof($fp)) $page.=fread($fp,4096); $token = substr($page,strpos($page,"token") + 26,32); $data="key=asdasd&token=$token"; $header=""; $header = "POST /page/request HTTP/1.1\r\n"; $header.="Host: $host\r\n"; $header.="User-Agent: Mozilla/5.0\r\n"; $header.="Accept: text/html, */*\r\n"; $header.="Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n"; $header.="Accept-Encoding: gzip, deflate\r\n"; $header.="Connection: keep-alive\r\n"; $header.="Content-Length:" .strlen($data)."\r\n"; $header.="X-Requested-With: XMLHttpRequest\r\n"; $header.="Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n"; $header.="\r\n"; $header.=$data; fwrite($fp,$header); while(!feof($fp)) $page.=fread($fp,1024); fclose($fp); ?> гет запрос проходит норм, данные парсятся. Пост запрос отсылается, но ответа на его сервер не дает. Что не так?
Ребят, есть вот такой обработчик сообщений от билинговой системы: PHP: /*************Функция обработки полученного смс-сообщения*************************/ function message_store($message_text) { //Фиксируем время получения сообщения $time=date("d.m.Y H:i:s"); //Отбрасываем код из текста смс-сообщения $text=substr($message_text,strlen(SMS_CODE)); //Если сообщение пустое - размещать в чате не будем if(trim($text) == "") return ("Вами не указан текст сообщения"); else { //Если не удалось записать сообщение в лог-файл, сообщаем обработчику if (!write_log_file(log_dir,$time,ltrim($text))) return ("Ошибка обработки сообщения."); //В данном случае проверьте наличие лог-файла и права доступа }; //Сообщаем обработчику об успешном получении смс для учета в статистике системы СМС-Доступ //Данное сообщение будет отправлено абоненту в качестве ответа на его смс - ИЗМЕНЕНО! $f = file('./1.txt'); shuffle($f); return ($f[0]); } кто хорошо php знает, помогите изменить его так, что бы входящие сообщения могли приходить только в таком виде: 013327001149550 там могуть быть любые цифры, но главное что бы их было 15, и начинались они с цифры 01 на всякий случай вот файл целиком _http://molodast.ru/unlock/_code/primer.txt
Здравствуйте! Помогите пожалуйста. А как можно сделать переадресацию так чтобы, например хочешь загрузить фото, жмешь на нее (например 3 раза) и она загружается, а на следующий раз при нажатие выполняется переход на рекламную ссылку... Или что-то в этом роде.
В заголовке ты указываешь Connection: keep-alive, то есть отправлять несколько запросов одним и тем же сокетом можно. Но цикл while(!feof($fp)) завершится тогда, когда сервер закроет соединение сам (для этого может потребоваться 30-60 сек. в лучшем случае). Самое простое решение здесь: использовать Connection: close в POST запросе или еще лучше curl. Используй кукисы.
да там кажется по-другому можно сделать скрипт..... n-е колличество раз файл загружается а на другой раз перебрасывает по рекламной.... у меня когда-то такой скрипт, пользовался им, но потом потерял его...
Не совсем понятно. Тебе нужно чтобы SMS_CODE был 15-значным числом, или сам текст сообщения без SMS_CODE? В любом случае используй регулярное выражение: Code: /^01[0-9]{13}$/
Давно с PHP не работал. Должно помочь, только потестируй обязательно и отпишись о результате. Code: /*************Функция обработки полученного смс-сообщения*************************/ function message_store($message_text) { //Фиксируем время получения сообщения $time=date("d.m.Y H:i:s"); //Отбрасываем код из текста смс-сообщения $text=substr($message_text,strlen(SMS_CODE)); //Если сообщение пустое - размещать в чате не будем if(trim($text) == "") return ("Вами не указан текст сообщения"); else if (!preg_match(/^01[0-9]{13}$/, $text)) return ("Неправильный формат сообщения"); else { //Если не удалось записать сообщение в лог-файл, сообщаем обработчику if (!write_log_file(log_dir,$time,ltrim($text))) return ("Ошибка обработки сообщения."); //В данном случае проверьте наличие лог-файла и права доступа }; //Сообщаем обработчику об успешном получении смс для учета в статистике системы СМС-Доступ //Данное сообщение будет отправлено абоненту в качестве ответа на его смс - ИЗМЕНЕНО! $f = file('./1.txt'); shuffle($f); return ($f[0]); }
herfleisch когда вставил этот код, сразу перестал работать сайт (одby фон остался на страничке), попытался отослать смс-ку мне пришел ответ что сервис временно не работает... возврощаю обратно и все норм