[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оцените скрипт
123456
Посмотрите, что исправить в скрипте? Нормально написан?

<?php 
include_once './us_pr.php';
include_once './vid/header.php';
?>
<br />
<
br />
<
br />
<
h1 align="center">Изменить данные о <?=$_SESSION['email']?></h1>
<
br />
<
br />
<
br />
<?php
if(isset($_POST['submit']))
{
$error = array(
1 => "Фамилия введена не верно.<br>",
2 => "Имя введено не верно.<br>",
3 => "Отчество введено не верно.<br>",
4 => "Страна введена не верно.<br>",
5 => "Город введен не верно.<br>",
6 => "Проффесия введена не верно.<br>",
7 => "Возвраст введен не верно.<br>",
8 => "Новые пароли не совпадают.<br>",
9 => "Пароль введен не верно.<br>",
10 => "Все поля пусты.<br>"
);

foreach($_POST as $key => $value)
{
$_POST[$key] = trim($value);
}

if(md5("$sol".sha1($_POST['password']))==$user['password'])
{

if($_POST['f_name']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z]+$/",$_POST['f_name']))
{
$error_echo .= $error['1'];
}
else
{
$sql .= " `f_name`='".$_POST['f_name']."',";
}
}


if($_POST['i_name']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z]+$/",$_POST['i_name']))
{
$error_echo .= $error['2'];
}
else
{
$sql .= " `i_name`='".$_POST['i_name']."',";
}
}


if($_POST['o_name']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z]+$/",$_POST['o_name']))
{
$error_echo .= $error['3'];
}
else
{
$sql .= " `o_name`='".$_POST['o_name']."',";
}
}


if($_POST['sity_one']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z+-]+$/",$_POST['sity_one']))
{
$error_echo .= $error['4'];
}
else
{
$sql .= " `sity_one`='".$_POST['sity_one']."',";
}
}


if($_POST['sity_two']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z+-]+$/",$_POST['sity_two']))
{
$error_echo .= $error['5'];
}
else
{
$sql .= " `sity_two`='".$_POST['sity_two']."',";
}
}


if($_POST['lans']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z+-]+$/",$_POST['lans']))
{
$error_echo .= $error['6'];
}
else
{
$sql .= " `lans`='".$_POST['lans']."',";
}
}


if($_POST['age']!=="")
{
if(!(filter_var($_POST['age'], FILTER_VALIDATE_INT)))
{
$error_echo .= $error['7'];
}
else
{
$sql .= " `age`='".$_POST['age']."',";
}
}


if($_POST['password_one']!=="")
{
if($_POST['password_one']!==$_POST['password_two'])
{
$error_echo .= $error['8'];
}
else
{
$sql .= " `password`='".md5("$sol".sha1($_POST['password_one']))."',";
}
}

}

else
{
$err = 1;
echo $error['9'];
}

if($err!==1)
{
if(empty($error_echo))
{
if(!(empty($sql)))
{
$sql = substr($sql, 0, -1);
mysql_query("update `site_user` set ".$sql." where `email`='".$_SESSION['email']."'");
echo "Сохранено";
}
else
{
echo $error['10'];
}
}

else
{
echo $error_echo;
}
}

}

?>
<form method="post" action="">
Фамилия: <input type="text" name="f_name" maxlength="20" value="<?php if(isset($_POST['f_name'])){echo $_POST['f_name'];}else{echo $user['f_name'];}?>"/><br>
Имя: <input type="text" name="i_name" maxlength="20" value="<?php if(isset($_POST['i_name'])){echo $_POST['i_name'];}else{echo $user['i_name'];}?>"/><br>
Отчество: <input type="text" name="o_name" maxlength="20" value="<?php if(isset($_POST['o_name'])){echo $_POST['o_name'];}else{echo $user['o_name'];}?>"/><br><br><br>

Страна: <input type="text" name="sity_one" value="<?php if(isset($_POST['sity_one'])){echo $_POST['sity_one'];}else{echo $user['sity_one'];}?>"/><br>
Город: <input type="text" name="sity_two" value="<?php if(isset($_POST['sity_two'])){echo $_POST['sity_two'];}else{echo $user['sity_two'];}?>"/><br>
Профессия: <input type="text" name="lans" value="<?php if(isset($_POST['lans'])){echo $_POST['lans'];}else{echo $user['lans'];}?>"/><br><br><br>

Возраст: <input type="text" name="age" value="<?php if(isset($_POST['age'])){echo $_POST['age'];}else{echo $user['age'];}?>"/><br><br><br>

Новый пароль: <input type="password" name="password_one" /><br>
Повтарите пароль: <input type="password" name="password_two" /><br><br><br>

Настоящий пароль: <input type="password" name="password" /><br><br>
<
input type="submit" name="submit" value="Сохранить" />
</
form>

<?php include_once './vid/footer.php';?>




Спустя 7 часов, 16 минут, 43 секунды (28.08.2012 - 09:43) Hello написал(а):
Вынести html в отдельный файл

Спустя 14 минут, 24 секунды (28.08.2012 - 09:57) Игорь_Vasinsky написал(а):
Цитата
foreach($_POST as $key => $value)
{
     $_POST[$key] = trim($value);
}



