PHP: public function checkforrobot($content,$post,$REFFER) { if(stripos($content,"Запросы с вашего адреса похожи на автоматические, пожалуйста введите цифры, которые вы видите на картинке.")!==FALSE) { $anticapcha=new anticapcha(); preg_match_all("/<input type=\"hidden\" name=\"key\" value=\"(.*?)\"/i",$content,$KeyArray,PREG_PATTERN_ORDER); preg_match_all("/<input type=\"hidden\" name=\"retpath\" value=\"(.*?)\"/i",$content,$retpathArray,PREG_PATTERN_ORDER); preg_match_all("/<img src=\"http:\/\/captcha\.yandex\.net\/image\?key=(.*?)\">/i",$content,$ImageArray,PREG_PATTERN_ORDER); $captchaContent=$this->dryconnect("http://captcha.yandex.net/image?key=".$ImageArray[1][0],"",0); $content_type=$this->Lastinfo['content_type']; $extention="jpg"; /* switch($content_type) { case 'image/jpeg': $extention="jpg"; break; } */ $fp = fopen ("./code.$extention", "w+"); fwrite ($fp, $captchaContent); fclose ($fp); $code=$anticapcha->recognize("./code.$extention", "871b63251f0537e9081a0101648e8a26", true); $postA="retpath=".$retpathArray[1][0]."&key=".$KeyArray[1][0]."&rep=$code"; $validationURL="http://captcha.yandex.net/send.xml"; print("<H1>POSTing to $validationURL</H1><hr><hr><br>"); $aftercaptcha=$this->dryconnect($validationURL,$postA,0);//"http://captcha.yandex.net/send.xml" $validationURL="http://captcha.yandex.net/&retpath=".$retpathArray[1][0]."&key=".$KeyArray[1][0]."&rep=$code"; $aftercaptcha=$this->dryconnect($validationURL,$postA,0); // $aftercaptcha=$this->dryconnect($retpathArray[1][0],"",0); $aftercaptcha=$this->dryconnect($retpathArray[1][0],$post,0); // $aftercaptcha=$this->dryconnect($REFFER,"",0); return $aftercaptcha; } // print($aftercaptcha); return false; Помогите пожалуйста, все перепроверил а не работает(
PHP: $date = date('t/m/Y - h:i:s'); разделители "/" заменить на "-" и между датой и времинем правильный разделитель PHP: $date = date('t-m-Y h:i:s'); после PHP: $insert_query = mysql_query ("INSERT INTO guestbook.main (date,name,email,message) VALUES ('$date','".mysql_real_escape_string($name)."','".mysql_real_escape_string($email)."','".mysql_real_escape_string($message)."');") or die (mysql_error()); добавить: PHP: header("Location: questboock.php");
Рекомендую использовать МЕТА тэг для переадресации вместо header() PHP: echo "<META HTTP-EQUIV='REFRESH' CONTENT='0; URL= admin.php'>";
Друзья помогите решить задачку. Есть массив изображений(кол-во не важно) Требуется ср-вами пхп расчертить таблицу согласно кол-ву дней в месяце по 7 ячеек в ряду и заполнять каждую последующую фотографией из массива. Как сие чудо можно реализовать?
Есть сайт, и мне надо, чтобы скрипт на странице переходил по ссылке, потом по следующей и еще несколько раз по ней же, между переходами по ссылкам должно пройти 3 секунды, после чего не производил никаких действий в течении 5 минут, а потом снова все повторялось. Подскажите, пожалуйста, функцию, которая устанавливала бы разрыв в действиях скрипта в 3сек, и подскажите как сделать, чтобы скрипт переходил по ссылке.
гаррет-тень, задержка времени - sleep(3). 3 - секунды. если нужны микросекунды - есть usleep(). "переход" по ссылке - ээ.. ну просто загрузи страницу с тем url-ом и все. как хочешь. file_get_contents, или fopen, или fsockopen, или curl-ом.. выбор за тобой)
PHP: $user_agent = $_SERVER["HTTP_USER_AGENT"]; if (eregi("(chrome)", $user_agent)) { echo "blocked"; } elseif (eregi("(mozilla)/([0-9]{1,2}.[0-9]{1,3})", $user_agent)) { echo "blocked"; } elseif (eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})", $user_agent)) { echo "blocked"; } else header("Location: $url");
А почему нельзя просто: PHP: <?php if ( strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE') || strstr($_SERVER['HTTP_USER_AGENT'], 'Mozilla') || strstr($_SERVER['HTTP_USER_AGENT'], 'Chrome')) { exit ('Доступ закрыт'); } else { //Контент } ?>
PHP: <?PHP if (isset($_POST['login']) && isset($_POST['password'])) { $login = $_POST['login']; $password = $_POST['password']; $email= $_POST['email']; $id=cyr(htmlspecialchars(stripslashes(trim($id)))); $query = "SELECT `id` FROM `users` WHERE `login`='{$login}' AND `password`='{$password}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($sql) == 1) { $row = mysql_fetch_assoc($sql); $_SESSION['user_id'] = $row['id']; while ($tablerows = mysql_fetch_row($sql)) { echo $email; } } else { die('Такой логин с паролем не найдены в базе данных. '); } } и браузер выдает ошибку подскажите,пожалуйста :в чем проблема?
Leonix по плохому это решается так: пропишите в начале скриптов PHP: error_reporting(E_ALL & ~E_NOTICE); По хорошему: добавьте в условие isset($_POST['email']) И ищите, где определяется переменная $id - при каких то обстоятельствах инициализации не происходит Redwood так слишком просто. Но по хорошему еще стоит заменить strstr на stripos. И к тому же проверка strstr($_SERVER['HTTP_USER_AGENT'], 'Mozilla') - выпилит с сайта поисковых ботов, что обычно нежелательно
Ну регистр тут роли не играет, так как он явно прописан в скрипте, по другому быть не может. А по поваду Mozill' ы и поисковых ботов, вроде бы задача и была блокировать все обращения с этих User Agent' ов, по крайней мере никаких других условий в ТЗ не давалось )
Redwood суть в strpos против strstr и том, что мануал советует использовать первую функцию вместо второй для поиска подстрок. Если уж быть педантом - по заданию требовалось запретить доступ трем браузерам, а не накрыть шквальным огнем все подряд. Leonix значит вы что-то изменили. Советую сделать вывод sql-запроса (echo $query и ручками отправить его самостоятельно. Возможно, таких пар логин/пароль действительно нет или передаются не те данные, которые хотелось. Далее, строка $id=cyr(htmlspecialchars(stripslashes(trim($id)))); - не несет смысловой нагрузки, так как не используется в данном коде А также, советую прочитать вот это: https://forum.antichat.ru/thread30641.html
Добрый день. Пытаюсь POST запросом через КУРЛ отправить запрос, чтобы создать топик на форуме, перед отправкой авторизовался, куки сохранил, захожу на форму создания топика, считал скрытые поля, сформировал массив из нужных данные для отправки, указываю верные заголовки, применяю куки, отправляю данные , получаю ответ "200", как бы всё отлично, но топик не создаётся. Вот код PHP: $header1 [] = "Host:www.woolfs.ru"; $header1 [] = "Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.7"; $header1 [] = "Connection:keep-alive"; $header1 [] = "Accept-Encoding:gzip,deflate"; $header1 [] = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; $header1 [] = "Accept-Language:ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3"; $header1 [] = "Keep-Alive:115"; $header1 [] = "Connection:keep-alive"; $header1 [] = "Content-Type:multipart/form-data"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url_posting); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER , $header1 ); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_REFERER,'http://www.woolfs.ru/forum/posting.php?mode=post&f=4'); curl_setopt($ch, CURLOPT_POSTFIELDS,$posting_data); curl_setopt($ch, CURLOPT_USERAGENT, $this->user_agent); curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookies_path); curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookies_path); $result=curl_exec($ch); curl_close($ch); Уже 3 дня бьюсь на этим, ПОМОГИТЕ кто может.