Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2012, 19:40   #1
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию проверить код и защита

кому не сложно посмотрите на ошибки код?
PHP код:
class files extends basic{
#Начало класса для работы с файлами
#функция срабатывает при создании обьекта
function __construct(){
Include_once(
'./basic.class');
parent::__construct();
}
#Количество записей в БД
public function count(){
if(
$connect){
$count=mysql_query("SELECT COUNT(*) FROM ".TFILE) or die(mysql_errno($connect)." : ".mysql_error($connect));
return 
$count;
}}

#Добавить запись о новом файле
public function add($name$email$furl$size$about$fdate$fdate_del){
if(
$connect){
$q="INSERT INTO ".CONST_DBTABLE." SET name='$name', email='$email', furl='$furl', size='$size', about='$about', fdate='$fdate', fdate_del='$fdate_del'";
mysql_query($q) or die(mysql_errno($connect)." : ".mysql_error($connect));
}
}

#Удалить запись по ее имени
public function del($name){
if(
$connect){
$q="DELETE FROM ".CONST_DBTABLE." WHERE ".FILE_NAME."=$name";
$res=mysql_query($q) or die(mysql_errno($connect)." : ".mysql_error($connect));
}
}

#Обновить запись по ее имени
public function update($name$furl$fdate$email$about){
if(
$connect){
$z="UPDATE ".CONST_DBTABLE." SET ".FILE_NAME".=$name, ".FILE_FURL."=$furl, ".FILE_FDATE."=$fdate, ".FILE_EMAIL."=$email, ".FILE_ABOUT."=$about";
$repl=mysql_query($z);
}
}

#Сравнение даты с записью в БД (возвращает array имя)
private function compare(){
$date=date(Y-m-d);
while(
$row=mysql_fetch_array($files))
if(
$date>$row['fdate_del']){
$fdate_del[]=$row['fdate_del'];
$name[]=$row['name'];
}
$result=array($array$name);
return 
$result;
}

#Перебирает и удаляет файл и запись по истечению времени
public function compare_del(){
$mass=self::compare();
$count=count($mass);
$i=0;
while(
$i<$count):
$this->del($mass['name'][$i]);
$i=$i++;
endwhile;
}

#Запись в лог файл
public function logs($text){
$w="$text \r \n";
$log_file="./logs/".FILE_LOGS;
if(
file_exists($log_file)){
$file=fopen($log_filea+);
$result=fwrite($file$w);
if(
$result){
return 
true;
}else{
return 
false;
}
$fclose($file);
}}

#Конец класса для работы с файлами

Там использованы константы в некоторых местах, и как можно защитить себя что бы в поле для ввода текст не ввели скажем какой нибудь скрипт?
cargo29 вне форума Ответить с цитированием
Старый 23.10.2012, 23:31   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Да тут даже смотреть не на что, ошибки в каждой строчке. Вы хотя бы попробуйте запустить Это, увидите где и как начнет валиться. А вообще для начала книжки почитайте php + mysql, иначе толку от разбора такого кода все равно не будет
Cronos20 вне форума Ответить с цитированием
Старый 24.10.2012, 06:11   #3
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

покажите хотя бы одну ошибку посмотреть на нее )
cargo29 вне форума Ответить с цитированием
Старый 24.10.2012, 10:04   #4
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

Цитата:
Сообщение от cargo29 Посмотреть сообщение

public function count()
dem66 вне форума Ответить с цитированием
Старый 24.10.2012, 11:43   #5
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Код:
if($connect){
Переменная $connect повсюду! Она откуда берется? Коннект из воздуха?
Код:
$count=mysql_query("SELECT COUNT(*) FROM ".TFILE) or die(mysql_errno($connect)." : ".mysql_error($connect)); 
return $count;
Посмотрите, что возвращает mysql_query ... удивитесь
Код:
INSERT INTO ".CONST_DBTABLE." SET name='$name'
Изучаем SQL ... синтаксис INSERT совсем другой
Код:
private function compare(){ 
......
$mass=self::compare();
Обращение к нестатическому методу
Код:
if($result){ 
return true; 
}else{ 
return false; 
} 
$fclose($file);
Просто 5 баллов

Код:
$date=date(Y-m-d); 
if($date>$row['fdate_del']){
Полная анархия как со string, так и с date

Код:
$file=fopen($log_file, a+);
Неизвестная константа a, которой еще хотят что-от плюсануть

Почитайте как нужно форматировать код (не для форума, а для себя)
Cronos20 вне форума Ответить с цитированием
Старый 24.10.2012, 11:55   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Cronos20 Посмотреть сообщение
Код:
INSERT INTO ".CONST_DBTABLE." SET name='$name'
Изучаем SQL ... синтаксис INSERT совсем другой
Справедливости ради замечу, что это вполне допустимый синтаксис:
Код:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверить код delfin07 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 21.02.2012 13:58
Delphi 7 - нужно проверить исходный код сортировки таблицы. raymond100 Помощь студентам 0 21.12.2011 20:50
Прошу проверить код pandaaaaa Паскаль, Turbo Pascal, PascalABC.NET 6 14.12.2011 01:58
Задача на цикл(Проверить код) Molotok Помощь студентам 1 29.12.2008 11:20
Прошу проверить код программы Pashtet Паскаль, Turbo Pascal, PascalABC.NET 1 19.11.2008 11:50