WTF????

$_POST=array_map('trim',$_POST);


Цитата
<br />
<br />
<br />

<p>&nbsp;</p>

Цитата
Страна: <input type="text" name="sity_one" value="<?php if(isset($_POST['sity_one'])){echo $_POST['sity_one'];}else{echo $user['sity_one'];}?>"/><br>


<?=isset($_POST['sity_one']) ?$_POST['sity_one'] :$user['sity_one'];?>


Цитата
[а-яёА-ЯЁa-zA-Z+-]


[а-яёa-z\+\-]i

Цитата
$error_echo.=$error['2'];


$error_echo.=$error[2];


Unix вроде не поймёт такой моневр
Цитата
include_once './vid/header.php';


include_once $_SERVER['DOCUMENT_ROOT'].'/vid/header.php';


Скобы не об-но если - выполняется одна операция

Цитата
if($_POST['o_name']!=="")
{
     if(!preg_match("/^[а-яёА-ЯЁa-zA-Z]+$/",$_POST['o_name']))
  {
      $error_echo .= $error['3'];
  }
    else
  {
      $sql .=  " `o_name`='".$_POST['o_name']."',";
  }
}


И нафиг проверять на пустоту когда у тя далее регулярка?


далее

Цитата
if($_POST['i_name']!=="")


Цитата
a != $b Не равно TRUE если $a не равно $b.
$a !== $b Тождественно не равно TRUE если $a не равно $b или в случае, если они разных типов (Добавлено в PHP 4)

Спустя 10 минут, 20 секунд (28.08.2012 - 10:07) Игорь_Vasinsky написал(а):
ООооо.. как всё переказило biggrin.gif

Спустя 41 минута, 5 секунд (28.08.2012 - 10:49) 123456 написал(а):
Цитата
Цитата
foreach($_POST as $key => $value)
{
     $_POST[$key] = trim($value);
}



WTF????

$_POST=array_map('trim',$_POST);



Раньше мне НА ЭТОМ форуме кто-то так советовал делать(как я написал), вроде ты или Winston.

Цитата
[а-яёa-z\+\-]i

так?
if(!preg_match("/^[а-яёa-z\+\-]i+$/",$_POST['f_name'])) 

Спустя 1 час, 32 минуты, 43 секунды (28.08.2012 - 12:21) Игорь_Vasinsky написал(а):
i - это модификатор регулярного выражения, он рисуется за пределами паттерна, а + - это квантификатор - который имеет не посредственное отношение к паттерну wink.gif

Цитата
Раньше мне НА ЭТОМ форуме кто-то так советовал делать(как я написал), вроде ты или Winston.

100% нет.

Я юзаю array_map() а Winston вообще фанат лямбда функций и creat_function biggrin.gif

Спустя 12 минут, 38 секунд (28.08.2012 - 12:34) twin написал(а):
К слову сказать, минус в конце паттерна не обязательно экранировать.

Спустя 32 минуты, 55 секунд (28.08.2012 - 13:07) killer8080 написал(а):
Цитата (123456 @ 28.08.2012 - 11:49)
Цитата
Цитата
foreach($_POST as $key => $value)
{
$_POST[$key] = trim($value);
}



WTF????

$_POST=array_map('trim',$_POST);




Раньше мне НА ЭТОМ форуме кто-то так советовал делать(как я написал), вроде ты или Winston.


Цикл рациональней, array_map короче, выбирай сам smile.gif
Цитата (123456 @ 28.08.2012 - 03:26)
if($_POST['f_name']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z]+$/",$_POST['f_name']))
  {
  $error_echo .= $error['1'];
  }
  else
  {
  $sql .=" `f_name`='".$_POST['f_name']."',";
  }
}

if($_POST['i_name']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z]+$/",$_POST['i_name']))
  {
  $error_echo .= $error['2'];
  }
  else
  {
  $sql .=" `i_name`='".$_POST['i_name']."',";
  }
}

if($_POST['o_name']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z]+$/",$_POST['o_name']))
  {
  $error_echo .= $error['3'];
  }
  else
  {
  $sql .=" `o_name`='".$_POST['o_name']."',";
  }
}

if($_POST['sity_one']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z+-]+$/",$_POST['sity_one']))
  {
  $error_echo .= $error['4'];
  }
  else
  {
  $sql .=" `sity_one`='".$_POST['sity_one']."',";
  }
}

if($_POST['sity_two']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z+-]+$/",$_POST['sity_two']))
  {
  $error_echo .= $error['5'];
  }
  else
  {
  $sql .=" `sity_two`='".$_POST['sity_two']."',";
  }
}

if($_POST['lans']!=="")
{
if(!preg_match("/^[а-яёА-ЯЁa-zA-Z+-]+$/",$_POST['lans']))
  {
  $error_echo .= $error['6'];
  }
  else
  {
  $sql .=" `lans`='".$_POST['lans']."',";
  }
}

это кучу однотипных проверок можно было сделать в цикле. Плюс проверку нужно было делать через isset() или !empty(), в твоем варианте будут нотисы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.