Писал код, все работало. Но потом начала выскакивать ошибка: Parse error: syntax error, unexpected $end in На строчку которую ругается там стоит лишь тег </html> В чем проблема?!
PHP: <?php $ch = curl_init (); curl_setopt ($ch , CURLOPT_URL , "http://rutracker.org/forum/login.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0"); $headers = array ( 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8', 'Accept-Language: en-US,en;q=0.5', 'Accept-Encoding: gzip, deflate', ); curl_setopt($ch, CURLOPT_HTTPHEADER,$headers); curl_setopt($ch, CURLOPT_REFERER, "http://rutracker.org/forum/index.php"); curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt"); curl_setopt($ch, CURLOPT_POSTFIELDS, "login_username=login&login_password=pass&login=%C2%F5%EE%E4"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); print($result); ?> В чём может быть проблема. Вывод просто ужасен.
PHP: <?php $ch = curl_init (); curl_setopt ($ch , CURLOPT_URL , "http://login.rutracker.org/forum/login.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0"); $headers = array ( 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8', 'Accept-Language: en-US,en;q=0.5', 'Accept-Encoding: gzip, deflate', ); curl_setopt($ch, CURLOPT_HTTPHEADER,$headers); curl_setopt($ch, CURLOPT_REFERER, "http://login.rutracker.org/forum/login.php"); curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt"); curl_setopt($ch, CURLOPT_POSTFIELDS, "login_username=login&login_password=password&login=%C2%F5%EE%E4"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $inter = curl_exec($ch); for($i=0;$i<=100;$i=$i+50) { $url = "http://rutracker.org/forum/viewforum.php?f=2149&start=".$i; curl_setopt ($ch , CURLOPT_URL , $url.$i); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER,$headers); curl_setopt($ch, CURLOPT_REFERER, "http://rutracker.org/forum/index.php"); curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt"); $set = curl_exec($ch); $parsing = "/\class\=\"topicAuthor\"\>(.*)\<\/a\>/"; $res = preg_match_all($parsing,$inter,$tmp, PREG_PATTERN_ORDER); print mb_convert_encoding($set, "windows-1251", "auto"); } curl_close ($ch); ?> Данный скрипт успешно авторизируется, т.е. реальная сессия рвётся, но если выводить результа после авторизации то выходит пустая страница. Всё проходит хорошо, но вот в результате повторного запроса который выполняется несколько циклов с полученной кукой, пишется что-то типа этого ▀М╫iwв≥.З≥Z╚Ъц6ДIK╙0Ct5xпmиrKJ|нUt╦ @▒,@!┘ В чём проблема не могу понять.
Переделываю конструктор для тестов для колледжа, решил через ООП подход. Раньше с ним на не работал. Есть 2 класса PHP: class Db { public $conn; function __construct($db_host,$db_name,$db_login,$db_pass) { $conn = mysql_connect($db_host, $db_login, $db_pass) or die("Невозможно установить соединение: ". mysql_error()); mysql_select_db($db_name) or die("Ошибка в имени БД"); mysql_query('SET NAMES cp1251'); mysql_query('SET CHARACTER SET cp1251' ); mysql_query('SET COLLATION_CONNECTION="cp1251_general_ci"' ); mysql_select_db($db_name) or die("Ошибка в имени БД"); } public function query($query) { $t = 0; $result = mysql_query($query) or die('Невозможно сделать выборку из БД'); while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { foreach($row as $key=>$val)$return[$t][$key] = $val; $t++; } return $return; } } и PHP: class Auth { public $Db; function __construct(&$obj) { $this->Db = $obj; } public function check_post($login,$pass) { if($this->Db->query('SELECT * FROM config WHERE login="'.$login.'" AND pass="'.md5($pass).'"'))return true; else return false; } } Вот так создаю объекты PHP: $Db = new Db($db_host,$db_name,$db_login,$db_pass); $Auth = new Auth($Db); Насколько это кривожопый подход (то что передаю указатель на объект БД) и как сделать лучше не уходя в высшие материи
ООП не равно простому использованию классов. Например класс DB - отражает сущность предметной области, а вот сущность Auth - вряд ли. По поводу класса DB - велосипед. Используйте PDO и Mysqli, а внутри них - prepared statements. По поводу кода в принципе - вы понимаете, что у вас инъекция?
Auth будет отвечать за авторизацию (проверка, установка кук и т.д), если я правельно понял что имелось ввиду. У меня вообщим весь функционал уже написан был, но там процедурный подход. Вот хочу попрактиковаться в ООП, но наверное я еще не понял саму концепцию ООП Классов у меня будет около 10. Класс БД, авторизации, установки, самого прохождение теста, редактирование настроек, редактирование предметов и т.д . Вот это для меня пока как раз высшая материя)) Да. Код привел чисто для примера
Делал возможность прикреплять файлы для скрипта phpmail, но все прикреплённые файлы занимали размер 0kb после отправки - можно сказать файл скачался и не открывается, как ни крутил код, нормально файлы не отправлялись Помогите пожалуйста кодом для вложений файлов в письмо
Вопросец: Заливаю в админку картинку, меняю ContentType с image/jpeg на text/plain и вижу ошибку: Fatal error: Call to undefined function textcreatefromplain() in /home/www/site.com/tools.php on line 189 Похоже что имя функции создается из ContentType? Можно ли как-то внедрить свой код туда? Получается ведь $1createfrom$2();?
PHP: $file = "1.mp3"; header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"$file\""); readfile ($file);