Здравствуйте уважемые! Возникла проблема при инсталяции curl: PHP Version 4.4.2 WinXP файлы "php4ts.dll, ssleay32.dll, php_curl.dll, msvcrt.dll" скопировал во все каталоги path указанные в phpinfo(); В php.ini раскоментировал php_curl.dll А phpinfo(); все равно не видит этого курла, и о том же свидетельствует "Fatal error: Call to undefined function: curl_version() in c:\sites\ukrarab\www\suka.php on line 30" Подскажите плиз, как быть?
Danilevsky 1. перезапускал ли апач. 2. копировать надо не ВСЕ, а нужное и в нужные каталоги. 3. добавить к $PATH% нужные директории.
440hz 1. апач перезапускал 2. а что это нужно, и какие это нужные директории (кроме 1 моего сообщения)? 3. какие это нужные директории, которые нужно добавить к $PATH%, и как это сделать? 4. спасибо.
Danilevsky 1. в файле iNSTALL каталога php все расписано Код (Text): To make php4ts.dll / php5ts.dll available you have three options: copy the file to the Windows system directory, copy the file to the web server's directory, or add your PHP directory, C:\php to the PATH так вот кошернее всего настроить PATH, а не засорять каталоги. Тем паче system32 2. там же расписано что и куда копировать. 3. переменная окружения %PATH% находится в Мой компьютер\Свойства\Дополнителдьно\переменные среды 4. там надо прописать пути до php и php\ext и php\dev мой PATH Код (Text): %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\php\;c:\php\ext\;c:\php\dev\;C:\Program Files\cvsnt;C:\Program Files\Borland\CaliberRM SDK 2005 R2\lib;C:\Program Files\Borland\StarTeam SDK 2005 R2\Lib;C:\Program Files\Borland\StarTeam SDK 2005 R2\Bin;C:\Program Files\MySQL\MySQL Server 4.1\bin
440hz, все как положено сделал, все равно не пашет! Вот прочел в статье: Так вот, этого msvcrt.dll у меня в каталое пшп не было, я его нашел уже в system23... А может у меня каие-то версии dll нетакие какие-то... , я об этом подумываю потому что, библиотека mbstring была мною успешно подключена и работает.
Danilevsky если ставить из НОРМАЛЬНЫХ дистрибутивов скачанных с официальных сайов, то все будет хорошо ... ты пойди Денвер себе ствил ...
440hz, херь это все денвер, не ставил я его, и дистрибутивы скачаны с официального сайта - аномалия какая-то.
440hz, было бы очень хорошо, щас буду ставить php 5.1.2, если че-то не получиться, обязательно обращусь к статье. спасибо
Все, установил php 5.1.2 curl работает. Научился делать пост запросы, но есть одна вещь, не могу осуществить: Делаю пост зарос на страницу "http://www.example.com", со скрипта "http://www.script.com/index.php". А как сделать так что-бы отправлялся пост запрос и пользователя редиректило на этот урл.?
Danilevsky curl возвращает ответ. вот этот ответ просто выдай print(); и все. пользователь ничего и не заметит.
это и коню понятно вот пример (взятый из статьи в инете): PHP: $url = "http://www.primer.com/index.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "language=ru"); $result = curl_exec($ch); curl_close($ch); echo $result; Вот этот вот код находиться в файле "http://www.file.com". Результатом кода является страница "http://www.primer.com/index.php" с указанным выше POST запросом. но в браузере все таки "http://www.file.com". Как добиться того что бы редирект был вместе с этим POST запросом? PHP: curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); здравый смысл подсказывает что эта строка должна делать редирект, но что не делает...
Danilevsky сама идея порочна. может мне кто-нить объяснить нахрена такой изврат нужен? что б в строке броузера был нужный адрес - нужно что б броузер по этому адресу ушел. а редиректом POST не подделать.
440hz, попытаюсь обьяснить, зачем это нужно: Хочу сделать авторизацию пользователей на сайте. Использую сесии. Как написано в документации по php, сессия передается автоматически машиной php через пост заросы, гет запросы, к ссылкам пресоединяеться какая-то хрень, куками. Но почему-то у хостера это не работает - сессия разрывается при переходах с страницы на страницу. Выход из положения я нашел передачей PHPSESSID во всех ссылках вручную типа "link.php?.$sid" Все работет отлично, но этот вариант мне не нравиться, потому как PHPSESSID всегда виден в строке браузера. Вот поэтому я решил обратится к curl что-бы передавать этот PHPSESSID через пост запросы. Возможно идея бредовая... Что посоветуете?
Danilevsky мдя ... настроить сессии мы не хотим, а делаем все через жопу ... давай-ка лучше сесии настроим? покажи-ка мне как ты их стартуешь и спользуешь?
440hz, ну вот так вот: PHP: ini_set("url_rewriter.tags",""); session_start(); $_SESSION['login'] = $login; $_SESSION['rights'] = $rights;
Danilevsky PHP: <? session_start(); if(empty($_SESSION['pages'])) $_SESSION['pages'] = 1; else $_SESSION['pages'] += 1; print('<a href="./">ты был тут ['.$_SESSION['pages'].'] раз</a>'); ?> попробуй у себя вот такое: http://440hz.expi-web.ru/ses/ результаты сюда.
440hz, ну это работает, но на локальной машине, у меня оно работало всегда, но у хостера бывало что сесия обрывалась, не понятно из-за каких причин, тогда я нашел статью там было написано что такое бывает, и что-бы перестраховаться нужно самому вручную добавлять везде номер сесии. simpson, а вот на счет куков, то проблема в том что не у всех они включены, и где-то я слышал что в 7 эксплорере они поумолчанию выключены...
Danilevsky ну я руками ссылки формирую и если куки выключены, то подсовываю ручками SID в ссылку, но можно и PHP об этом попросить