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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Ошибки Notice: нужна помощь... Undefined index: user in 
:(
    Опции темы
bscint13
Дата 24.6.2014, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!

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

Исправил или как правильнее будет, даже не знаю... скрипт версии PHP 4.2.0 подогнал для работы в PHP 5.3. Работает вроде бы всё корректно, однако решил сделать вывод всех ошибок через .htaccess и... занялся поиском в сети способов решения... честно 
говоря почти ничего не нашёл из подобного... Попробовал применить имеющиеся примеры CMS и запутался ещё больше...

Ниже привожу фрагменты кода скрипта и формулировку возникшей ошибки. 

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

Итак...

1. В файле config.php напротив session_start(); выдало: 

Notice: A session had already been started - ignoring session_start() in

Поставил перед session_start(); - собаку @ - получилось @session_start();

Больше ошибку не выдаёт...

А насколько это правильно??? даже не представляю...


2. следующий файл, фрагмент кода выглядит так:

Код

<?
session_start();
global $CONFIG,$REMOTE_ADDR;
$ref=$_SERVER['HTTP_REFERER'];


Выдало:

Notice: A session had already been started - ignoring session_start() in

напротив снова же session_start();

здесь использовал такой вариант...

Код

if(!isset($_SESSION)) {session_start();}


Ошибку больше не выдаёт, но насколько это правильно???

Далее 4 строка 
Код

$ref=$_SERVER['HTTP_REFERER'];


здесь выдало:  

Notice: Undefined index: HTTP_REFERER in

Применил такое решение: 

Код

if(isset($_SERVER['HTTP_REFERER']))$ref=$_SERVER['HTTP_REFERER'];


Правильно ли это??? Всё, что использовал сам, применил по примерам, которые нашёл в сети.


3. А вот в данных фрагментах даже не знаю, что делать...

Код

function login_ok()
    {
        global $REMOTE_ADDR;
        $SESSION = $_SESSION['user'];
        return isset($SESSION) && isset($SESSION["ip"]);
    }


строка 
Код

$SESSION = $_SESSION['user'];


Здесь выдало: 

Notice: Undefined index: user in

Оригинал данного фрагмента кода в PHP 4.2.0 выглядит так:

Код

function login_ok() {
    global $SESSION, $REMOTE_ADDR;
    return isset($SESSION)
        && isset($SESSION["user"])
        && isset($SESSION["ip"])
        ;
}



Ошибок много, однако пока остановлюсь на этих трёх.

Буду очень благодарен и признателен за реальную помощь и советы... Надеюсь на понимание!

PM MAIL   Вверх
ksnk
Дата 24.6.2014, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



При переписывании с 4-ки на 5-ку и далее на 5.3++ будет настолько много вылезших ошибок, что разумно переписать все заново ;)

1.2. Для session_start все сложно  smile 
С одной стороны - использование собаки - зло. С другой стороны - понять стартовала сессия или нет - довольно просто. isset($_SESSION) вполне достаточно, но вот только если кто-то ранее не присвоил внаглую этому массиву какое-то значение. Есть гарантия, что в проекте кто-то там чего-то там не присвоил?
Может оказаться, что  (session_id()=="") - вполне корректный признак того, что сессия еще не стартовала, но и тут есть некоторые нюансы. В общем, если бы приспичило таким заниматься лично мне - я бы сочинил что-то вроде
Код

function startsession(){
  if(session_id()=="") session_start();
}

добавил бы функцию в файл функций проекта и все start_session() заменил на sessionstart().
Хотя именно в этом месте, я бы не поморщился, если бы увидел и @session_start();

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

3. в "переписанном" коде пропало описание SESSION как глобальной переменной, что делает этот код не полностью таким же как старый. Вероятно, должно быть что-то вроде такого
Код

function login_ok() {
    global $SESSION, $REMOTE_ADDR;
    $SESSION=isset($SESSION["user"])?$SESSION["user"]:'';
    return isset($SESSION)
        && !empty($SESION)
        && isset($SESSION["ip"])
        ;
}


Добавлено через 2 минуты и 33 секунды
Код

