|
|
|
|
|
для: Trianon
(28.12.2008 в 16:12)
| | Надеюсь, а то часть дистрибутивов PHP 6 (правда для разработчиков) уже выходила без неё. | |
|
|
|
|
|
|
|
для: gurza
(28.12.2008 в 18:36)
| | если хотите её использовать, то проверяйте также длину строки. | |
|
|
|
|
|
|
|
для: Root
(28.12.2008 в 16:49)
| | Так что не стоит использовать функцию ip2long? | |
|
|
|
|
|
|
|
для: gurza
(28.12.2008 в 16:30)
| | ip2long странная штука..
В мануале написано:
"Returns the IPv4 address or FALSE if ip_address is invalid." и пример
<?php
$ip = gethostbyname('www.example.com');
$long = ip2long($ip);
if ($long == -1 || $long === FALSE) {
echo 'Invalid IP, please try again';
} else {
echo $ip . "\n"; // 192.0.34.166
echo $long . "\n"; // -1073732954
printf("%u\n", ip2long($ip)); // 3221234342
}
?>
|
но не всё так просто..
<?php
for ($i=0; $i<=255; $i++)
{
$ip = '127.0.0.1' . chr($i). "sql injection";
$long = ip2long( $ip );
echo ($long == -1 || $long === FALSE) ?
'Invalid IP, please try again, IP - ' . $ip . '<br />' :
'Valid IP - ' . $ip . '<br />';
}
|
| |
|
|
|
|
|
|
|
для: Root
(28.12.2008 в 12:12)
| | Автор: Root (28.12.2008 в 12:12)
что делать с $remote_addr думайте сами
решил прогнать ир через
$remote_addr = getenv('REMOTE_ADDR');
$ip = ip2long($remote_addr);
|
| |
|
|
|
|
|
|
|
для: cheops
(28.12.2008 в 15:42)
| | Функция get_magic_quotes_gpc() останется. Просто она в любом случае будет возвращать false. | |
|
|
|
|
|
|
|
для: cheops
(28.12.2008 в 15:42)
| | >у нас в коде появится ещё один геморрой в виде ...
геморрой уже есть. Вот мой :-) :
<?php
if( get_magic_quotes_gpc() )
{
$input = array( &$_GET, &$_POST, &$_COOKIE );
while( list( $k,$v ) = each( $input ) )
{
foreach( $v as $key => $val )
{
if( !is_array( $val ) )
{
$input[$k][$key] = stripslashes( $val );
continue;
}
$input[] =& $input[$k][$key];
}
}
unset( $input );
}
?>
|
а станет
<?php
if( phpversion() < '6.0.0' && get_magic_quotes_gpc() )
...
|
| |
|
|
|
|
|
|
|
для: Root
(27.12.2008 в 16:30)
| | >надеятся на магические кавычки нечего, особенно после вот этого -> PHP 5.2.7 has been removed from distribution :-)
Дело не в надежде, а в том, что мы вынуждены в коде учитывать сервера, как с включеными магическими кавычками, так и с отключенными, и даже после отмены ситуация не изменится - сервера с включенными и отключенными магическими кавычками будут оставаться, а у нас в коде появится ещё один геморрой в виде
<?php
if(!function_exists('get_magic_quotes_gpc'))
{
function get_magic_quotes_gpc()
{
return false;
}
}
?>
| который будет учитывать сервера, где функции get_magic_quotes_gpc() нет. | |
|
|
|
|
|
|
|
для: gurza
(27.12.2008 в 02:21)
| | >обязательно так
>
><?php
> if (!get_magic_quotes_gpc())
> {
> $author = mysql_escape_string($author);
> $pswrd = mysql_escape_string($pswrd);
> }
>?>
>
|
>или так тоже будет работать корректно?
>
>
><?php
> $author = mysql_escape_string($author);
> $pswrd = mysql_escape_string($pswrd);
>
>?>
>
|
Нет, не корректно, если магические кавычки включены - можете два раза заслешить спец-символы. Придется использовать get_magic_quotes_gpc(), и даже когда её полностью выведут из PHP придется её ещё долго самостоятельно писать, чтобы обеспечить совместимость с более ранними версиями PHP. | |
|
|
|
|
|
|
|
для: Root
(28.12.2008 в 12:12)
| | Спасибо теперь понятненько | |
|
|
|
|