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

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

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

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,148
    Reputations:
    886
    если "nick" - строка, то да.

    htmlspecialchars() - для защита от клиентских атак. использовать надо во время вывода информации.
     
    _________________________
    #21601 Konqi, 15 May 2013
    Last edited: 15 May 2013
  2. Kamik

    Kamik Member

    Joined:
    2 Dec 2008
    Messages:
    122
    Likes Received:
    85
    Reputations:
    8
    nick - текстовое значение, берется для сравнения. А я добавлю htmlspecialchars? Пример выше, я просто не успел отредактировать до твоего ответа
     
  3. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,148
    Reputations:
    886
    имелось ввиду тип переменной $_GET['nick'], и тип поля в базе.
     
    _________________________
  4. Kamik

    Kamik Member

    Joined:
    2 Dec 2008
    Messages:
    122
    Likes Received:
    85
    Reputations:
    8
    тип поля - text
     
  5. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,148
    Reputations:
    886
    значит все ок.
     
    _________________________
    1 person likes this.
  6. Kamik

    Kamik Member

    Joined:
    2 Dec 2008
    Messages:
    122
    Likes Received:
    85
    Reputations:
    8
    Спасибо =)
    Спасибка в репе :D
     
  7. brain

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

    Joined:
    4 Jul 2010
    Messages:
    249
    Likes Received:
    90
    Reputations:
    33
    Писал код, все работало. Но потом начала выскакивать ошибка:
    Parse error: syntax error, unexpected $end in
    На строчку которую ругается там стоит лишь тег </html>
    В чем проблема?!
     
  8. herfleisch

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

    Joined:
    7 Jan 2009
    Messages:
    578
    Likes Received:
    203
    Reputations:
    13
    Код в студию.
     
  9. brain

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

    Joined:
    4 Jul 2010
    Messages:
    249
    Likes Received:
    90
    Reputations:
    33
    Решено. Я просто уже за день запрограммировался.. Забыл поставить скобку закрытия оператора.
     
    #21609 brain, 15 May 2013
    Last edited: 15 May 2013
  10. look2009

    look2009 Member

    Joined:
    3 Jun 2009
    Messages:
    75
    Likes Received:
    59
    Reputations:
    4
    PHP:
    <?php $ch curl_init (); 
    curl_setopt ($ch CURLOPT_URL "http://rutracker.org/forum/login.php"); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt ($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0");  
    $headers = array (    
     
    '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_HTTPHEADER,$headers);
    curl_setopt($chCURLOPT_REFERER"http://rutracker.org/forum/index.php"); 
    curl_setopt($chCURLOPT_COOKIEJAR"my_cookies.txt");   
    curl_setopt($chCURLOPT_COOKIEFILE"my_cookies.txt"); 
    curl_setopt($chCURLOPT_POSTFIELDS"login_username=login&login_password=pass&login=%C2%F5%EE%E4"); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1);  
    $result curl_exec($ch);  
    print(
    $result); ?>
    В чём может быть проблема. Вывод просто ужасен.
     
    #21610 look2009, 17 May 2013
    Last edited: 17 May 2013
  11. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    800
    Likes Received:
    145
    Reputations:
    73
    Так надо на http://login.rutracker.org/forum/login.php
     
  12. look2009

    look2009 Member

    Joined:
    3 Jun 2009
    Messages:
    75
    Likes Received:
    59
    Reputations:
    4
    PHP:
    <?php 
    $ch 
    curl_init (); 
    curl_setopt ($ch CURLOPT_URL "http://login.rutracker.org/forum/login.php"); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt ($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0"); 
    $headers = array ( 
    '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_HTTPHEADER,$headers); 
    curl_setopt($chCURLOPT_REFERER"http://login.rutracker.org/forum/login.php"); 
    curl_setopt($chCURLOPT_COOKIEJAR"my_cookies.txt"); 
    curl_setopt($chCURLOPT_COOKIEFILE"my_cookies.txt"); 
    curl_setopt($chCURLOPT_POSTFIELDS"login_username=login&login_password=password&login=%C2%F5%EE%E4"); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    $inter curl_exec($ch); 
    for(
    $i=0;$i<=100;$i=$i+50

    $url "http://rutracker.org/forum/viewforum.php?f=2149&start=".$i
    curl_setopt ($ch CURLOPT_URL $url.$i); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt($chCURLOPT_HTTPHEADER,$headers); 
    curl_setopt($chCURLOPT_REFERER"http://rutracker.org/forum/index.php"); 
    curl_setopt($chCURLOPT_COOKIEFILE"my_cookies.txt"); 
    $set curl_exec($ch); 
    $parsing "/\class\=\"topicAuthor\"\>(.*)\<\/a\>/"
    $res preg_match_all($parsing,$inter,$tmpPREG_PATTERN_ORDER); 
    print 
    mb_convert_encoding($set"windows-1251""auto"); 

    curl_close ($ch); ?>
    Данный скрипт успешно авторизируется, т.е. реальная сессия рвётся, но если выводить результа после авторизации то выходит пустая страница. Всё проходит хорошо, но вот в результате повторного запроса который выполняется несколько циклов с полученной кукой, пишется что-то типа этого
    ▀М╫iwв≥.З≥Z╚Ъц6ДIK╙0Ct5xпmиrKJ|нUt╦ @▒,@!┘
    В чём проблема не могу понять.
     
  13. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    800
    Likes Received:
    145
    Reputations:
    73
    Проблема в Accept-Encoding: gzip, deflate
     
  14. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Переделываю конструктор для тестов для колледжа, решил через ООП подход. Раньше с ним на не работал.

    Есть 2 класса

    PHP:

    class Db
    {
        public 
    $conn;

        function 
    __construct($db_host,$db_name,$db_login,$db_pass)
        {
            
    $conn mysql_connect($db_host$db_login$db_pass) or die("Невозможно установить соединение: "mysql_error());
            
    mysql_select_db($db_name) or die("Ошибка в имени БД");

            
    mysql_query('SET NAMES cp1251');
            
    mysql_query('SET CHARACTER SET cp1251' );
            
    mysql_query('SET COLLATION_CONNECTION="cp1251_general_ci"' );
            
    mysql_select_db($db_name) or die("Ошибка в имени БД");
        }

        public function 
    query($query)
        {
               
    $t 0;
            
    $result mysql_query($query) or die('Невозможно сделать выборку из БД');

            while (
    $row mysql_fetch_array($result,MYSQL_ASSOC))
            {
                foreach(
    $row as $key=>$val)$return[$t][$key] = $val;
                
    $t++;
            }

        return 
    $return;
        }

    }
    и

    PHP:

    class Auth
    {
        public 
    $Db;

        function 
    __construct(&$obj)
        {
            
    $this->Db $obj;
        }

        public function 
    check_post($login,$pass)
        {
              if(
    $this->Db->query('SELECT * FROM config WHERE login="'.$login.'" AND pass="'.md5($pass).'"'))return true;
              else return 
    false;
        }



    }

    Вот так создаю объекты

    PHP:
    $Db = new Db($db_host,$db_name,$db_login,$db_pass);
    $Auth = new Auth($Db);
    Насколько это кривожопый подход (то что передаю указатель на объект БД) и как сделать лучше не уходя в высшие материи
     
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    ООП не равно простому использованию классов. Например класс DB - отражает сущность предметной области, а вот сущность Auth - вряд ли.

    По поводу класса DB - велосипед. Используйте PDO и Mysqli, а внутри них - prepared statements.

    По поводу кода в принципе - вы понимаете, что у вас инъекция?
     
    _________________________
  16. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Auth будет отвечать за авторизацию (проверка, установка кук и т.д), если я правельно понял что имелось ввиду.
    У меня вообщим весь функционал уже написан был, но там процедурный подход. Вот хочу попрактиковаться в ООП, но наверное я еще не понял саму концепцию ООП :)
    Классов у меня будет около 10. Класс БД, авторизации, установки, самого прохождение теста, редактирование настроек, редактирование предметов и т.д .

    Вот это для меня пока как раз высшая материя))

    Да. Код привел чисто для примера :)
     
    #21616 zifanchuck, 18 May 2013
    Last edited: 18 May 2013
  17. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,529
    Likes Received:
    166
    Reputations:
    99
    Делал возможность прикреплять файлы для скрипта phpmail, но все прикреплённые файлы занимали размер 0kb после отправки - можно сказать файл скачался и не открывается, как ни крутил код, нормально файлы не отправлялись

    Помогите пожалуйста кодом для вложений файлов в письмо
     
  18. Crazy_deviL

    Crazy_deviL New Member

    Joined:
    2 Mar 2013
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    http://forum.antichat.ru/thread384145.html вот помоги)
     
  19. SergioBlog

    SergioBlog New Member

    Joined:
    21 Jan 2011
    Messages:
    10
    Likes Received:
    2
    Reputations:
    0
    Вопросец:
    Заливаю в админку картинку, меняю ContentType с image/jpeg на text/plain и вижу ошибку:
    Fatal error: Call to undefined function textcreatefromplain() in /home/www/site.com/tools.php on line 189

    Похоже что имя функции создается из ContentType? Можно ли как-то внедрить свой код туда? Получается ведь $1createfrom$2();?
     
  20. misha22

    misha22 New Member

    Joined:
    8 Mar 2013
    Messages:
    0
    Likes Received:
    3
    Reputations:
    0
    Привет всем. Как сделать чтоб при переходе по ссылке файл начал загрузку?
     
Loading...
Thread Status:
Not open for further replies.