За последние 24 часа нас посетили 19493 программиста и 1647 роботов. Сейчас ищут 1154 программиста ...

curl и его инсталяция!

Тема в разделе "PHP для новичков", создана пользователем Danilevsky, 16 мар 2006.

  1. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    Здравствуйте уважемые!

    Возникла проблема при инсталяции 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"

    Подскажите плиз, как быть?
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky
    1. перезапускал ли апач.
    2. копировать надо не ВСЕ, а нужное и в нужные каталоги.
    3. добавить к $PATH% нужные директории.
     
  3. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    440hz
    1. апач перезапускал
    2. а что это нужно, и какие это нужные директории (кроме 1 моего сообщения)?
    3. какие это нужные директории, которые нужно добавить к $PATH%, и как это сделать?
    4. спасибо.
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky

    1. в файле iNSTALL каталога php все расписано

    Код (Text):
    1.    To make php4ts.dll / php5ts.dll available you have three options: copy
    2.    the file to the Windows system directory, copy the file to the web
    3.    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):
    1.  
    2. %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
     
  5. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    440hz, все как положено сделал, все равно не пашет!
    Вот прочел в статье:
    Так вот, этого msvcrt.dll у меня в каталое пшп не было, я его нашел уже в system23...
    А может у меня каие-то версии dll нетакие какие-то... :(, я об этом подумываю потому что, библиотека mbstring была мною успешно подключена и работает.
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky
    если ставить из НОРМАЛЬНЫХ дистрибутивов скачанных с официальных сайов, то все будет хорошо ...

    ты пойди Денвер себе ствил ...
     
  7. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    440hz, херь это все денвер, не ставил я его, и дистрибутивы скачаны с официального сайта - аномалия какая-то.
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky
    я на вызодных выложу доку как ставить связку apache+php+mysql с картинками.
     
  9. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    440hz, было бы очень хорошо, щас буду ставить php 5.1.2, если че-то не получиться, обязательно обращусь к статье. спасибо
     
  10. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    Все, установил php 5.1.2 curl работает.
    Научился делать пост запросы, но есть одна вещь, не могу осуществить:
    Делаю пост зарос на страницу "http://www.example.com", со скрипта "http://www.script.com/index.php". А как сделать так что-бы отправлялся пост запрос и пользователя редиректило на этот урл.?
     
  11. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky
    curl возвращает ответ. вот этот ответ просто выдай print(); и все. пользователь ничего и не заметит.
     
  12. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    440hz, да, это вариант, ну а все таки возможно сделать редирект?
     
  13. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky
    header('Location: $url');
     
  14. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    это и коню понятно :)
    вот пример (взятый из статьи в инете):
    PHP:
    1. $url = "http://www.primer.com/index.php";  
    2. $ch = curl_init();  
    3. curl_setopt($ch, CURLOPT_URL,$url);  
    4. curl_setopt($ch, CURLOPT_FAILONERROR, 1);  
    5. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  
    6. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  
    7. curl_setopt($ch, CURLOPT_TIMEOUT, 3);  
    8. curl_setopt($ch, CURLOPT_POST, 1);  
    9. curl_setopt($ch, CURLOPT_POSTFIELDS, "language=ru");  
    10. $result = curl_exec($ch);
    11. curl_close($ch);  
    12. echo $result;
    13.  
    Вот этот вот код находиться в файле "http://www.file.com".
    Результатом кода является страница "http://www.primer.com/index.php" с указанным выше POST запросом. но в браузере все таки "http://www.file.com". Как добиться того что бы редирект был вместе с этим POST запросом?

    PHP:
    1. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    здравый смысл подсказывает что эта строка должна делать редирект, но что не делает...
     
  15. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky
    сама идея порочна. может мне кто-нить объяснить нахрена такой изврат нужен?

    что б в строке броузера был нужный адрес - нужно что б броузер по этому адресу ушел. а редиректом POST не подделать.
     
  16. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    440hz, попытаюсь обьяснить, зачем это нужно:
    Хочу сделать авторизацию пользователей на сайте. Использую сесии. Как написано в документации по php, сессия передается автоматически машиной php через пост заросы, гет запросы, к ссылкам пресоединяеться какая-то хрень, куками. Но почему-то у хостера это не работает - сессия разрывается при переходах с страницы на страницу. Выход из положения я нашел передачей PHPSESSID во всех ссылках вручную типа "link.php?.$sid" Все работет отлично, но этот вариант мне не нравиться, потому как PHPSESSID всегда виден в строке браузера. Вот поэтому я решил обратится к curl что-бы передавать этот PHPSESSID через пост запросы. Возможно идея бредовая...
    Что посоветуете?
     
  17. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky
    мдя ... настроить сессии мы не хотим, а делаем все через жопу ...

    давай-ка лучше сесии настроим? покажи-ка мне как ты их стартуешь и спользуешь?
     
  18. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    440hz, ну вот так вот:
    PHP:
    1. ini_set("url_rewriter.tags","");
    2. $_SESSION['login'] = $login;
    3. $_SESSION['rights'] = $rights;
    4.  
     
  19. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky
    PHP:
    1. <?
    2.  
    3. if(empty($_SESSION['pages']))
    4.     $_SESSION['pages'] = 1;
    5. else
    6.     $_SESSION['pages'] += 1;
    7.  
    8. print('<a href="./">ты был тут ['.$_SESSION['pages'].'] раз</a>');
    9.  
    10. ?>
    попробуй у себя вот такое:
    http://440hz.expi-web.ru/ses/

    результаты сюда.
     
  20. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Danilevsky
    так передавай id сессии в куках
     
  21. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    simpson
    php и так об этом позаботиться ...
     
  22. Danilevsky

    Danilevsky Активный пользователь

    С нами с:
    12 фев 2006
    Сообщения:
    286
    Симпатии:
    0
    Адрес:
    Киев
    440hz, ну это работает, но на локальной машине, у меня оно работало всегда, но у хостера бывало что сесия обрывалась, не понятно из-за каких причин, тогда я нашел статью там было написано что такое бывает, и что-бы перестраховаться нужно самому вручную добавлять везде номер сесии.
    simpson, а вот на счет куков, то проблема в том что не у всех они включены, и где-то я слышал что в 7 эксплорере они поумолчанию выключены...
     
  23. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Danilevsky
    ну я руками ссылки формирую и если куки выключены, то подсовываю ручками SID в ссылку, но можно и PHP об этом попросить
     
  24. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    440hz
    угу, я знаю.
    но ведь может же быть и так в php.ini:
    session.use_cookies = 0
     
  25. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    simpson
    может быть все, что угодно, а проверить кто мешает-то? или ini_set() юзать?