[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Qwert321

    Qwert321 Banned

    Joined:
    25 Jan 2009
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    Спасибо за ответы ребята!!!
     
    #21681 Qwert321, 28 Jun 2013
    Last edited: 28 Jun 2013
  2. BlackIce

    BlackIce Elder - Старейшина

    Joined:
    10 Jan 2013
    Messages:
    100
    Likes Received:
    31
    Reputations:
    27
    1 Императивным в случае, если программа должна выполнять крайне специфическую узкую цель не требующей ветвлений и особой логики. ООП если программа будет выполнять ряд специфических ф-ций. Также связано с особенностями проэктирования.
    2 CSS - каскадные таблицы стилей. Применяется для изменения отображения хтмл тэгов. jQuery - библиотека джаваскрипта. Применяется для создания на странице динамического оформления. Наибольшую ценность представляет возможность динамической подгрузки контента. Связь с ЦСС в том, что обе технологии поддерживаются в вэб разработке. Зачастую дЖейкуери используют для смены свойств селекторов ЦСС и тем самым добиваются эффективной анимации.
    3 Предпочтительнее использовать xHTML хотя бы из-за того, что там присутсвуют каноны правильно выверенного кода. Также в ближайшем будущем планируется переход с ХТМЛ на хХТМЛ.
    4 SELECT name FROM users WHERE biographi <> programmer
    5 Внедрять кроссбраузерные решения
    6 Все зависит от задач, которые поставлены перед программой. Если речь о ПХП и более-менее серьезном проекте, то ООП.
    7 не знаю
    8 не знаю
     
  3. Qwert321

    Qwert321 Banned

    Joined:
    25 Jan 2009
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    а ты не путаешь? Мне наоборот кажется xHTML умирает...
     
  4. mrDebian

    mrDebian Member

    Joined:
    27 Jan 2013
    Messages:
    96
    Likes Received:
    13
    Reputations:
    10
    Что за дебильные вопросы? Кто их составлял?

    6) На каждую задачу свой подход.
    7) И нужна, и не нужна. Для каждой задачи свой подход. Каждый сам решает применять ему систему контроля версий или нет
    8) Самый идиотский вопрос. Возможности языка надо использовать по максимуму. Если что-то не работает, или что-то привело к падению проекта - вырви руки из жопы, и пришей на их законное место.

    PS.
    Ах, да, забыл. На 8 вопрос можно ответить так:
    8) Не использовать подавление вывода(@), так как за это другие разработчики могут оторвать вам руки.
     
    #21684 mrDebian, 28 Jun 2013
    Last edited: 28 Jun 2013
  5. PROPH3T

    PROPH3T New Member

    Joined:
    20 Nov 2007
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    Привет.

    ребята, помогите реализовать скрипт граббер баланса с сайта https://uslugi.beeline.uz/.
    алгоритм таков:

    Заходим на https://uslugi.beeline.uz/vip/loginPage.jsp ,для входа в кабинет нужны номер телефона и пароль, они передаются при авторизации post'ом:

    Code:
    _stateParam=eCareLocale.currentLocale%3Dru_RU__Rus  sian&_forwardName=&_resetBreadCrumbs=&_expandStatus=&userName=[B][COLOR=Red]номер[/COLOR][/B]&password=[B][COLOR=Red]пароль[/COLOR][/B]&x=41&y=11&ecareAction=login
    Далее попадаем в кабинет, где видно сумму и инфу о владельце, но в исходнике ифрейм:

    Code:
    <iframe height=20 marginwidth="0" marginheight="0" frameborder="0" scrolling="no" src="/vip/prepaid/refreshedPrepaidBalance.jsp"></iframe>
    при переходе на который уже видно сумму в исходнике, как:

    HTML:
    <td class="tabred">
    					[B][COLOR=Red]29,13[/COLOR][/B]&nbsp;USD&nbsp;<small class="gray">на&nbsp;22:18</small>
    				</td>
    которую собственно и надо спарсить.
    ------------------------------------------------------------------------------
    Накидал пока вот такой кусок, не знаю, насколько верно:

    PHP:
    <?

    $number '8911748901';
                                        
    // пытаемся авторизироваться на сервере 
    $urlauth "https://uslugi.beeline.uz/vip/loginPage.jsp"

    $ua 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)'
    $post "_stateParam=eCareLocale.currentLocale%3Dru_RU__Russian&_forwardName=&_resetBreadCrumbs=&_expandStatus=&userName=$number&password=pwdpwd&x=41&y=11&ecareAction=login"


    $ch=curl_init(); 
     
    curl_setopt($chCURLOPT_URL$urlauth);    
     
    curl_setopt($chCURLOPT_HEADER1);  
     
    curl_setopt($chCURLOPT_USERAGENT$ua); 
     
    curl_setopt($chCURLOPT_TIMEOUT10); 
     
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
     
    curl_setopt($chCURLOPT_POST1);  
     
    curl_setopt($chCURLOPT_REFERER$urlauth);    
     
    curl_setopt($chCURLOPT_POSTFIELDS$post);

    ?>
     
    #21685 PROPH3T, 30 Jun 2013
    Last edited: 30 Jun 2013
  6. mrDebian

    mrDebian Member

    Joined:
    27 Jan 2013
    Messages:
    96
    Likes Received:
    13
    Reputations:
    10
    Или дуй в раздел Работа, или задавай конкретные вопросы.
     
    1 person likes this.
  7. PROPH3T

    PROPH3T New Member

    Joined:
    20 Nov 2007
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    вообщем задача описана выше, на данный момент есть код чисто для авторизации:

    PHP:
    <?php 

    $number 
    '8911111111'
    $password 'test2test'

    $ch curl_init(); 
    curl_setopt($chCURLOPT_URL'https://uslugi.beeline.uz/loginPage.do'); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt($chCURLOPT_HEADER1); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20100101 Firefox/21.0'); 

    curl_setopt($chCURLOPT_HTTPHEADER, array('DNT:1''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($chCURLOPT_REFERER'https://uslugi.beeline.uz/'); 

    curl_setopt($chCURLOPT_POSTFIELDS'_stateParam=eCareLocale.currentLocale%3Dru_RU__Ru  ssian&_forwardName=&_resetBreadCrumbs=&_expandStatus=&userName='.$number.'&password='.$password.'&x=41&y=11&ecareAction=login'); 
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse); 
    curl_setopt($chCURLOPT_SSL_VERIFYHOSTfalse); 
    echo 
    curl_exec($ch); 
    curl_close($ch); 

    file_put_contents('res.txt'$res); 

    ?>
    как теперь получить куки из ответа, и как лучше это сделать, записать в файл?
    далее необходимо будет с полученными куками перейти по ссылке в системе (будучи авторизованным).
    Пробовал c использованием:

    PHP:
    curl_setopt($chCURLOPT_COOKIEJAR$_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
    но почему-то даже сам файл не создается
     
  8. BlackIce

    BlackIce Elder - Старейшина

    Joined:
    10 Jan 2013
    Messages:
    100
    Likes Received:
    31
    Reputations:
    27
    PHP:
    curl_setopt($chCURLOPT_COOKIEFILE'1.txt');
     
  9. PROPH3T

    PROPH3T New Member

    Joined:
    20 Nov 2007
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    спасибо за ответ.

    пробовал и так:

    PHP:
    <?php 

    $number 
    '8911111111';  
    $password '132'

    $ch curl_init(); 
    curl_setopt($chCURLOPT_URL'https://uslugi.beeline.uz/loginPage.do'); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt($chCURLOPT_HEADER1); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20100101 Firefox/21.0'); 

    curl_setopt($chCURLOPT_HTTPHEADER, array('DNT:1''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($chCURLOPT_REFERER'https://uslugi.beeline.uz/'); 

    curl_setopt($chCURLOPT_POSTFIELDS'_stateParam=eCareLocale.currentLocale%3Dru_RU__Ru  ssian&_forwardName=&_resetBreadCrumbs=&_expandStatus=&userName='.$number.'&password='.$password.'&x=41&y=11&ecareAction=login'); 
    curl_setopt($chCURLOPT_COOKIEJAR$_SERVER['DOCUMENT_ROOT'].'/1.txt');  
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse); 
    curl_setopt($chCURLOPT_SSL_VERIFYHOSTfalse); 


    echo 
    curl_exec($ch); 
    curl_close($ch); 

    //file_put_contents('res.txt', $res); 

    ?>
    и просто с

    PHP:
    curl_setopt($chCURLOPT_COOKIEFILE'1.txt');
    там ли она вообще должна быть расположена, или это не имеет значения?
    снифаю analyzer'ом, пост не передается, куки не получаются, соответственно в файл ничего не записывается (правда он почему-то даже не создается)..
    и как можно вывести страницу, чтобы увидеть наглядно, авторизивался или нет?
     
  10. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    PROPH3T, пробуйте
    PHP:
     <?php 

    $number 
    '8911111111';  
    $password '132'
    $cookie '';

    $ch curl_init(); 
    curl_setopt($chCURLOPT_URL'https://uslugi.beeline.uz/loginPage.do'); 
    curl_setopt($chCURLOPT_COOKIE,$cookie); 
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
    curl_setopt($chCURLOPT_COOKIEJAR"cookie.txt");
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt($chCURLOPT_HEADER1); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20100101 Firefox/21.0'); 

    curl_setopt($chCURLOPT_HTTPHEADER, array('DNT:1''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($chCURLOPT_REFERER'https://uslugi.beeline.uz/'); 

    curl_setopt($chCURLOPT_POSTFIELDS'_stateParam=eCareLocale.currentLocale%3Dru_RU__Ru    ssian&_forwardName=&_resetBreadCrumbs=&_expandStatus=&userName='.$number.'&password='.$password.'&x=41&y=11&ecareAction=login');  
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse); 
    curl_setopt($chCURLOPT_SSL_VERIFYHOSTfalse); 


    echo 
    curl_exec($ch); 
    curl_close($ch); 

    //file_put_contents('res.txt', $res); 

    ?> 
     
    _________________________
  11. PROPH3T

    PROPH3T New Member

    Joined:
    20 Nov 2007
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    VY_CMa, спасибо вам за помощь, но..
    увы, точно так же... файл не создается, авторизации я так понимаю, тоже нет.

    сейчас заметил, каждый раз при авторизации в пост запросе еще генерируются видимо рандомные значения X и Y, вот эти: &x=41&y=11. Может это мешает, т.к пытаюсь с теми, с которыми уже заходил. Просто я уже без вариантов прям...
     
  12. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Попробуй с кукисами отправить, которые назначаются при первом заходе на страницу с логином
     
  13. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    PHP:
    Warningmail() expects at most 5 parameters8 given in
    как устранить такую ошибку? как заставить 8 параметров отправляться ? 5 параметров мало

    PHP:
    mail($mail_to$thm$msg); 
    $mail_from, $mail_name, $mail_cc, $mail_bcc, $mail_reply_to - эти параметры надо тоже как то добавить
     
    #21693 GAiN, 6 Jul 2013
    Last edited: 6 Jul 2013
  14. fox_malder

    fox_malder Active Member

    Joined:
    28 Nov 2008
    Messages:
    162
    Likes Received:
    131
    Reputations:
    73
    народ подскажите как сравнить два массива ( пользуюсь array_diff но выдает почему то последнее значение массива который нужно сравнивать ) формат массивов(оба такого формата ) вот такой Array ( [0] => 234523452.jpg ) Array ( [0] => b23452345.jpg ) Array ( [0] => 23452345.jpg )
    помогите советом пожалуйста
     
  15. Mykola-bas

    Mykola-bas New Member

    Joined:
    24 Apr 2008
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Смотря как сравнить? на схожесть, не схожесть?
    Что должно вьійти в конечном счете?
     
    #21695 Mykola-bas, 6 Jul 2013
    Last edited: 6 Jul 2013
  16. fox_malder

    fox_malder Active Member

    Joined:
    28 Nov 2008
    Messages:
    162
    Likes Received:
    131
    Reputations:
    73
    надо сравнить массивы на схожесть , то есть если два массива одинаковы то ничего не делать с элементами второго массива, а если есть какое то расхождение то удалить элементы второго массива которые не совпадают( элементы второго массива это файлы папки)
     
  17. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    array_diff
     
  18. fox_malder

    fox_malder Active Member

    Joined:
    28 Nov 2008
    Messages:
    162
    Likes Received:
    131
    Reputations:
    73
    mironich так я им и пользуюсь но он мне почему то выдает последнее значение массива , а не сравнивает
     
  19. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Кидай примеры массивов мы не телепаты..
     
  20. fox_malder

    fox_malder Active Member

    Joined:
    28 Nov 2008
    Messages:
    162
    Likes Received:
    131
    Reputations:
    73
    Пример массивов
    первый массив

    PHP:
    Array ( [0] => 1.jpg )
     Array ( [
    0] => 2.jpg )
     Array ( [
    0] => 3.jpg )
     Array ( [
    0] => 4.jpg )
    второй массив
    PHP:
    Array ( [0] => 1.jpg )
     Array ( [
    0] => 2.jpg )
     Array ( [
    0] => 3.jpg )
     Array ( [
    0] => 4.jpg )
     Array ( [
    0] => 5.jpg )
     
Thread Status:
Not open for further replies.