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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Еще раз о магических кавычках для новичка
 
 автор: PhMaster   (06.12.2009 в 00:35)   письмо автору
 
 

Народ, раз нам в php 6 отключили магические кавычки как лучше в php 5 с ними поступать. Я вот для себя сделал такую функцию. Правильная ли она ?

  //коррекция переменных, которые передаются методами $_GET и $_POST в строке $str
  //Параметр $escape определяет обрабатывать ли строку функцией mysql_escape_string()
  function correct_input($str, $escape=true)
  {
    $str = trim($str);
    if($escape == true)
    {
        $str = mysql_real_escape_string($str);
    }
    if($escape == false)
    {
      if(get_magic_quotes_gpc())
        $str = stripslashes($str);
    }
    return($str);
  }

  Ответить  
 
 автор: chexov   (07.12.2009 в 09:51)   письмо автору
 
   для: PhMaster   (06.12.2009 в 00:35)
 

в 6 версии магические кавычки будут отключены?почему?
я использую вот такую собственную функцию
<?
function nosql($field)
  {
  if (
is_array($field))
    {
    foreach (
$field as $key => $elem)
    
$field[$key] = nosql($elem);
    }
  else
    {
    if (!
get_magic_quotes_gpc())
      {
      
$field mysql_escape_string($field);
      }
    
$field=strtr($field,array("`"=>"""#"=>""));
    }
  return 
$field;
  }
?>

  Ответить  
 
 автор: neadekvat   (07.12.2009 в 09:56)   письмо автору
 
   для: chexov   (07.12.2009 в 09:51)
 

http://ru.wikipedia.org/wiki/PHP#PHP_6

Они вам не мешают? Мне мешают - тут включены, а там отключены.. Приходится заботится о дополнительных проверках перед обработкой текста.

  Ответить  
 
 автор: Саня   (07.12.2009 в 09:56)   письмо автору
 
   для: chexov   (07.12.2009 в 09:51)
 

> в 6 версии магические кавычки будут отключены?почему?
Потому что они уже всех достали.

  Ответить  
 
 автор: Саня   (07.12.2009 в 09:59)   письмо автору
 
   для: PhMaster   (06.12.2009 в 00:35)
 

> как лучше в php 5 с ними поступать
В htaccess написать
php_flag magic_quotes_gpc off
и забыть про get_magic_quotes_gpc().

  Ответить  
 
 автор: chexov   (07.12.2009 в 10:02)   письмо автору
 
   для: Саня   (07.12.2009 в 09:59)
 

мудрое решение, но если на сервере допустим htacess а в случае использования IDECO htacess не катит

  Ответить  
 
 автор: Саня   (07.12.2009 в 10:05)   письмо автору
 
   для: chexov   (07.12.2009 в 10:02)
 

Может тогда стоит писать скрипты ещё и в расчёте на PHP 4 и PHP 3 чтобы уж наверняка покрыть абсолютное большинство хостингов?

  Ответить  
 
 автор: chexov   (07.12.2009 в 10:06)   письмо автору
 
   для: Саня   (07.12.2009 в 10:05)
 

писать нужно под большинство, если конечно это не индивидуальный заказ, я сомневаюсь что на каком нибудь хостинге еще остался 4, а тем более 3 версия php

  Ответить  
 
 автор: neadekvat   (07.12.2009 в 10:13)   письмо автору
 
   для: chexov   (07.12.2009 в 10:06)
 

Вот, а теперь попробуйте назвать процент серверов с использованием IDECO

  Ответить  
 
 автор: chexov   (07.12.2009 в 10:26)   письмо автору
 
   для: neadekvat   (07.12.2009 в 10:13)
 

достаточно того, что моя организация использует IDECO и практически все муниципальные учреждения на ней...ИМХО это удобно только для статистики, а для тонкой надстройки сервера это геморой и никуда не годится

  Ответить  
 
 автор: Саня   (07.12.2009 в 10:16)   письмо автору
 
   для: chexov   (07.12.2009 в 10:06)
 

Любая работа становится индивидуальной на этапе внедрения, в течение которого утрясаются все индивидуальные особенности хостинга, скрипта, окружения и пр.

> хостинге еще остался 4, а тем более 3 версия php
4 ещё можно найти, не прилагая особых усилий. А вот 3 уже нужно постараться найти.

  Ответить  
 
 автор: Nerfair   (07.12.2009 в 10:28)   письмо автору
 
   для: PhMaster   (06.12.2009 в 00:35)
 

if (!get_magic_quotes_gpc())
    {
      $login = mysql_escape_string($login);
    }


А если вот так? :)

  Ответить  
 
 автор: Fractured#   (07.12.2009 в 18:51)   письмо автору
 
   для: Nerfair   (07.12.2009 в 10:28)
 

А если данные не только под SQL-запрос надо использовать?

  Ответить  
Rambler's Top100
вверх

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