авторизация curl (проблема с сертификатом)

Тема в разделе "Как сделать...", создана пользователем sarkis, 7 сен 2014.

  1. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    249
    Симпатии:
    36
    всем привет ...Не знаю еще рабочий ли код, но при загрузке страницы выдает ошибку
    сам код
    PHP:
    <?
    $url 'https://www.moviusa.com/login.html';

      
    $ch curl_init();
      
    curl_setopt($chCURLOPT_URL$url);
      
    // откуда пришли на эту страницу
      
    curl_setopt($chCURLOPT_REFERER'https://www.moviusa.com/watchlist.html');
      
    // cURL будет выводить подробные сообщения о всех производимых действиях
    curl_setopt($chCURLOPT_COOKIESESSIONTRUE);
    curl_setopt ($chCURLOPT_COOKIEJAR'coo.txt');
    curl_setopt ($chCURLOPT_COOKIEFILE'coo.txt');
      
    curl_setopt($chCURLOPT_HEADER0);
      
    curl_setopt($chCURLOPT_VERBOSE1);
      
    curl_setopt($chCURLOPT_POST1);
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
      
    curl_setopt($chCURLOPT_POSTFIELDS,"usercd=test&passwd=test&cmd-login=1");
      
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
      
    curl_setopt($chCURLOPT_HEADER1);
      
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
      
    //сохранять полученные COOKIE в файл
      
    $result=curl_exec($ch);
      
    $error curl_error($ch).'('.curl_errno($ch).')';
      echo 
    $error;
      
    curl_close($ch);
      
    $file fopen('index.html','w');
      
    fwrite($file,$result);
      
    fclose($file);

    ?>
    по какой причине данная ошибка вылазит ?

    возможно сертификат , но как обойти?
     
    Последнее редактирование модератором: 9 сен 2014
  2. murlo

    murlo Создатель

    Регистр.:
    8 июн 2006
    Сообщения:
    34
    Симпатии:
    33
    Скорее всего это
    PHP:
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
     
  3. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    249
    Симпатии:
    36
    тупанул ..Сорри ..))
    Теперь вылазит "(0)"
    можете мне объяснить принцип работы : ну если я обновил страницу , т.е по идеи я уже авторизуюсь на стороннем сайте и теперь мне можно туда перейти без авторизации или как?

    мой сайт http://test4.kopeychka.net/
     
    Последнее редактирование модератором: 7 сен 2014
  4. murlo

    murlo Создатель

    Регистр.:
    8 июн 2006
    Сообщения:
    34
    Симпатии:
    33
    Тут можно по разному. Или проверять наличие какой нибуть cooke, говорящей о том что авторизирован, можно проверять содержимое страницы на предмет наличия какой нибуть строки, говорящей о том что авторизтирован или наоборот - нет.
    В общем по ситуации.
     
  5. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    249
    Симпатии:
    36
    сейчас просмотрел файл coo.txt , там
    ..
    Я так понимаю , авторизация не прошла?
     
  6. murlo

    murlo Создатель

    Регистр.:
    8 июн 2006
    Сообщения:
    34
    Симпатии:
    33
    Вы поймите, в cookie может писаться косвенный признак авторизирован или нет, а может и не писаться. Зависит от реализации авторизации скрипта.
    Просматривайте исходный код того что получили.
    Говорю же что по ситуации)) Не торопитесь задавать вопросы)) Пытайтесь думать))
    ------------
    Я сейчас добрый)) Меня сегодня не съел медведь и сижу лопаю жареные грибы с картошкой))
     
    sarkis нравится это.
  7. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    249
    Симпатии:
    36
    вроде уже разобрался ..Все работает ..
    Только вот вопрос снова возник :
    ну авторизовался , ну открылся контент страницы по моему домену ..
    Но как только перехожу на оригинальный сайт -авторизации нет..Тут все понятно - т.к у меня куки и сессия сохраняются в файлик ...
    Но как же мне передать данные в браузер ,чтобы они подходили для входа на оригинальном сайте ??
     
  8. Festem

    Festem Постоялец

    Регистр.:
    4 сен 2014
    Сообщения:
    97
    Симпатии:
    26
    куки не передают данные между доменами. Если данные сохранились в файле, то на оригинальном сайте вам надо считать их оттуда и создать еще один кук или сессию
     
  9. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    249
    Симпатии:
    36
    спасибо ..Это я понял ..Просто оригинальный сайт - не мой ..Как-то можно передать авторизацию ?

    вообще на другом сайте я не использовал CURL , а выдрал из него форму авторизации и поставил себе ..И при клике сабмит меня кидало на исходный сайт и автоматом авторизовало ...ВОт код :
    Код:
    <form action="http://auction.matumi-car.com/auction.cgi" method="post">
                        <input type="hidden" name="acc" value="act_login">
                        <input type="hidden" name="go" value="2">
                        <input type="hidden" name="md" value="">
        
                        
                         
                        <input type="text" style='display:none;' name="id" value='test' size="15">
                        <input type="password" style='display:none;'value='test' name="pass" size="15">
                        <input type="checkbox"style='display:none;' name="login_check" value="on">
                 
                            <input type="submit" value="enter">
                            <input type="reset" style='display:none;'value="??????">
                   
    </form>


    Но здесь в форме стоит action , что облегчает все ...А вот у второго сайта нету action , и поэтому меня никуда не перекидывает

    Код:
    <form id="frmLogin" method="post">
             
                    <h2></h2>
                    <div class="error" style="color: red; font-weight: bold; text-align: right;"></div>
    
                    <table border="0" cellspacing="0" cellpadding="0">
                        <tbody><tr>
                            <th width="96"></th>
                            <td width="196"><input id="txtId" type="text" name="usercd" value="" maxlength="10" class="alphaNum"></td>
                        </tr>
                        <tr>
                            <th></th>
                            <td><input id="txtPasswd" type="password" name="passwd" value="" maxlength="32"></td>
                        </tr>
                    </tbody></table>
                    <input type="hidden" name="cmd-login" value="1">
                    <div class="login_box">
                        <input type="image" src="images/login_btn.gif" alt="login" class="imgover" name="">
                    </div>
    
                
             
             
                <h2 style="margin-top: 20px; "></h2>
                <p></p>
                <br>
                <br>
                <div style="padding: 10px; margin-bottom: 10px; border: 1px solid #0000cc;">
                 
                    <a id="isrcmove" class="isrcmove" href="https://isrc.moviusa.com/"></a>
                </div>
            </form>


    вот код второй формы авторизации... мне отслеживать id="frmLogin" или input type='image' ?

    нашел обработку id="frmLogin"
    Код:
    function onLoginClick() {
        var d = phpsus_make_params("#frmLogin");
        d["cmd-login"] = 1;
        $.post(
            "/login.html",
            d,
            function (ret) {
                if (ret.status == "SUCCESS") document.location.href = ret.url;
                else {
                    alert(ret.msg);
                    if($("#txtPasswd").val()==''){ $("#txtPasswd").focus(); } else { $("#txtId").focus(); }
                }
            },
            "json"
        );
        return false;
    }


    я так понимаю с ней колдовать нужно ?
     
    Последнее редактирование модератором: 9 сен 2014
  10. Festem

    Festem Постоялец

    Регистр.:
    4 сен 2014
    Сообщения:
    97
    Симпатии:
    26
    Я не вижу действия по отправке формы. Может быть и действие с
    input type='image'