$ref=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';

так будет, imho, более правильно. Просто потому, что после такого оператора значение $ref будет определено при любом раскладе.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bscint13
Дата 30.6.2014, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток!

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

Благодарю Вас ksnk за приведенные примеры и советы, а также за Ваше неравнодушие...

ksnk Вы совершенно правы, скрипт обязательно будет писаться с нуля, т.к. помимо того что делаю сейчас сам у него будут более глобальные задачи и цели - такого не было ещё в сети на протяжении последних 14 лет (собственно ранее тем более) - из просторов паутины в реальность...

Итак, вернусь к наболевшему, собственно Вашим примерам... всё по порядку...



1. Функция startsession();

Прописал в файле скрипта с функциями, как и Вы рекомендовали 

Код

function startsession(){
  if(session_id()=="") session_start();
}


и заменил session_start(); на startsession();

как полагаю замену следует произвести во всех файлах, где указан session_start();

Там где выдавало ошибку Notice уже не выдает, а вот в других местах, это файл скрипта - начало регистрации и другие... выдаёт:

Fatal error: Call to undefined function startsession() in

Как её исправить или стоит вернуть назад session_start(); для файлов где стало выдавать Fatal error:???



2. По примеру 
Код

$ref=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';


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

К примеру, вот такая ошибка...

Notice: Undefined index: sponsor_is in

Код

$prixod=$_COOKIE['sponsor_is'];


По вероятности должно подойти? Ошибка исчезает, но правильно ли это будет???



3. И по SESSION... кстати в чём разница между $SESSION и $_SESSION ??? искал, но не нашёл...

Указанный Вами пример или решение не подойдёт... дело в том, что в скрипте как бы копался один программист, боле 1,5 лет компоссировал мозги и в итоге так и не сделал ничего, за 
исключением некоторых моментов...

$SESSION в global не приемлема...

Итак сам код в котором выдаёт ошибку в строке 
Код

$SESSION = $_SESSION['user'];


Код

function login_ok()
    {
        global $REMOTE_ADDR;
        $SESSION = $_SESSION['user'];
        return isset($SESSION) && isset($SESSION["ip"]);
    }


А что если применить вариант из п.2 и в строке 
Код

$SESSION = $_SESSION['user'];
 прописать 

Код

$SESSION = isset($_SESSION['user'])?$_SESSION['user']:'';


Ошибку больше не выдаёт, однако ПРАВИЛЬНО ЛИ ЭТО???


Буду очень Вам ksnk признателен за советы и помощь и как говорил ранее - в долгу не останусь... добро никогда не забывается и поощряется...



И... если Вам не сложно будет, интересует решение подобных ошибок, даже не приложу ума как к ним подойти...


4. Три ошибки в двух строках 1-й и 4-й

Код

function codare_output($output){ // ???
for($count = 0; $count < strlen($output); $count++)
{
 $codat .= "%" . bin2hex($output[$count]); // ???
}
$tcodat="<script LANGUAGE=\"javascript\">\n<!-- \ndocument.write(unescape(\"$codat\"));\n//-->\n</SCRIPT>";
return $tcodat;
}


Notice: Undefined variable: CONFIG in Z:\home\work.net\www\stdlibre.php(71) : eval()'d code on line 1
Notice: Trying to get property of non-object in Z:\home\work.net\www\stdlibre.php(71) : eval()'d code on line 1
Notice: Undefined variable: codat in строке 4


Если перед $codat поставить @ ошибка в 4-й строке пропадает, а есть ли другое решение?

Подобные ошибки в таком коде

Код

function match_referer($good_referer = "") {
    if ($good_referer == "") { $good_referer = my_name_long(); }
    return $good_referer == get_referer();
} // ???


Notice: Undefined variable: CONFIG in Z:\home\work.net\www\stdlib.php(71) : eval()'d code on line 4
Notice: Trying to get property of non-object in Z:\home\work.net\www\stdlib.php(71) : eval()'d code on line 4





5. Notice: Undefined variable: errormsg in строке 4

Код

function get_referer() {
    global $HTTP_REFERER;
    return no_querystring(nvl($HTTP_REFERER));
} // ???



Наверное многое прошу, понимаю... однако буду очень благодарен за помощь и решение данных ошибок...

Искренне надеюсь на дальнейший диалог и сотрудничество.
PM MAIL   Вверх
ksnk
Дата 30.6.2014, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(bscint13 @  30.6.2014,  14:44 Найти цитируемый пост)
Fatal error: Call to undefined function startsession() in

Как её исправить или стоит вернуть назад session_start(); для файлов где стало выдавать Fatal error:???

Нужно подключить файл с функциями.
Цитата(bscint13 @  30.6.2014,  14:44 Найти цитируемый пост)
 Ошибка исчезает, но правильно ли это будет???
 Ну да, так же 
Код

$prihod=isset($_COOKIE['sponsor_is'])?$_COOKIE['sponsor_is']:'';

Оператор сделает примерно то же, но при этом не сгенерирует ошибку.
Цитата(bscint13 @  30.6.2014,  14:44 Найти цитируемый пост)
 кстати в чём разница между $SESSION и $_SESSION ???

$SESSION - личная переменная, заведенная, вероятно, чтобы хранить какую-то переменную. Ее нужно определять через global, чтобы увидеть внутри функции, $_SESSION - супер-глобальная (не нужно определять через global) переменная, в которой храниться образ сессии. Это две большие разницы.

4. там пока только  одна ошибка. Первые две возникают в stdlibre.php(71)  по каким-то другим причинам, которые кодом не отображены. $codat не определен. Нельзя использовать неопределенное значение. Можно, например, перед циклом присвоить ему пустое значение.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bscint13
Дата 1.7.2014, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Благодарю за ответ... честно говоря даже нечего комментировать... всё равно что физик историку напишет формулы в качестве объяснений...

Конечно, наивно было полагать... что вот так кто-то поможет с решением...

По Вашему 1 ответу... файл с функциями подключён... в противном случае просто бы не работал скрипт и соответственно не было ошибок... я не настолько грамотен и опытен, хотя со временем, кто знает...

А вот дальше вообще ни о чём... во всяком случае расценить можно вот возможно или так... 

Хорошо, благодарю... smile




Это сообщение отредактировал(а) bscint13 - 1.7.2014, 00:26
PM MAIL   Вверх
bscint13
Дата 10.7.2014, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вернёмся к предпоследнему посту...

Итак, есть код:

Код

function codare_output($output){ // ???
for($count = 0; $count < strlen($output); $count++)
{
 $codat .= "%" . bin2hex($output[$count]); // ???
}
$tcodat="<script LANGUAGE=\"javascript\">\n<!-- \ndocument.write(unescape(\"$codat\"));\n//-->\n</SCRIPT>";
return $tcodat;
}


и есть ошибка типа:

Notice: Undefined variable: codat in строке 4

P.S. Данный код единственный и находится в файле с различными функциями в библиотеке скрипта. Загружается через файл конфигурации в корне сайта методом require();

$codat  присутствует только в этом коде и больше нигде в файлах скрипта не фигурирует...

ВОПРОС... Как её задать и где прописать...

Заранее благодарен за помощь... 

Если собакой @ нельзя устранить данную ошибку, то как её можно исправить?



И... второй вопрос...


Код

$prixod=$_COOKIE['sponsor_is'];


и соответственно ошибка...

Notice: Undefined index: sponsor_is in

Свой вариант или способ ранее указал.... А каково правильное решение всё же...???

Это правильно, то что Вы указали, ksnk...???

Код

$prihod=isset($_COOKIE['sponsor_is'])?$_COOKIE['sponsor_is']:'';


Это сообщение отредактировал(а) bscint13 - 10.7.2014, 17:09
PM MAIL   Вверх
Aliance
Дата 10.7.2014, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



1. У вас цикл не запускает ни одной итерации, отсюда и переменная codat не объявляется. Не запускается цикл потому, что strlen($output) возвращает 0. Есть два пути решения проблемы:
а) перед телом цикла объявить пустую переменную codat - но тогда если итераций цикла не будет - выведется пустой яваскрипт код. Но зато без ошибок. (это не правильный путь, он устранит пхп фатал, но не устранит логическую ошибку)
б) проверять на длину строки output, если она пустая - сразу же возвращать пустоту. Выглядеть будет примерно так:
Код

function codare_output($output) {
   if (empty($output)) {
      return '';
   }
   $codat = '';
   for ($i = 0, $count = strlen($output); $i < $count; $i++) {
      $codat .= '%' . bin2hex($output[$count]);
   }
   $return empty($codat) ? '' : '<script type="text/javascript">document.write(unescape("$codat"));</script>';
}



2. опять-таки, если говорить о методе избавления от пхп фатала, но делать нужно так:
Код

$prixod = isset($_COOKIE['sponsor_is']) ? $_COOKIE['sponsor_is'] : '';

Но на сколько это логически верно вам мало кто скажет, не погружаясь в ваш скрипт.
PM MAIL WWW ICQ Skype   Вверх
bscint13
Дата 10.7.2014, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Благодарю Вас, Aliance за помощь. По первому пока не знаю, как проверю - отпишусь обязательно (данная функция, код, кодируют определённые фрагменты кода в файлах скрипта), а вот второй вопрос, Вы правы - это единственно верное решение... 


А Вы не подскажите решение вопроса с session_start(); - описанный чуть ранее в моих постах???

Вариант предложенный ksnk при замене во всех файлах выдаёт другую ошибку...

Это сообщение отредактировал(а) bscint13 - 10.7.2014, 18:05
PM MAIL   Вверх
bscint13
Дата 10.7.2014, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

function codare_output($output) {
   if (empty($output)) {
      return '';
   }
   $codat = '';
   for ($i = 0, $count = strlen($output); $i < $count; $i++) {
      $codat .= '%' . bin2hex($output[$count]);
   }
   $return empty($codat) ? '' : '<script type="text/javascript">document.write(unescape("$codat"));</script>';
}


Parse error: syntax error, unexpected T_EMPTY in on line 9

Перед двойными кавычками ставил слеш \, однако и ошибка не исчезла и скрипт не запускается... В чём подвох???  smile 
PM MAIL   Вверх
bscint13
Дата 10.7.2014, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нашёл эту ошибку в строке 9... это $return, здесь лишнее, скорее опечатка ... $ или я ошибаюсь???

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


Notice: Uninitialized string offset: 750 in on line 7

Код

function codare_output($output) {
   if (empty($output)) {
      return '';
   }
   $codat = '';
   for ($i = 0, $count = strlen($output); $i < $count; $i++) {
      $codat .= '%' . bin2hex($output[$count]);
   }
   return empty($codat) ? '' : '<script type="text/javascript">document.write(unescape("$codat"));</script>';
}



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


Новичок



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

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



Aliance, вероятно я поторопился с благодарностью и был очень невнимателен...

Вот Ваше решение, собственно код:

Код

function codare_output($output) {
   if (empty($output)) {
      return '';
   }
   $codat = '';
   for ($i = 0, $count = strlen($output); $i < $count; $i++) {
      $codat .= '%' . bin2hex($output[$count]);
   }
   $return empty($codat) ? '' : '<script type="text/javascript">document.write(unescape("$codat"));</script>';
}


опечатка не в счёт, механически бывает...  строка 9 -  $return

А вот код оригинала...

Код

function codare_output($output){ // ???
for($count = 0; $count < strlen($output); $count++)
{
 $codat .= "%" . bin2hex($output[$count]); // ???
}
$tcodat="<script LANGUAGE=\"javascript\">\n<!-- \ndocument.write(unescape(\"$codat\"));\n//-->\n</SCRIPT>";
return $tcodat;
}


Вопрос... куда девалась $tcodat?????
PM MAIL   Вверх
_zorn_
Дата 11.7.2014, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Aliance @  11.7.2014,  01:16 Найти цитируемый пост)
У вас цикл не запускает ни одной итерации

Не так. Просто при первой итерации $codat не существует и конструкция .= выдает нотайс.
Цитата(bscint13 @  11.7.2014,  07:23 Найти цитируемый пост)
Вопрос... куда девалась $tcodat????? 

Все там правильно. Он не нужен.
У меня другой вопрос, а цикл точно правильный. Он тупо повторяет последний символ из $output. Не должен ли он выглядеть так ?
Код
$codat .= "%" . bin2hex($output[$i]);


И еще, $output это масив или строка ?
Если массив, то почему strlen ? Если строка, то к чему bin2hex ?


Это сообщение отредактировал(а) _zorn_ - 11.7.2014, 02:43
PM MAIL   Вверх
Aliance
Дата 11.7.2014, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



$output[$i] вместо $output[$count] и return без знака доллара. В остальном все ок должно быть smile

Цитата(_zorn_ @  11.7.2014,  03:38 Найти цитируемый пост)
И еще, $output это масив или строка ?

Это строка. а bin2hex нужна для конвертации строки посимвольно в ASCII
PM MAIL WWW ICQ Skype   Вверх
bscint13
Дата 11.7.2014, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Благодарю Вас, _zorn_ и Aliance за помощь в решении данного вопроса, ошибки устранены...

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

Есть вот файлик скрипта с таким кодом...

Код

session_start();
session_destroy();
$who=$_GET['refId'];
$ref=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';
unset($HTTP_SESSION_VARS["sponsor"]);
unset($HTTP_SESSION_VARS["random"]);
setcookie("sponsor_is", "", time()-3600);
setcookie("sponsor_is", $who, time()+24*60*60*365);
require_once("base_con.php");
$s=mysql_query("select * from users where username='".strtolower($who)."'");

if(mysql_num_rows($s)<1){$s=mysql_query("select * from users where id='1'");}
@session_register("sponsor");
$HTTP_SESSION_VARS["sponsor"]=mysql_fetch_array($s);
$r=mysql_query("INSERT INTO `hits` (`username`,`refer`,`ip`,`date`)
VALUES ('".$who."','$ref','$REMOTE_ADDR',now())");
echo "<meta http-equiv='Refresh' content='0; url=index.php'>";


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

NOTICE: Undefined variable: REMOTE_ADDR in on line 16

Просто удалить $REMOTE_ADDR или есть другое решение???



Это сообщение отредактировал(а) bscint13 - 12.7.2014, 15:22
PM MAIL   Вверх
bscint13
Дата 12.7.2014, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Исходя из всеобще-солидарного молчания или безразличия единственно правильное решение - это удаление $REMOTE_ADDR из строки в 16-й линии...

Или всё же есть другое решение???  smile 
PM MAIL   Вверх
_zorn_
Дата 14.7.2014, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код
$REMOTE_ADDR=$_SERVER['REMOTE_ADDR']; 

перед 15 строкой.
PM MAIL   Вверх
bscint13
Дата 14.7.2014, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(_zorn_ @ 14.7.2014,  08:50)
Код
$REMOTE_ADDR=$_SERVER['REMOTE_ADDR']; 

перед 15 строкой.

Благодарю _zorn_!!! Если правильно понимаю, данный код необходимо прописать перед 15 строкой, а в 16-й - удалять ничего не надо, правильно???

И, если можно, всё же, подскажите, что это за ошибки и как с ними бороться??? Хотя бы на примере...

Notice: Undefined variable: CONFIG in Z:\home\work.net\www\stdlib.php(71) : eval()'d code on line 4
Notice: Trying to get property of non-object in Z:\home\work.net\www\stdlib.php(71) : eval()'d code on line 4


Код

function match_referer($good_referer = "") {
    if ($good_referer == "") { $good_referer = my_name_long(); }
    return $good_referer == get_referer();
} // ???


Код

function get_referer() {
    global $HTTP_REFERER;
    return no_querystring(nvl($HTTP_REFERER));
} // ???


Заранее признателен за помощь и советы...  smile 
PM MAIL   Вверх
Aliance
Дата 14.7.2014, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



bscint13, наймите уже профессионала и заплатите ему за работу. Вы задаете такие вопросы, что вам их и не объяснить в две строчки, потому что каждому тут понятно, что вам не особо-то и нужно в этом разбираться, вам нужно чтобы работало. И получается что топик из "подскажите" перерос в "перепишите за меня бесплатно". А людям это не по душе.

Что касается ваших ошибок (не понятно зачем вы эти два листинга привели - они к ошибкам не относятся) - то там же все написано. Первый нотик - неопределенная переменная, а второй - обращение в свойству не объекта (не определенная переменная объекта). Кроме того везде глобальные переменные и прочая древность. Это все нужно писать заново.
PM MAIL WWW ICQ Skype   Вверх
bscint13
Дата 14.7.2014, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Aliance... В жизни бывают разные ситуации... и как Вы думаете, если бы я имел возможность заплатить, торчал бы здесь в ожиданиях??? Да, и до "перепишите за меня  бесплатно" ох как далеко... К кому то знания приходят из книг, а к кому-то - временем без чтения книг, полных воды... Были бы наглядные примеры, я бы и не обращался, однако их нет и поэтому я здесь...

Благодарю Вас за разъяснения по данным ошибкам...  smile  smile 

Наверное форумы для этого и существуют??? Или у них другое предназначение???

Благодарю за внимание!  smile  smile  smile 

P.S. Да... а кого давит жаба - может просто мимо пройти, не помогая... Интеллект - это не привилегия... могу и дальше продолжить, кто знает поймёт...



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


Новичок



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

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



Очень надеюсь, что это последний мой вопрос или просьба в помощи... описывал в самом начале данной темы, но так и не пришёл к правильному решению...

Есть два кода... первый в файле конфигурации...

Код

session_start();
session_register("sponsor");


и второй в библиотеке функций скрипта...

Код

<?
session_start();
global $CONFIG,$REMOTE_ADDR;


session_start(); присутствует и в других файлах, но ошибку выдаёт только по указанным двум страницам... Суть ошибки...

Notice: A session had already been started - ignoring session_start() in

Я использовал в обоих вариантах...

Код

if(!isset($_SESSION)) {session_start();}


Правильно ли это? Если нет... то почему... и есть одно, что смущает - в файлах скрипта отсутствует где-либо $_SESSION, есть только $SESSION

Надеюсь всё же на понимание и помощь...  smile 

Это сообщение отредактировал(а) bscint13 - 14.7.2014, 15:22
PM MAIL   Вверх
bscint13
Дата 16.7.2014, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как выразился Aliance... людям это не по душе... понятно...

Однако, Вы забыли простую истину... добро всегда вознаграждается... Если сейчас не могу отблагодарить, это не говорит о том, что когда будет возможность не сделаю этого... не все же иудочеловеки...???  smile 

Всё же очень надеюсь на помощь по последнему моему посту с session_start
PM MAIL   Вверх
ksnk
Дата 16.7.2014, 10:05 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



bscint13, Какая задача решается? 
Если - повышение собственного уровня владения PHP - то задача решается не с той стороны. Нужно изучать более современные способы программировать на PHP. Начинать изучение программирования с ###кодинга - неправильно  smile 
Если задача - "убрать нотисы из лога", то смысл этой задачи мне лично непонятен. Правильное решение - переписать все заново. Еще одно правильное решение - заткнуть вывод нотисов вообще. Медленное и печальное затыкание каждой конкретной точки протечки - источник дополнительных ошибок, не меняющий ни логику работы ни скорость и не приносящий пользу самому программисту. Бессмысленная потеря времени.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bscint13
Дата 31.7.2014, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемый ksnk! Вновь приношу извинения за столь поздний ответ, обстоятельства... 

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

А вот совершенствовать свой PHP я совершенно не собираюсь, во-первых у меня нет своего PHP, я его не изучал и не собираюсь изучать, а во-вторых - считаю каждый должен заниматься своим делом и выполнять своё предназначение, да и в третьих - форумы и существуют для того, чтобы находить ответы на интересующие вопросы и помощь, а не выслушивать различные нравоучения и упрёки...

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

В принципе полагаю доступно дал ответ на Ваш вопрос...???
PM MAIL   Вверх
IgorIV
Дата 31.7.2014, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(bscint13 @  16.7.2014,  00:06 Найти цитируемый пост)
 не все же иудочеловеки...???

Вот только не надо таких слов. Все уже поняли, что ты пытаешся деньги заработать. Поэтому, пенять на то, что люди не хотят переписывать за тебя весь скрипт - это неэтично. А вопрос - для чего существуют форумы - задают обычно те, кто хочет выехать на чужом горбе. Вопрос не в том, что ты не знаешь, в данном случае PHP, а в том, что ты и не хочешь знать. Сейчас вопрос по PHP, потом по Javascript, потом по платежке и т.д. 
Так какое твоё предназначение? Каким делом ты занимаешся? Зачем тебе PHP? И что у тебя совсем денег нет? Нет денег, возьми в долю ...

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


Новичок



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

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



Цитата(IgorIV @ 31.7.2014,  19:12)
Цитата(bscint13 @  16.7.2014,  00:06 Найти цитируемый пост)
 не все же иудочеловеки...???

Вот только не надо таких слов. Все уже поняли, что ты пытаешся деньги заработать. Поэтому, пенять на то, что люди не хотят переписывать за тебя весь скрипт - это неэтично. А вопрос - для чего существуют форумы - задают обычно те, кто хочет выехать на чужом горбе. Вопрос не в том, что ты не знаешь, в данном случае PHP, а в том, что ты и не хочешь знать. Сейчас вопрос по PHP, потом по Javascript, потом по платежке и т.д. 
Так какое твоё предназначение? Каким делом ты занимаешся? Зачем тебе PHP? И что у тебя совсем денег нет? Нет денег, возьми в долю ...

Каждый судит по себе... а насчёт в долю... я уж лучше сам, хватило за 14 лет...  долевиков - партнёров smile  А в отношении отсутствия денег - в жизни бывают разные ситуации... и в отношении на ЧУЖОМ ГОРБУ... как написал вначале, каждый судит по себе... адью...  smile 

Это сообщение отредактировал(а) bscint13 - 31.7.2014, 20:21
PM MAIL   Вверх
IgorIV
Дата 31.7.2014, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(bscint13 @  31.7.2014,  20:20 Найти цитируемый пост)
каждый судит по себе... 

Ой не всегда, зачастую некоторым людям проще напрячь других, чем немного подумать самому. 
Да согласен, бывают разные ситуации, но ты с начала года пытаешься залатать некий скрипт, между тем как за это время можно было новый написать, не с нуля, но по аналогии со старым.
И да, я сужу по себе. Если у меня есть уважение к другим пользователям форума, то я не буду спрашивать очевидные вещи. 
- Профессор! У меня программа не работает! Что делать, где ошибка?
- Очевидно в генах ...
PM MAIL   Вверх
bscint13
Дата 1.8.2014, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(IgorIV @ 31.7.2014,  23:58)
Цитата(bscint13 @  31.7.2014,  20:20 Найти цитируемый пост)
каждый судит по себе... 

Ой не всегда, зачастую некоторым людям проще напрячь других, чем немного подумать самому. 
Да согласен, бывают разные ситуации, но ты с начала года пытаешься залатать некий скрипт, между тем как за это время можно было новый написать, не с нуля, но по аналогии со старым.
И да, я сужу по себе. Если у меня есть уважение к другим пользователям форума, то я не буду спрашивать очевидные вещи. 
- Профессор! У меня программа не работает! Что делать, где ошибка?
- Очевидно в генах ...

smile smile  smile   

Знаешь, умный и мудрый прошёл бы мимо... а про гены, это ты про себя написал???  smile  smile  smile 

Это сообщение отредактировал(а) bscint13 - 1.8.2014, 00:25
PM MAIL   Вверх
Aliance
Дата 1.8.2014, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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




M
Aliance
Тему закрываю, дабы пресечь дальнейший оффтопик. При возникновении новых вопросов - требуется создать новый топик.

PM MAIL WWW ICQ Skype   Вверх
Страницы: (2) [Все] 1 2 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "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.1527 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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