Просмотр полной версии : Проверка данных
Доброе Вам время суток!!!
Делаю форму для добавлений данных в MySQL. Есть несколько полей TEXTAREA и много просто TEXT.
Как мне проверять/фильтровать данные, введённые пользователем в эту форму, чтоб обеспечить свою безопасность. Ну, чтоб зловредный пользователь не смог занести "плохие" данные в мускул.
Вот придумал такой алгоритм:
$email=$HTTP_POST_VARS["email"];
$email=trim($email);
$email=substr($email,0,50);
$email=htmlspecialchars(addslashes($email));
Может что-то ещё дописать???
Что посоветуете???
И ещё: при использовании алгоритма, описаного выше, нужно ли, при вынимании данных из базы, применять stripslashes ???
Заранее благодарю за помощь!!!
Люди!!! Срочно ведь нужно!!! Помогите!!! :( :( :(
ты уже всё написал...
куда уж боле? =)
может быть проверить а существует ли вообще эта переменная? =)
empty();
2 nagash:
:) Ну эт само сабой :cool:
это мы в первом класе проходили... :D :D :D
А что насчёт stripslashes??? Нужно ли применять при вынимании инфы из мускула???
И вообще, можно ли использовать такую конструкцию:
$email=htmlspecialchars(addslashes(substr(trim($HTTP_POST_VARS["email"]),0,50)));
???
такую конструкцию можно...
по поводу стрипслешес...
достань инфу из базы и посмотри... нужно ли тебе или нет =)
или выключи мэджик палочки в пхп тогда ненужно будет... =)
Спасиб :D :D :D :D :D
Вопросов больше не имею... покаместь ;)
if(empty($HTTP_POST_VARS["email"]) ||
!eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$", $HTTP_POST_VARS["email"])){
echo "E-mail is not valid";
exit;
}
// дальше делай, что хош: мыло правильное
Этого, вроде достаточно :)
Вроде, можно еще как-то забабацать проверку на существование мыла...
Armen Khanoyants
21.08.2003, 12:53
проверка MX, только для чего?
если ты делаешь регистрацию, просто посылай им на мыло сообщение с урл для подтверждения регистрации и все.
если не подтвердили удаляем из базы, вот и все.
Вот, отрыл....
<?
/*
By: Jon S. Stevens jon@clearink.com
Copyright 1998-1999 Jon S. Stevens, Clear Ink
This code has all the normal disclaimers.
It is free for any use, just keep the credits intact.
*/
function validateEmail ( $email )
{
global $SERVER_NAME;
$return = array ( false, "" );
list ( $user, $domain ) = split ( "@", $email, 2 );
$tld = $domain;
if ( checkdnsrr ( $tld, "MX" ) )
{
if ( getmxrr ( $tld, $mxhosts, $weight ) )
{
for ( $i = 0; $i < count ( $mxhosts ); $i++ )
{
$fp = fsockopen ( $mxhosts[$i], 25 );
if ( $fp )
{
$s = 0;
$c = 0;
$out = "";
set_socket_blocking ( $fp, false );
do
{
$out = fgets ( $fp, 2500 );
if ( ereg ( "^220", $out ) )
{
$s = 0;
$out = "";
$c++;
}
else if ( ( $c > 0 ) && ( $out == "" ) )
{ break; }
else
{ $s++; }
if ( $s == 9999 ) { break; }
} while ( $out == "" );
set_socket_blocking ( $fp, true );
fputs ( $fp, "HELO $SERVER_NAME\n" );
$output = fgets ( $fp, 2000 );
fputs ( $fp, "MAIL FROM: <info@" . $tld . ">\n" );
$output = fgets ( $fp, 2000 );
fputs ( $fp, "RCPT TO: <$email>\n" );
$output = fgets ( $fp, 2000 );
if ( ereg ( "^250", $output ) )
{
$return[0] = true;
}
else
{
$return[0] = false;
$return[1] = $output;
}
fputs ( $fp, "QUIT\n" );
fclose( $fp );
if ( $return[0] == true )
{ break; }
}
}
}
}
return $return;
}
?>
Мы тут старались... а он убежал и даже спасибо не сказал... :(
От тебя ничего бы не отвалилось :)
я сказал спасибо (смотри месаги више)!!! :D :D :D
И от меня ни чего не отвалилось... :D
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.