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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> error.log сайта, ограничение логов, ошибки сайта 
V
    Опции темы
nicka47
Дата 11.7.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



skyboy, все поняла, спасибо.

ПРоблема прояснилась, буду разбираться, всем спасибо smile 

PM MAIL   Вверх
Feldmarschall
Дата 11.7.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Я уже писал - кому на руку. Разработчику. приводил примеры, целых два.

Цитата(nicka47 @  11.7.2008,  11:58 Найти цитируемый пост)
но как?? сайт у меня работает

Это правда. ворнинги бывают разные. чаще всего они означают, что строка с такой ошибокй просто не работает, к примеру - самый первый, который ты привела.
В последнем же ошибка не критическая. В коде функции по отправке почты, при вызове функции fsockopen перед какой-то переменной стоит значок &. Он там нафиг не нужен и его надо оттуда убрать.

Цитата(nicka47 @  11.7.2008,  11:58 Найти цитируемый пост)
акой ужас? это вы о каком коде? 

$$k=$v; - вот об этом.
первая переменная - это имя. вторая - значение. хакер просто пишет в адресной строке имя значение любой переменной, а этот код добросовестно перезаписывает любую переменную сайта.

Цитата(nicka47 @  11.7.2008,  11:58 Найти цитируемый пост)
вопрос с необьявленными переменными - как надо делать это правильно,

Это самый сложный вопрос из всех.
В большинстве языков программирования переменную надо обязательно объявить перед использованием. просто сказать скрипту, что мы будем использовать такие-то переменные. 
В самом начале, когда только Расмус Лердорф писал язык РНР, он подумал, что это неудобно, и можно использовать переменную сразу, как только она была написана (как в бейсике). 
Но со временем, когда язык стал развиваться, стало понятно, что это прямая дорога к ошибкам и проблемам. На эту тему есть анекдот:
Цитата

Мальвина дала Буратину два яблока. Некто взял у него одно яблоко. Сколько яблок осталось у Буратино?
Правильный ответ: неизвестно. Мы не знаем, сколько яблок было у Буратино до этого.
Мораль: надо инициализировать переменные перед использованием.


Можно перечислить в самом начале скрипта все переменные, которые мы будем использовать.
К примеру, если у нас используется переменная $i, то можно написать
Код

$i=0;

И у нас в скрипте теперь будет переменная, значение которой мы точно знаем.
И так надо поступить со всеми переменными, используемыми в скрипте.
Но с данными, приходящими из браузера, так не получится. Мы же не можем предугадать, какое значение они будут иметь?
поэтому надо писать специальный код
не $var="";
а
Код

if (isset($_POST['var'])) $var=$_POST['var']; else $var="";
if (isset($_POST['var1'])) $var1=$_POST['var1']; else $var1="";
if (isset($_POST['var2'])) $var2=$_POST['var2']; else $var2="";


Главное достоинство этого кода в том, что мы здесь контролируем, какие переменные пускать в свой скрипт, а какие - не пускать. В отличие от твоих циклов, которые запускают всех без разбору.



PM   Вверх
nicka47
Дата 11.7.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Feldmarschall @  11.7.2008,  12:54 Найти цитируемый пост)
Я уже писал - кому на руку. Разработчику. приводил примеры, целых два.

 да нет же, если мне как разработчику , понадобиться прочитать ошибки, я сделаю это локально у себя, а на реальном сервере это только приводит к раздуванию логов, что мне, как разработчику не нужно, так как с меня , как с разработчика, идет спрос заказчика.

Добавлено через 3 минуты и 41 секунду
Feldmarschall,  спасибо, кое что начинаю понимать. совершенно не учитывала такие важные вопросы до сих пор. Большой пробел в работе
PM MAIL   Вверх
Feldmarschall
Дата 11.7.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Ты правда думаешь, что ошибки могут появляться только при разработке сайта, а при работе никогда никаких ошибок не бывает?

К примеру, ошибка - файл не найден. На хосте файла нет, а дома - есть.
И как ты собираешься эту ошибку "методом домашнего запуска" исправлять?

вот, почитай ещё здесь: http://phpfaq.ru/debug2

Это сообщение отредактировал(а) Feldmarschall - 11.7.2008, 13:24
PM   Вверх
skyboy
Дата 11.7.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(nicka47 @  11.7.2008,  12:03 Найти цитируемый пост)
 я сделаю это локально у себя, а на реальном сервере это только приводит к раздуванию логов

нет. ты не права. невозможно сделать программу без единой ошибки(логической, алгоритмической) или хотя бы - без единого недочета.
и у себя локально ты сможешь обнаружить только самые явные ошибки. 
то, что при передаче отрицательного числа через форму у тебя нарушается структура каталога ты можешь  не заметить. а в "полевых условиях" рано или поздно это всплывет. так зачем себюе перекрывать кислород? да, и есть вещи, которые локально могут не работать(например, обращение к консоли через system или отправка эл. почты через mail() вполне может не работать под windows).

