Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: разница функций

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-45] 

 
 автор: Trianon   (11.04.2010 в 22:31)   письмо автору
 
   для: Тень*   (11.04.2010 в 22:07)
 

Он же мой ответ в 21 задаче оценивал?

  Ответить  
 
 автор: Тень*   (11.04.2010 в 22:07)   письмо автору
 
   для: Trianon   (11.04.2010 в 22:04)
 

Причём тут он?

  Ответить  
 
 автор: Bvz   (11.04.2010 в 22:06)   письмо автору
 
   для: Trianon   (11.04.2010 в 21:53)
 

спасибище!!! оставлю пока так (пока полностью не догоню как все это работает)


>function unmq($arg)
>{
>    return $arg === null ? null :
>              (get_magic_quotes_gpc()? stripslashes($arg): $arg);
>} 

>$add   = unmq(@$_POST['name']);
>$name = $add;
>       $esc_name = "'".mysql_escape_string($name)."'";
>       $sql = "SELECT id FROM guests WHERE guestname = $esc_name"; 


а какие ошибки могут возникать?
а с числовыми значениями как поступать?
и когда можно trim использовать?
и что брать mysql_escape_string или mysql_real_escape_string?

  Ответить  
 
 автор: Trianon   (11.04.2010 в 22:04)   письмо автору
 
   для: Тень*   (11.04.2010 в 21:58)
 

В смысле можно некрасиво получить диагностик на экран? Да, конечно.
Это Cheops мой ляп проглядел :)

  Ответить  
 
 автор: Тень*   (11.04.2010 в 21:58)   письмо автору
 
   для: Trianon   (11.04.2010 в 13:29)
 

Стоит учесть, что $_POST['name'] может быть массивом.

  Ответить  
 
 автор: Trianon   (11.04.2010 в 21:53)   письмо автору
 
   для: Bvz   (11.04.2010 в 20:35)
 

>в вашем решении этой задачи есть такая функция
>
>

>function unmq($arg)
>{
>    return $arg === null ? null :
>              (get_magic_quotes_gpc()? stripslashes($arg): $arg);
>} 
>

>
>а сам sql запрос формируется так
>
>

>$add   = unmq(@$_POST['name']);
>$name = $add;
>       $esc_name = "'".mysql_escape_string($name)."'";
>       $sql = "SELECT id FROM guests WHERE guestname = $esc_name"; 
>

>
>но сейчас вы предлагаете так делать
>

>$add   = unmq(@$_POST['name']);
>$name = $add;
>       $sql = "SELECT id FROM guests WHERE guestname = '".mysql_escape_string($name)."'"; 
>

>я вас правильно понял?

Если Вы уже ловите настолько тонкие различия как сейчас процитировали, то тогда скажу, что верхний вариант идеологически более корректен. И ему я бы отдал предпочтение.

>а почему в функцию unmq нельзя добавить mysql_escape_string?

А вот этот вопрос показывает, что нихрена подобного не происходит, и до ловли тонких различий - как до Шанхая пешком.
Почему нельзя? Можно. Только скрипт работать перестанет. Вернее, начнет работать с ошибками.

  Ответить  
 
 автор: Slo_Nik   (11.04.2010 в 21:00)   письмо автору
 
   для: Bvz   (11.04.2010 в 20:35)
 

наверное потому что противоположные задачи у этих функций?

  Ответить  
 
 автор: Bvz   (11.04.2010 в 20:35)   письмо автору
 
   для: Trianon   (11.04.2010 в 19:41)
 

в вашем решении этой задачи есть такая функция


function unmq($arg)
{
    return $arg === null ? null :
              (get_magic_quotes_gpc()? stripslashes($arg): $arg);



а сам sql запрос формируется так


$add   = unmq(@$_POST['name']);
$name = $add;
       $esc_name = "'".mysql_escape_string($name)."'";
       $sql = "SELECT id FROM guests WHERE guestname = $esc_name"; 


но сейчас вы предлагаете так делать

$add   = unmq(@$_POST['name']);
$name = $add;
       $sql = "SELECT id FROM guests WHERE guestname = '".mysql_escape_string($name)."'"; 

я вас правильно понял?
а почему в функцию unmq нельзя добавить mysql_escape_string?

  Ответить  
 
 автор: Trianon   (11.04.2010 в 19:41)   письмо автору
 
   для: Bvz   (11.04.2010 в 18:46)
 

понятно.
не в коня корм.


Что я могу сказать?
В разделе "задачи" 21-я - Ваша..
Решите - поймете.

  Ответить  
 
 автор: Bvz   (11.04.2010 в 18:46)   письмо автору
 
   для: Trianon   (11.04.2010 в 18:30)
 

я правда не вижу ошибок, подскажите?
а как уменьшить листинг по ширине?

вот нашел такое решение


<?php
// функция для экранировки спецсимволов
function escape_string($str) {
   if( 
get_magic_quotes_gpc() ) // если режим магических кавычек включен
      
$str stripslashes($str); // очищаем строку от обратных слешей, которые добавили магические ковычки
   
return mysql_real_escape_string($str); // возвращаем экранированную строку
}

// и где-то её использование
$id intval($_POST['id']);
$name escape_string($_POST['name']);
$description escape_string($_POST['description']);
$name trim($name);
$description trim($description);
//обновляем данные
$sql "UPDATE `category` SET name='{$name}', description='{$description}' WHERE id={$id}";

mysql_query($sql) or die(mysql_error());
?>

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-45] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования