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

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

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

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    scandir + array_rand
     
  2. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    PHP:
    <?php

    $dir
    ="test/"//папка

    $dir=scandir($dir);
    foreach(
    $dir as $file){
    if(
    $file != "." && $file != ".."){
    $imgs[]=$file;
    }
    }
    $rand=rand(0count($imgs)-1);

    echo 
    "<img src=test/".$imgs[$rand].">";

    ?>
     
  3. Attese

    Attese New Member

    Joined:
    19 Dec 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Вопрос по сессиям, нарыл скрипт, но с устаревшей session_register("login"), заменил на $_SESSION['login']=$login, - выпали нотисы Undefined variable.
    Подскажите, та функция session_register автоматически присваивала значения по умолчанию или нет? А то с новым $_SESSION прописываю ручками.
     
  4. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Каким образом можно заменить стандартные функции php в скрипте? Желательно как-то на лету.
     
  5. Чакэ

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

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    смотрите var_dump($login) и удостоверьтесь в том что есть session_start()

    а? велосипедить?
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI нужен подключенный модуль APD и такая функция: http://ru.php.net/manual/en/function.override-function.php Либо, если интересующая функция определена в каком то модуле - то выгрузить этот модуль
     
    _________________________
    2 people like this.
  7. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    можешь попробовать воспользоваться таким решением для того чтобы вернуть скрипт в работоспособное состояние с минимальным вмешательством:
    http://www.php.net/manual/ru/function.session-register.php#96241
    объявить заново функции:
    PHP:
    function session_register(){         
    $args func_get_args();         
    foreach (
    $args as $key)
        
    $_SESSION[$key]=$GLOBALS[$key]; 
    }     
    function 
    session_is_registered($key){return isset($_SESSION[$key]);     }     function session_unregister($key){         unset($_SESSION[$key]);     }  
     
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    phpdreamer этот хак прокатит только в PHP6+. А вот в 4 и 5 ветке - ваш код (а не код из ссылки) свалит интерпретатор с фатальной ошибкой. И получается, что проблема версии PHP5.3 - не решается таким образом: функции session_register будут все так же вызывать варнинг Deprecated
     
    _________________________
  9. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    Подскажите правильно ли реализована работка с куками в личном кабинете юзера

    если авторизация прошла успешно ставим куки
    Code:
    $key = 'key';
    setcookie('user', $email, time()+(60*60*24*30), '/');
    setcookie('auth_hash', md5($email.$key), time()+(60*60*24*30), '/');
    в личном кабинете проводим проверку
    Code:
    $key = 'key';
    if($_COOKIE['auth_hash'] == md5($_COOKIE['user'].$key)) {
    // good
    } else {
    // redirect to login page
    }
    все работает, просто интересуюсь правильно ли сделал
     
  10. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Добрый день.
    Возникла проблема. Нужно с гугл.докс вытащить картинки из пдф документов.
    Написал такой скрипт:
    PHP:
    <?php
    if( $ch curl_init() ){
     
    $url="http://docs.google.com/viewer?url=http%3A%2F%2Fwww.education.gov.yk.ca%2Fpdf%2Fpdf-test.pdf";
            
    // Пишем url страницы
            
    curl_setopt($ch,CURLOPT_URL$url);
            
    // Скачанные данные не выводить поток
            
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
            
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
     
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt"); //Из какого файла читать
    curl_setopt($chCURLOPT_COOKIEJAR"cookie.txt");
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, wie z. B. Gecko) Chrome/13.0.782.215 Safari/525.13.');
            
    // Загружаем страницу
            
    $out curl_exec($ch);
     
            
    // Выводим страницу на экран
            //echo $out;
     
            // Закрываем соединение
            
    curl_close($ch);
            
    preg_match_all("/docId\:'(.*?)',numPages\:(\d*?),/si"$out$regs);
            
    print_r($regs);
        }
    $page=$url."&docid=".$regs[1][0]."&a=bi&pagenumber=".$regs[2][0];
    echo 
    $page;
            
    // Пишем url страницы
            
    $ch curl_init();
            
    curl_setopt($ch,CURLOPT_URL$page);
            
    // Скачанные данные не выводить поток
            
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
            
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt"); //Из какого файла читать
    curl_setopt($chCURLOPT_COOKIEJAR"cookie.txt");
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, wie z. B. Gecko) Chrome/13.0.782.215 Safari/525.13.');
     
            
    // Загружаем страницу
            
    $out curl_exec($ch);
     
            
    // Выводим страницу на экран
            
    echo $out;
     
            
    // Закрываем соединение
            
    curl_close($ch);
    ?>
    Но он выдаёт 400 Bad request на картинки. Я тестирую на локалхосте и если я ещё не заходил через браузер в этот файл на гугле, то отдаётся 400 ошибка с моего айпи. Но если я один раз зашёл на этот файл, гугл запоминает мой айпи и скрипт уже работает, но вот проблема, я не могу определить куда нужно зайти там скриптом, чтобы гугл записал мой айпи.
     
    #19790 programming, 7 Jan 2012
    Last edited: 7 Jan 2012
  11. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Проблема как я понимаю в куках, которые курл сам не ставит с гугла. Но как их поставить в ручную? Видимо это гдето в js, но не могу найти.
     
  12. RexelNet

    RexelNet Member

    Joined:
    21 Oct 2010
    Messages:
    22
    Likes Received:
    8
    Reputations:
    -5
    Так как в пхп не сильно волоку, непойму в чем проблема.
    Скрипт подгружает файлик со ссылками и чекает там что находится между тегом <strong></strong> , если есть чето , то заносит в гуды, если нету то в эрроры.Когда проверяю по 1му домену всё нормально отображает, когда пытаюсь массово делать, то проверяет самый последний домен почемуто,где я согрешил?:confused: Сам скрипт:
    PHP:
    <?
    error_reporting(0);
    @
    set_time_limit(0);
    @
    ini_set("max_execution_time","0");
    @
    ignore_user_abort(true);
    unlink('ok.txt');
    unlink('error.txt');
    $useragent "FireFox";
    function 
    get($url,$useragent){ 
    $ch curl_init(); 
    curl_setopt($chCURLOPT_HTTPPROXYTUNNEL1); 
    curl_setopt($chCURLOPT_URL$url); 
    curl_setopt($chCURLOPT_HEADERtrue); 
    curl_setopt($chCURLOPT_NOBODYfalse); 
    curl_setopt($chCURLOPT_RETURNTRANSFERTRUE); 
    curl_setopt($chCURLOPT_USERAGENT$useragent); 
    curl_setopt($chCURLOPT_TIMEOUT,10); 
    $result curl_exec($ch); 
    curl_close($ch); 
    return 
    $result
    }
    function 
    ok($host){
    $h fopen("ok.txt","a"); 
    $add_text $host;
    if(
    fwrite($h,$add_text,99999999999)) 
    echo 
    $host." - ok\n";
    fclose($h);
    }
    function 
    er($host){
    $h fopen("error.txt","a"); 
    $add_text $host;
    if(
    fwrite($h,$add_text,99999999999)) 
    echo 
    $host." - error\n";
    fclose($h);
    }

    function 
    shj($code){

    $pos strpos($code'strong>');
    $code substr($code$pos);
    $pos strpos($code'</strong>');
    $code substr($code0$pos);
    $code=substr($code53);
    return 
    $code;
    }

    function 
    check($host)
    {
    $ev shj(get('http://'.$host.'/index.php',$useragent));
    if(
    strlen($ev))
    {
     
    ok($host); 
    }
    elseif(
    strlen(!$ev)) {
    er($host);
    }

    }
    $lines file("links.txt");
    foreach(
    $lines as $single_line)
    check($single_line);

    ?>
     
  13. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    есть список урлов,в котором многие повторяются. как оставить только один урл из повторяющихся,если одинаковыми считать все урлы с одинаковыми хостами
     
  14. Чакэ

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

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    $lines = file("links.txt");

    вторым параметром передавай FILE_IGNORE_NEW_LINES ибо без него у тебя каждая строка оканчивается переносом, что есть невалидная строка для этого чуда.
     
  15. Чакэ

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

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    foreach + parse_url + if else

    ну ты понел..
     
  16. volgovend

    volgovend New Member

    Joined:
    11 Nov 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    подскажите, как сделать:

    нужна форма ввода данных и кнопка "Подписаться",
    после нажатия кнопки введенная строка записывается в 1.txt, который лежит рядом на хостинге

    извиняюсь за глупый вопрос, с пхп вообще не пересекаюсь, но вот неожиданно пришлось
     
  17. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    PHP:
    $fp=fopen('1.txt','a');
    fwrite($fp,$_POST['form_name']."\r\n");
    fclose($fp);
     
  18. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    volgovend, <form>, file_put_contents
     
  19. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    Есть массивы такого вида
    Code:
    Array
    (
        [0] => http://www.bing.com/search?q=site%3A.AZ+index.php%3Fid%3D%0D%0A&go=&first=1<br>
    
    )
    Array
    (
        [0] => http://www.bing.com/search?q=site%3A.AZ+index.php%3Fid%3D%0D%0A&go=&first=11<br>
    )
    Array
    (
        [0] => http://www.bing.com/search?q=site%3A.AZ+index.php%3Fid%3D%0D%0A&go=&first=21<br>
    )
    Array
    (
        [1] => http://www.bing.com/search?q=site%3A.AZ+photo.php%3Fid%3D&go=&first=1<br>
    )
    Array
    (
        [1] => http://www.bing.com/search?q=site%3A.AZ+photo.php%3Fid%3D&go=&first=11<br>
    )
    Array
    (
        [1] => http://www.bing.com/search?q=site%3A.AZ+photo.php%3Fid%3D&go=&first=21<br>
    
    )
    
    
    как их привести к массиву вида $arr=array(1=>'ssilka1',2=>'ssilka2');
     
  20. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Compton http://php.net/array_merge или http://ru.php.net/manual/en/language.operators.array.php Либо циклом

    Откуда получились массивы, и далеко не очевидно, что вы хотите получить в итоге
     
    _________________________
Thread Status:
Not open for further replies.