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

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

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

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Moderator - Level 7

    This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

    http://ru.php.net/manual/en/function.mysql-real-escape-string.php
     
  2. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    По памяти пишу, не суть важно, так как в описании mysql_escape_string() в любом случае будет предложение использовать mysql_real_escape_string().
     
    1 person likes this.
  3. Player#1

    Player#1 Member

    Joined:
    11 Nov 2008
    Messages:
    95
    Likes Received:
    35
    Reputations:
    10
    strip_tags() или htmlspecialchars() защитят от "остальных проблем"

    strip_tags() следует использовать, если в регистрационных данных не предполагается наличие тэгов.
    htmlspecialchars() использовать когда выводишь данные из БД, а не добавляешь.
     
    #17883 Player#1, 8 Mar 2011
    Last edited: 8 Mar 2011
  4. Фараон

    Фараон коКотэ Of Antichat

    Joined:
    7 Nov 2010
    Messages:
    153
    Likes Received:
    105
    Reputations:
    83
    Все вы так говорите...
    Сори за флуд.
     
  5. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Гениально, захочу я регнуть себе логин K<i>NG функция strip_tags() вернет TRUE в любом случае и рега пройдет, а потом когда буду логиниться окажется что пользователя K<i>NG нет, и в БД будет записан KNG.
     
  6. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Осрбенно если написать такой ник
    Code:
    K<scr<script>ipt>NG
    Можно вставить активную XXS :D
     
    1 person likes this.
  7. h00lyshit!

    h00lyshit! [From Nobody To Root]

    Joined:
    10 Sep 2009
    Messages:
    289
    Likes Received:
    290
    Reputations:
    195
    Не обойдешь ты strip_tags таким способом
     
    #17887 h00lyshit!, 8 Mar 2011
    Last edited: 8 Mar 2011
    2 people like this.
  8. Player#1

    Player#1 Member

    Joined:
    11 Nov 2008
    Messages:
    95
    Likes Received:
    35
    Reputations:
    10
    я и не предлагаю при помощи strip_tags проверять валидность логина, тем более если логин может содержать тэги.
    Автор того сообщения писал про "форму регистрации" в которой как я понимаю могут и другие текстовые поля, и если в них запрещено использование тегов, то почему бы не удалить их.

    Проверка валидности логина/пароля естественно осуществляется по-другому, а для дополнительных полей формы регистрации подойдет и strip_tags
     
  9. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    PHP:
    $query 'INSERT INTO partners VALUES
     (NULL, '
    .$pass1.','.$_SERVER['REMOTE_ADDR'].',
    '
    .$conn.','.$wmr.')'$q mysql_query($query);
     if (!
    $q) { echo 'Не удалось добавить данные в БД'; }
    Возвращает всегда 'Не удалось добавить данные в БД', я неправильно формирую строку запроса с помощью операции конкатенации? Как тогда правильно сделать? постоянно с этим проблемы.

    ЗЫ Соединение с БД точно есть.
     
  10. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Edward Не хватает кавычек, ну и echo mysql_error();
     
    _________________________
  11. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    PHP:
    $query "INSERT INTO partners VALUES (NULL,'"$pass1 ."','"$_SERVER['REMOTE_ADDR'] ."','"$conn ."','"$wmr ."')"
    $q mysql_query($query); 
     if (!
    $q) { echo 'Не удалось добавить данные в БД'; } 
    или попробуй указать порядок полей

    PHP:
    $query "INSERT INTO partners (тут) VALUES (NULL,'"$pass1 ."','"$_SERVER['REMOTE_ADDR'] ."','"$conn ."','"$wmr ."')"
    $q mysql_query($query); 
     if (!
    $q) { echo 'Не удалось добавить данные в БД'; } 
     
  12. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    как решить проблему,что при выполнении парсинга гугла запросом,например:
    Code:
    inurl:?id=
    ошибки нет,но появляется,если немного усложнить запрос,например:
    Code:
    inurl:index.php?id=
    Код:
    PHP:
    $search_string="inurl:index.php?id="
    $url_search='http://www.google.ru/search?q='.$search_string.'&num=10';
     
  13. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    PHP:
    $search_string=urlencode($search_string);
    Знаешь зачем? смотри, у тебя так:
    PHP:
     $search_string="inurl:index.php?id="
    $url_search='http://www.google.ru/search?q='.$search_string.'&num=10';  
    Тоесть ссылка получается такая:
    Code:
    http://www.google.ru/search?q=inurl:index.php?id=&num=10
    Браузер ее не поймет, потому что такие символы как "?" and "=" его запутают. Они так сказать, "зарезервированы". И не должны присутствовать в значениях переменных гет . Ссылка должна выглядеть вот так:
    Code:
    http://www.google.ru/search?q=inurl%3Aindex.php%3Fid%3D&num=10
    Для этого воспользуйся функцией urlencode();
     
    #17893 snet, 9 Mar 2011
    Last edited: 9 Mar 2011
  14. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    я бы догадался до этого сам. Нет,не то.
     
  15. kappa

    kappa New Member

    Joined:
    19 Jul 2010
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    Доброе утро всем!
    А как можно с помощью такой HTML формы выводить все записи с базы где категория = 1;

    PHP:
    <div class="post">
     <div class="post_title"><h2><a href=""><?=$row['title'];?></a></h2></div>
     <div class="post_date">Posted on <?=$row['date'];?> by <a href="#"><?=$row['author'];?></a></div> 
     <div class="post_body"> 
     <p> 
        <?=$row['description'];?> </p>
     <p>Погнали!</p> 
     </div> 
     <div class="post_meta">
       <a href="#">5 comments</a> | Прсмотров: <?=$row['view'];?> </div>
     </div>
    PHP:
    <?php
     $res 
    mysql_query("SELECT id,cat,title,description,date,author,img,view FROM data WHERE cat='1'"); if(!$res) die('Ошибка базы данных' .mysql_error());
    $row mysql_fetch_assoc($res); 
    ?>
    Таким способом выводит 1 запись, а мне нужно все.
    Спасибо.
     
    #17895 kappa, 10 Mar 2011
    Last edited: 10 Mar 2011
  16. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    PHP:
    <?php 
      $res 
    mysql_query ("SELECT id,cat,title,description,date,author,img,view FROM data WHERE cat='1'");
      if (!
    $res)
        die (
    'Ошибка базы данных' .mysql_error()); 
      while (
    $row mysql_fetch_assoc($res)) {
        
    // что-то сделать
      
    }
    ?>
     
  17. kappa

    kappa New Member

    Joined:
    19 Jul 2010
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    krypt3r
    спасибо, но не так то просто в
    while { }
    загнать весь этот HTML код:
    PHP:
    <div class="post"> 
    <div class="post_title"><h2><a href=""><?=$row['title'];?></a></h2></div> 
     <div class="post_date">Posted on <?=$row['date'];?> by <a href="#"><?=$row['author'];?></a></div>  
     <div class="post_body">  
     <p>  
        <?=$row['description'];?> </p> 
     <p>Погнали!</p>  
     </div>  
     <div class="post_meta"> 
       <a href="#">5 comments</a> | Прсмотров: <?=$row['view'];?> </div> 
     </div>
    Я уже нашел способ как через
    PHP:
    print("");
    выводить, но может есть еще варианты....
     
    #17897 kappa, 10 Mar 2011
    Last edited: 10 Mar 2011
  18. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Если я вас правильно понял, то вам нужен альтернативный синтаксис, что-то типа
    PHP:
    <?php  
      $res 
    mysql_query ("SELECT id,cat,title,description,date,author,img,view FROM data WHERE cat='1'"); 
      if (!
    $res
        die (
    'Ошибка базы данных' .mysql_error());  
      while (
    $row mysql_fetch_assoc($res)):
    ?>
    <div class="post">  
      <div class="post_title"><h2><a href=""><?=$row['title'];?></a></h2></div>
      <div class="post_date">Posted on <?=$row['date'];?> by <a href="#"><?=$row['author'];?></a></div>   
      <div class="post_body">   
        <p><?=$row['description'];?></p>  
        <p>Погнали!</p>   
      </div>   
      <div class="post_meta">  
        <a href="#">5 comments</a> | Просмотров: <?=$row['view'];?>
      </div>  
    </div>  
    <?php
      
    endwhile;
    ?>
    http://ru2.php.net/manual/en/control-structures.alternative-syntax.php
    http://ru2.php.net/manual/en/control-structures.while.php
    Либо вот такой вариант:
    PHP:
    <?php  
      $res 
    mysql_query ("SELECT id,cat,title,description,date,author,img,view FROM data WHERE cat='1'"); 
      if (!
    $res
        die (
    'Ошибка базы данных' .mysql_error());  
      
    $div_post '';
      while (
    $row mysql_fetch_assoc($res)) {
        
    $div_post .= 
    "<div class=\"post\">  
      <div class=\"post_title\"><h2><a href=\"\">
    {$row['title']}</a></h2></div>
      <div class=\"post_date\">Posted on 
    {$row['date']} by <a href=\"#\">{$row['author']}</a></div>   
      <div class=\"post_body\">   
        <p>
    {$row['description']}</p>  
        <p>Погнали!</p>   
      </div>   
      <div class=\"post_meta\">  
        <a href=\"#\">5 comments</a> | Просмотров: 
    {$row['view']}
      </div>  
    </div>"
    ;  
      }
      echo 
    $div_post;
    ?>
     
    #17898 krypt3r, 10 Mar 2011
    Last edited: 10 Mar 2011
  19. kappa

    kappa New Member

    Joined:
    19 Jul 2010
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    krypt3r
    Оно самое, то что доктор прописал :)+10, а то я целое утро мозг ломал как это можно было решить.
     
  20. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    deleted
     
    #17900 .::BARS::., 10 Mar 2011
    Last edited: 11 Mar 2011
Thread Status:
Not open for further replies.