Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оцените движок 
V
    Опции темы
abalich
Дата 1.6.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



Я писал движок для своего сайта, принцип его такой:
При нажатии на ссылку к index.php добавляется ?display= какомуто значению например photo
Код

<a href="index.php?display=photo">Фотографии</a>

В центре страници код такой:
Код

if (isset($display)){
   $path=$_GET['display'];
   if ($path==''){
   include("./content/404.php");
   }
   else
  {  
     $link=mysql_connect("localhost","root","");
     mysql_select_db("db_name",$link);
    $str_sql_query="SELECT * FROM `table` WHERE `path`='".$path."' AND `status`='show'";
    $result=mysql_query($str_sql_query,$link);
    if ($mas=mysql_fetch_array($result))
        {include ("./content/content.php");}
   else 
       {include("./content/404.php")};
 
      }
}

Вот а в файле content.php:
Код

$link=mysql_connect("localhost","root","");
     mysql_select_db("db_name",$link);
$str_sql_query="SELECT * FROM `table` WHERE `path`='".$_GET['dislapy']."'";
$result=mysql_query($str_sql_query,$link);
$mas=mysql_fetch_array($result);
echo "<h1>".$mas['tittle']."</h1>";
ehco "<p>".$mas['content']."</p>";

Скажите насколько правильный такой движок!!! И безопасный!!! Я его таким сделал для простой админки!!!!

Это сообщение отредактировал(а) abalich - 1.6.2007, 12:59


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
Aco
Дата 1.6.2007, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.5.2007

Репутация: нет
Всего: нет



Жеесть, безапасность на нуле.
1. никакой экранизации $path. SQL Injections за милую душу.
2. как понимаю register_globals on.
...

Почитай любую стать о безопасности

Движок с нуля

Это сообщение отредактировал(а) Aco - 1.6.2007, 13:43
PM MAIL ICQ   Вверх
abalich
Дата 1.6.2007, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



Цитата

1. никакой экранизации $path. SQL Injections за милую душу.
2. как понимаю register_globals on.

1.????????Объясни не понял!!!
2. register_global off;


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
Aco
Дата 1.6.2007, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.5.2007

Репутация: нет
Всего: нет



Цитата

2. register_global off;

Код

if (isset($display)){
   $path=$_GET['display'];
 
Почему isset($display), а не isset($_GET['display']) ?

Цитата

1.????????Объясни не понял!!!

можно передать mysql запрос через url-запрос. Поставь экранирование спецсимволов мускула(mysql)
Код

  $path=mysql_escape_string($_GET['display']);


Наговорил бы ещё много, но работать надо smile 

Это сообщение отредактировал(а) Aco - 1.6.2007, 13:50
PM MAIL ICQ   Вверх
abalich
Дата 1.6.2007, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



Цитата

if (isset($display)){
   $path=$_GET['display'];

запарился конечно же:
isset($_GET['display']


Цитата

 $path=mysql_escape_string($_GET['display']);

Этого я незнал спасибо!!
Ну если принять такие меры тогда движок выглядить посимпотичней или нет!!!


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
$дмитрий
Дата 1.6.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Цитата

Ну если принять такие меры тогда движок выглядить посимпотичней или нет!!!

smile 
PM MAIL   Вверх
BuShaRt
Дата 2.6.2007, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Оценил, вот итог:
-Идея не нова, используеться всюду и везде, почти как каждом движке.
-Позставленная задача раскрыта по минимуму.
-Код не валидный и кривой.
PM MAIL   Вверх
abalich
Дата 2.6.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



Цитата

-Код не валидный и кривой

Как это понять?????


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
WolfON
Дата 2.6.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: 6
Всего: 8



Это понять, что в нем отсутствует читабельность, расширяемость и тд
Мне вот абсолютно очевидно, что соединение с БД происходит два раза - при открытии страницы и при вызове скрипта контент, причем оно не постоянное
Еще мне очевидно, что у тебя код повторяется, хотя-бы два раза работа с БД и одинаковые инклуды
PM MAIL ICQ   Вверх
BuShaRt
Дата 2.6.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



именно, функции в избыточном колличестве.

PM MAIL   Вверх
WolfON
Дата 2.6.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: 6
Всего: 8



Первое, что пришло в голову, так это переделать его до такого вида, про всякое там ООП или красивый код я не говорю, но:
Код

<?php
if (!empty($_GET['display'])) {
    $path = mysql_escape_string($_GET['display']);
    
    $link=mysql_pconnect("localhost","root","");
    mysql_select_db("db_name",$link);
    $str_sql_query="SELECT * FROM `table` WHERE `path`='$path' AND `status`='show'";
    $result=mysql_query($str_sql_query, $link);
    if ($mas=mysql_fetch_array($result))
        echo "<h1>{$mas['tittle']}</h1><p>{$mas['content']}</p>";
    else 
        include("./content/404.php");
} else {
    include("./content/404.php");
} 
?>

PM MAIL ICQ   Вверх
abalich
Дата 3.6.2007, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



Цитата

Код

<?php
if (!empty($_GET['display'])) {
    $path = mysql_escape_string($_GET['display']);
    
    $link=mysql_pconnect("localhost","root","");
    mysql_select_db("db_name",$link);
    $str_sql_query="SELECT * FROM `table` WHERE `path`='$path' AND `status`='show'";
    $result=mysql_query($str_sql_query, $link);
    if ($mas=mysql_fetch_array($result))
        echo "<h1>{$mas['tittle']}</h1><p>{$mas['content']}</p>";
    else 
        include("./content/404.php");
} else {
    include("./content/404.php");
} 
?>


За код спасибо!!!! smile 
А вот у меня на странице index.php строчка:
Код

$link=mysql_pconnect("localhost","root","");
    mysql_select_db("db_name",$link);

Встречается 2-3 раза, её можно не повторять просто менять $str_sql_query, и делать SQL запрос???



--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
CyClon
Дата 3.6.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: 3
Всего: 4



Советую пока не браться за написание своего движка...


--------------------
user posted image
PM   Вверх
BuShaRt
Дата 3.6.2007, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



abalich, 
Можно скачать готовые работы и посмотреть как там, или взять книгу по Pascal и тренировать логическое мышление.
PM MAIL   Вверх
abalich
Дата 3.6.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



Цитата

тренировать логическое мышление.

С логическим мышлением у меня все впорядке!! Я просто хотел узнать если код повторяется его  надо писать заноао или оно сохраняется!!!


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0586 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.