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

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

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

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    С чем возникли трудности?
    PHP:
    <? file_put_contents(__FILE__,'<? phpinfo(); ?>'); ?>
    return
    PHP:
    ini_set'default_charset''windows-1251' );
    Желательно в начале скрипта, хотя, наверное, значение не имеет.
     
    #19201 AnGeI, 3 Sep 2011
    Last edited: 3 Sep 2011
  2. foma9999

    foma9999 New Member

    Joined:
    5 Jan 2010
    Messages:
    83
    Likes Received:
    2
    Reputations:
    -5
    Проблема: Отправляю сообщение в вк скриптом. Латинские символы отправляются как надо, а русские высвечиваются в виде "?4??4??4??4??4??4??4??4??4??4??4??5??5??4??4??4??4??4??1?", проснифил скрипт, от отправляет как надо, такую кодировку устанавливает контакт.
    В чем может быть проблема?
    Да, отправляю на стену группы
     
  3. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    utf8encode
     
  4. foma9999

    foma9999 New Member

    Joined:
    5 Jan 2010
    Messages:
    83
    Likes Received:
    2
    Reputations:
    -5
    Del.
     
    #19204 foma9999, 4 Sep 2011
    Last edited: 4 Sep 2011
  5. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Ищу класс, который анализирует html-source и создает многоуровневый массив сложенности тегов.
     
  6. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    DOM, SimpleXML.
     
    1 person likes this.
  7. SergioBlog

    SergioBlog New Member

    Joined:
    21 Jan 2011
    Messages:
    10
    Likes Received:
    2
    Reputations:
    0
    Есть кусок кода, с помощью которого шифруются и записываются в бд данные
    PHP:
    function getCCDetails$userid )
    {
        global 
    $cc_encryption_hash;
        global 
    $_LANG;
        
    $cchash md5$cc_encryption_hash.$userid );
        
    $result select_query"tblclients""cardtype,cardlastfour,AES_DECRYPT(cardnum,'{$cchash}') as cardnum,AES_DECRYPT(expdate,'{$cchash}') as expdate,AES_DECRYPT(issuenumber,'{$cchash}') as issuenumber,AES_DECRYPT(startdate,'{$cchash}') as startdate", array( "id" => $userid ) );
        
    $data mysql_fetch_array$result );
        
    $carddata = array( );
        
    $carddata['cardtype'] = $data['cardtype'];
        
    $carddata['cardlastfour'] = $data['cardlastfour'];
        if ( !
    $data['cardlastfour'] )
        {
            
    $carddata['cardnum'] = $_LANG['nocarddetails'];
        }
        else
        {
            
    $carddata['cardnum'] = "************".$data['cardlastfour'];
        }
        
    $carddata['fullcardnum'] = $data['cardnum'];
        if ( 
    $data['expdate'] )
        {
            
    $carddata['expdate'] = substr$data['expdate'], 0)."/".substr$data['expdate'], 2);
        }
        if ( 
    $data['startdate'] )
        {
            
    $carddata['startdate'] = substr$data['startdate'], 0)."/".substr$data['startdate'], 2);
        }
        
    $carddata['issuenumber'] = $data['issuenumber'];
        return 
    $carddata;
    }

    function 
    getCCVariables$invoiceid )
    {
        global 
    $CONFIG;
        global 
    $cc_encryption_hash;
        global 
    $clientsdetails;
        if ( !
    function_exists"paymentMethodsSelection" ) )
        {
            require_once( 
    dirname__FILE__ )."/gatewayfunctions.php" );
        }
        
    $result select_query"tblinvoices""userid,total,paymentmethod", array( "id" => $invoiceid ) );
        
    $data mysql_fetch_array$result );
        
    $userid $data['userid'];
        
    $total $data['total'];
        
    $paymentmethod $data['paymentmethod'];
        
    $result select_query"tblaccounts""SUM(amountin)-SUM(amountout)", array( "invoiceid" => $invoiceid ) );
        
    $data mysql_fetch_array$result );
        
    $amountpaid $data[0];
        
    $balance $total $amountpaid;
        if ( 
    $balance )
        {
            
    $balance 0;
        }
        
    $cchash md5$cc_encryption_hash.$userid );
        
    $result select_query"tblclients""cardtype,cardlastfour,AES_DECRYPT(cardnum,'{$cchash}') as cardnum,AES_DECRYPT(expdate,'{$cchash}') as expdate,AES_DECRYPT(issuenumber,'{$cchash}') as issuenumber,AES_DECRYPT(startdate,'{$cchash}') as startdate,gatewayid", array( "id" => $userid ) );
        
    $data mysql_fetch_array$result );
        
    $cardtype $data['cardtype'];
        
    $cardnum $data['cardnum'];
        
    $cardexp $data['expdate'];
        
    $startdate $data['startdate'];
        
    $issuenumber $data['issuenumber'];
        
    $gatewayid $data['gatewayid'];
        
    $clientsdetails getClientsDetails$userid"billing" );
        
    $params getGatewayVariables$paymentmethod$invoiceid$balance );
        
    $params['cardtype'] = $cardtype;
        
    $params['cardnum'] = $cardnum;
        
    $params['cardexp'] = $cardexp;
        
    $params['cardstart'] = $startdate;
        
    $params['cardissuenum'] = $issuenumber;
        
    $params['disableautocc'] = $clientsdetails['disableautocc'];
        
    $params['gatewayid'] = $gatewayid;
        return 
    $params;
    }
    Можно расшифровать данные имея $cc_encryption_hash ?
     
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    SergioBlog да, можно, ваш код, кстати говоря, как раз расшифровывает данные, а не зашифровывает
     
    _________________________
    #19208 Gifts, 5 Sep 2011
    Last edited: 5 Sep 2011
  9. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    Упражняюсь над проксями по курлу... написал простой скрипт, но почему то страницу не грузит, соответственно ошибка в проксях где то, так как убирал опции прокси то страницу грузило нормально с моим айпи. Прокся на момент написания поста живая.
    PHP:
    $ch=curl_init();
    $user_agent 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) ' .
                
    'Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)';
    curl_setopt($chCURLOPT_URL"http://2ip.ru");
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,  CURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_HTTPPROXYTUNNEL1);
    curl_setopt($chCURLOPT_PROXY'218.25.169.118:8909');
    curl_setopt($chCURLOPT_PROXYUSERPWDnull);
    curl_setopt($chCURLOPT_CONNECTTIMEOUT0);
    curl_setopt($chCURLOPT_USERAGENT$user_agent);
    $result curl_exec($ch); 
    curl_close($ch);
    echo 
    iconv("UTF-8""WINDOWS-1251"$result);
    Может ошибка в curl_setopt($ch, CURLOPT_PROXYUSERPWD, null) - в мануале указан параметр [username]:[password], но если прокся обычная без поролей и т.д. то поставил null. Вообщем я хз, подскажите...
     
  10. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    PHP:
      $ch=curl_init('http://2ip.ru'); 
    curl_setopt($chCURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,  CURLOPT_FOLLOWLOCATION1); 
    curl_setopt($chCURLOPT_PROXY'218.25.169.118:8909'); 
    curl_setopt($chCURLOPT_USERAGENT'mozilla');
    $result curl_exec($ch);
    curl_close($ch); 
    echo 
    iconv("UTF-8""WINDOWS-1251"$result);
    при CURLOPT_HTTPPROXYTUNNEL curl_error указывал на Received HTTP code 400 from proxy after CONNECT
     
    #19210 Чакэ, 8 Sep 2011
    Last edited: 8 Sep 2011
  11. Nikitosavich

    Nikitosavich New Member

    Joined:
    14 Mar 2011
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Как исправить ошибки :confused: :
    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\site.ru\www\auth\index.php:44) in Z:\home\site.ru\www\leftmenu.php on line 33

    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\site.ru\www\auth\index.php:44) in Z:\home\site.ru\www\leftmenu.php on line 34
    Весь яндекс облазил и ничего.
    Вот файл Z:\home\site.ru\www\auth\index.php:
    PHP:
    <?php
    function generateCode($length=6) {
        
    $chars "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
        
    $code "";
        
    $clen strlen($chars) - 1;  
        while (
    strlen($code) < $length) {
                
    $code .= $chars[mt_rand(0,$clen)];  
        }
        return 
    $code;
    }
    mysql_connect("localhost""root""");
    mysql_select_db("pleasehelpme");

    if(isset(
    $_POST['submit']))
    {
        
    $query mysql_query("SELECT user_id, user_password FROM users WHERE user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1");
        
    $data mysql_fetch_assoc($query);
        if(
    $data['user_password'] === md5(md5($_POST['password'])))
        {
            
    $hash md5(generateCode(10));
                
            if(!@
    $_POST['not_attach_ip'])
            {
                
    $insip ", user_ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."')";
            }
            
    mysql_query("UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'");
            
    setcookie("id"$data['user_id'], time()+60*60*24*30);
            
    setcookie("hash"$hashtime()+60*60*24*30);
            
    header("Location: ../user.php"); exit();
        }
        else
        {
            print 
    "Вы ввели неправильный логин/пароль";
        }
    }
    include(
    '../global_setting.php');
    ?>
    <html>
    <head>
    <?php
    include('../header.php')
    ?>
    </head>
    <body>
    <div class="leftmenu">
    <?php
    include('.'.$menu_left);
    ?>
    </div>
    <div id="content">
    <form method="POST">
    <table>
     <tr>
      <td>
       <table>
       <tr>
        <td><font class="nice">Логин:</font></td> <td><input name="login" type="text"></td>
       </tr>
       <tr>
        <td><font class="nice">Пароль:</font></td> <td><input name="password" type="password"></td>
       </tr>
       </table>
      </td>
     </tr>
     <tr>
     <td><font class="nice">Привязывать IP?</font> <input type="checkbox" name="not_attach_ip"></td>
     </tr>
     <tr>
     <td><input name="submit" type="submit" value="Войти"></td>
     </tr>
    </table>
    </form>
    </div>
    </body>
    </html>
    Вот файл Z:\home\site.ru\www\leftmenu.php:
    PHP:
    <?php
    $before_authorization
    ='
      <div id="title">Меню</div>
      <div class="menubg">
       <a href="/">Главная</a><br/>
       <a href="/auth">Авторизация</a><br/>
       <a href="/registration">Регистрация</a>
      </div>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    '
    ;
    $after_authorization='
      <div id="title">Меню</div>
      <div class="menubg">
       <a href="/">Главная</a><br/>
       <a href="/profile">Профиль</a><br/>
       <a href="/exit">Выход</a>
      </div>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    '
    ;
    mysql_connect("localhost""root""");
    mysql_select_db("pleasehelpme");
    if (isset(
    $_COOKIE['id']) and isset($_COOKIE['hash']))
    {
        
    $query mysql_query("SELECT *,INET_NTOA(user_ip) AS user_ip FROM users WHERE user_id = '".intval($_COOKIE['id'])."' LIMIT 1");
        
    $userdata mysql_fetch_assoc($query);
        if((
    $userdata['user_hash'] !== $_COOKIE['hash']) or ($userdata['user_id'] !== $_COOKIE['id'])
     or ((
    $userdata['user_ip'] !== $_SERVER['REMOTE_ADDR'])  and ($userdata['user_ip'] !== "0")))
        {
            
    setcookie("id"""time() - 3600*24*30*12"/");
            
    setcookie("hash"""time() - 3600*24*30*12"/");
            print 
    $before_authorization;
        }
        else
        {
            print 
    $after_authorization;
        }
    }
    else
    {
        print 
    $before_authorization;
    }
    ?>
    Кодировка в файлах: ANSI

    P.S. Denwer :)
     
  12. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Ошибка говорит о том что вывод буфера был начат в файле index.php строка: 44, поэтому не получается модифицировать заголовки (Header) т.е. установить куки. Передвинь участки кода так что бы вывод в браузер был после установки кук.
     
  13. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Подскажите, как из текста, взятого в переменную $contents убрать все метатеги и js ?
     
  14. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    N2kroot http://php.net/manual/ru/function.preg-replace.php
     
  15. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Почему ничего не выдается?
    simplehtmldom.sourceforge.net
    PHP:
    <?php
    // Подключаем  класс парсерса
    require_once('simple_html_dom.php');
    // Задаем URL страницы
    $html file_get_html('http://news.rambler.ru/10978867/');
     
    // Цикл разбора массива
    $e $html->find('<p>'0);
    echo 
    $e->innertext;
    // Печать содержимого массива
    ?>
     
  16. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI не пробовали читать документацию, или хоть примеры? Уберите угловые скобки из $e = $html->find('<p>', 0);
     
    _________________________
    1 person likes this.
  17. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Делал по примеру, наверное, тот кто делал пример тоже не читал документацию :)
    Спасибо, работает.

    Есть другой вопрос, более прикладной:
    Каким образом можно анализировать структуру, например, jpeg файла?
    Если более конкретно: нужно сделать подобное для различных алгоритмов шифрования, но необходимо сохранять структуру.
     
  18. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI
    Работайте с пикселями, а именно с байтами цвета каждого пикселя. Плюс не используйте jpeg для хранения результата.
     
    _________________________
  19. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    И реально как-то на php это реализовать?
    PS: но идея понятна, что именно так там и делалось.
     
    #19219 AnGeI, 11 Sep 2011
    Last edited: 11 Sep 2011
  20. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI http://php.net/imagecolorat
     
    _________________________
    1 person likes this.
Thread Status:
Not open for further replies.