Добавлено через 5 минут и 45 секунд
Цитата(skyboy @  11.7.2008,  12:28 Найти цитируемый пост)
и у себя локально ты сможешь обнаружить только самые явные ошибки. 

и это не оскорбление. такая уж специфика - невозможно протестировать на всех возможных данных.
PM MAIL   Вверх
nicka47
Дата 11.7.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



поверте, я прекрасно понимаю, что невозможно писать без ошибок, что возможны всевозможные варианты, и куча  внезапновозникающих непредвиденных вариантов в ходе работы. Может не так глубоко, но я занимаюсь этим уже 10 лет, некоторый опыт есть.

Я не про то удивилась, я была удивлена тем, что кто-то на сервере изменил параметр репортинга ошибок пшп, который стоит по молчанию, я не понимаю кому это может быть нужно кроме самого разработчика, то есть меня, вот и все.

Добавлено через 8 минут и 10 секунд
 smile    smile 
меня нужно дисквалифицировать
PM MAIL   Вверх
skyboy
Дата 11.7.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(nicka47 @  11.7.2008,  12:52 Найти цитируемый пост)
меня нужно дисквалифицировать

т.е. вариант с обучением не подходит? не реализуем?
PM MAIL   Вверх
nicka47
Дата 11.7.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



skyboy,  за все прежние ошибки
PM MAIL   Вверх
Feldmarschall
Дата 11.7.2008, 14:17 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



все прежние ошибки наоборот - повышают ценность разработчика.
ну, если он делает из них выводы, конечно. 
PM   Вверх
nicka47
Дата 14.7.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



обьясните пожалуйста в чем разница между этими 2-мя кодами, и почему первый правильный, а второй  - нет?

Код

if (isset($var)) {
    echo "This var is set so I will print.";
}




Код

if ($var) {
    echo "This var is set so I will print.";
}


PM MAIL   Вверх
bars80080
Дата 14.7.2008, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



а если у тебя нет переменной $var? ошибка вылетит


if - проверяет, что в скобках true или false, а если переменной нет, то каков результат?

Это сообщение отредактировал(а) bars80080 - 14.7.2008, 13:38
PM MAIL WWW   Вверх
Feldmarschall
Дата 14.7.2008, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Второй тоже правильный. Вне контекста вопрос не имеет смысла.

Добавлено через 6 минут и 55 секунд
Цитата(bars80080 @  14.7.2008,  13:37 Найти цитируемый пост)
если переменной нет, то каков результат?

false. учим букварь

Это сообщение отредактировал(а) Feldmarschall - 14.7.2008, 13:44
PM   Вверх
nicka47
Дата 14.7.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



поняла,


обьясниет пожалуйста, что делает данный код:


Код

if ($HTTP_SESSION_VARS){
     for(reset($HTTP_SESSION_VARS); list($k,$v)=each($HTTP_SESSION_VARS);) {$$k=$v;}
     };


Добавлено через 5 минут и 13 секунд
и еще, что означает эта строчка?

Код

 $method = $_SERVER['REQUEST_METHOD'];

PM MAIL   Вверх
Feldmarschall
Дата 14.7.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Добавление - это шутка?

Добавлено через 1 минуту и 13 секунд
Цитата(nicka47 @  14.7.2008,  13:50 Найти цитируемый пост)
поняла,

сказать по правде, я сильно в этом сомневаюсь
PM   Вверх
nicka47
Дата 14.7.2008, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Feldmarschall @  14.7.2008,  13:57 Найти цитируемый пост)
Добавление - это шутка?
, нет, не шутка, прошу обьяснить что дает получение значения REQUEST_METHOD 



Цитата(Feldmarschall @  14.7.2008,  13:38 Найти цитируемый пост)
Вне контекста вопрос не имеет смысла.

мне кажеться имеет, потому что меня интересовала разница между тем, чтобы просто обратиться к переменной и обратиться к ней первым способом. 

Цитата(Feldmarschall @  14.7.2008,  13:57 Найти цитируемый пост)
сказать по правде, я сильно в этом сомневаюсь 


Теперь понимаю, что второй  вариант выбрасывает ошибку, если переменная неопределена, которая как раз наполняет логи нотисами. Значит надо либо сперва инициализироватьпеременную с которой работаешь, либо,е сли она приходит извне, надо определить есть ли она вообще, иначе выйдет ошибка.. что то не так?

Вы считаете я задаю глупые вопросы? Мне так кажеться исходя из ваших слов.  Я просто пытаюсь 
разобраться в теме, которая мне непонятна , на которую до сих пор я не обращала внимание

PM MAIL   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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