Pull to refresh

Это же кошмар, товарищи. PHPShop

Reading time2 min
Views7.8K
Оговорюсь. Не имею никакого отношения к PHPShop, не конкурирую с ней и не ставлю целью кого-то заклеймить.

К нам обратился человек, купивший Enterprise-версию интернет-магазина PHPShop (2.1) и сделавший на ней сайт. Ему нужна некоторая доработка бизнес-логики магазина, за которую авторы запросили непомерную сумму. Мы получили код и начали смотреть.

Это жуть. Я так писал первые 2 дня знакомства с php и вебом вообще. Студентам с таким кодом не принимаю лабы.


Примеры:
1.
Вставлено в начало всех php-файлов:
require("../connect.php");
@mysql_connect ("$host", "$user_db", "$pass_db")or @die("Невозможно подсоединиться к базе");
mysql_select_db("$dbase")or @die("Невозможно подсоединиться к базе");
require("../enter_to_admin.php");


2. defines.php
table_name="phpshop_categories"; # имя стола базы записей в базу
table_name1="phpshop_orders"; # имя стола базы записей в базу
table_name2="phpshop_products"; # имя стола базы записей в базу
table_name3="phpshop_system"; # имя стола базы записей в базу


3. «Парсинг» настроек
if(@parse_ini_file("../../phpshop/inc/config.ini",1))
$SysValue=parse_ini_file("../../phpshop/inc/config.ini",1);
elseif(@parse_ini_file("../../../phpshop/inc/config.ini",1))
$SysValue=parse_ini_file("../../../phpshop/inc/config.ini",1);
elseif(@parse_ini_file("../../../../phpshop/inc/config.ini",1))
$SysValue=parse_ini_file("../../../../phpshop/inc/config.ini",1);
else $SysValue=@parse_ini_file("../../../../../phpshop/inc/config.ini",1);
$sql="select * from ".$SysValue['base']['table_name28']." order by discount";
$result=mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
$id=$row['id'];
$name=$row['name'];
$discount=$row['discount'];
$sel="";
if($n==$id) $sel="selected";
@$dis.="<option value=".$id." ".$sel." >".$name." - ".$discount."%
\n";
}

4. Update
$sql="UPDATE ".$SysValue['base']['table_name27']."
SET
login='$login_new',
password='".base64_encode($password_new)."',
mail='$mail_new',
name='$name_new',
company='$company_new',
inn='$inn_new',
tel='$tel_new',
adres='$adres_new',
enabled='$enabled_new',
status='$status_new',
kpp='$kpp_new',
tel_code='$tel_code_new'
where id='$userID'";


5. Обработка формы проводится с register_globals
if(@$productDELETE=="doIT")// Удаление
{
if(CheckedRules($UserStatus["shopusers"],1) == 1){
$sql="delete from ".$SysValue['base']['table_name27']."
where id='$userID'";
$result=mysql_query($sql)or @die("Невозможно изменить запись");
echo"

";
}else $UserChek->BadUserFormaWindow();
}


В системных требованиях указан PHP4.
Написано почти без использования ООП.
Все что я видел написано в виде каши php, sql, html, js.
Верстка откровенно едет в FF 3.
Редактирование пользователя и создание пользователя это два файла, где %60 кода сдублировано.

Это платный промышленный продукт? Это стоит почти 12000 за коробку? Это нашему клиенту предложили доработать самостоятельно?
Кстати, на Хабре продукт упоминается 4 раза, и всегда в общем положительно: habrahabr.ru/search/?q=phpshop
Tags:
Hubs:
+131
Comments405

Articles

Change theme settings