Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: передача параметров

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
kid26
Отправлено: 17 Апреля, 2015 - 15:33:01
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




есть скрипт, который работал на 4.х и после перехода на 5.2 работать перестал начисто, не передает и невидит параметры из командной строки. ничего не пойму, начал с начала - на этом сайте есть урок:
наиболее простой способ передачи имени сценарию — непосредственный набор его в URL после знака ? — например, в формате name=имя
Делаю:
s1.php?name=имя

Пишу скрипт, принимающий параметр name и выводящий результат в браузер пользователя, а затем сохраняю его под именем s1.php:
<?php
echo "Привет, $_GET['name'] !";
?>

В результате ощибка
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /.../s1.php on line 2

Что в примере неправильно? или как 5.2 настроить, чтоб работал хотя бы этот пример?
параметр потерялся, но почему, помогите кто знает.
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Апреля, 2015 - 15:37:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Поставить 5.5
 
 Top
kid26
Отправлено: 17 Апреля, 2015 - 15:41:23
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




[quote=DeepVarvar][/quote]
почему это поможет?
(Добавление)
уроки типа http://www.php.su/learnphp/vars/?external - это для какой версии? поменяю версию и другой скрипт начнет глюкать.
Я перерыл кучу текстов с описанием различий версий, запутался полностью.
Может есть где-нибудь простая срвнительная таблица, в чем отличме версий по обработке переменных команднеой строки и при передаче из формы?
 
 Top
esterio
Отправлено: 17 Апреля, 2015 - 16:53:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




 
 Top
kid26
Отправлено: 17 Апреля, 2015 - 17:21:57
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




[quote=DeepVarvar][/quote]
Если шутка, то веселее не стало. Ошибка исчезла, параметры не передаются.
в. 5.5.11
запрос http://s1.php?name=gggggppppp
выдает
Привет, !
ПАРАМЕТРА не видит name
(Добавление)
esterio пишет:
есть http://php.net/manual/ru/appendices.php

Спасибо, там везде написано, что можно передавать в ком строке параметры типа в этом примере. Нет в новых версий запретов на ето. Вот только скрипт не видит этих данных.
Из-за чего таое може быть?
(Добавление)
DeepVarvar пишет:
Поставить 5.5

поставил 5.5.11
ошибочки появились
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/../config.php on line 9

Fatal error: Call to undefined function session_register() in /home/../config.php on line 74

Warning: Unknown: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0

Можно этому горю помочь?
 
 Top
exlant
Отправлено: 17 Апреля, 2015 - 23:13:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




Deprecated: mysql_connect(): - изучать другое API, например MySqli или PDO, MYSQL устарело, и будет удаленно в следующей версии php!

Fatal error: Call to undefined function session_register() - Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

а вообще вообще самый лучший вариант - это научиться использовать гугл, все эти ошибки элементарно гуглятся, и ответ можно найти в первых двух-трех ссылках!
 
 Top
respect_all
Отправлено: 19 Апреля, 2015 - 18:35:38
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




kid26 пишет:
есть скрипт, который работал на 4.х и после перехода на 5.2 работать перестал начисто, не передает и невидит параметры из командной строки. ничего не пойму, начал с начала - на этом сайте есть урок:
наиболее простой способ передачи имени сценарию — непосредственный набор его в URL после знака ? — например, в формате name=имя
Делаю:
s1.php?name=имя

Пишу скрипт, принимающий параметр name и выводящий результат в браузер пользователя, а затем сохраняю его под именем s1.php:
<?php
echo "Привет, $_GET['name'] !";
?>

В результате ощибка
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /.../s1.php on line 2

Что в примере неправильно? или как 5.2 настроить, чтоб работал хотя бы этот пример?
параметр потерялся, но почему, помогите кто знает.


Конкатенация в помощь echo 'Привет, '. $_GET['name'];
 
 Top
kid26
Отправлено: 20 Апреля, 2015 - 16:11:46
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




respect_all пишет:
научиться использовать гугл

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

Вот живая проблема, которую и пытаюсь решить:
в файле index.php есть ссылка
&nbsp;&nbsp;&nbsp;&nbsp; <a href="index.php?side=option">Настройки</a>
&nbsp;&nbsp;&nbsp;&nbsp; <a href="index.php?side=profiles">Профили</a>

Дальше в этом же файле
if((!@$side) or (@$side == 'motels')) {
...111
}
if(@$side == 'option') {...
...222
}
if(@$side == 'profiles') {
<h3>Редактирование профилей</h3><br>
...333
}
При нажатии на ссылки они же и перерисовываются и выполняется первый иф 111
Надеюсь понятно в чем проблема, текст сокращаю лишний.
Это все работало в 4.х, попадало соответственно в 222 или 333, в 5х не работает.

exlant, помоглите это траблу погуглить. И вы так радостно говорите об изменениях в новых версиях что мне это подход ММ напоминает, когда новые версии отрицают старые наработки. Ничего хорошего в этом нет, по-моему. Не все же хацкеры крутые, хочется просто юзать скрипты, хоть они и старые.
 
 Top
exlant
Отправлено: 20 Апреля, 2015 - 17:26:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




Совет! Не читайте старые книги по языкам программирования! Если книге 2-3 года ее, можно считать уже устаревшей! А пятая версия PHP была выпущена разработчиками еще в 2004 году! Я так понимаю вашим книгам, больше 10 лет, это ппц как много для такой отрасли, как программирование и для компьютеров в общем! 10 лет назад люди еще во всю тормознутым dial-up пользовались! И венчестеры были по 40-60Гб, да и ОС другие были... Ничто не стоит на месте все развивается а в компьютерной отрасли десятимильными шагами!

По вашему вопросу все делается очень просто.. Есть суперглобальный массив _GET, вот его и используйте!
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if(isset($_GET['side'])) {$side = $_GET['side'];} else {$side = 'motels';}
  4. if($side == 'motels') {
  5. ...111
  6. }
  7. if($side == 'option') {...
  8. ...222
  9. }
  10. if($side == 'profiles') {
  11. <h3>Редактирование профилей</h3><br>
  12. ...333
  13. }


Я вот с суперглобальных массивов таких как _GET и _POST вообще начинал знакомство с php! И даже не представлял, что когда то было по другому...
 
 Top
LIME
Отправлено: 20 Апреля, 2015 - 17:32:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




exlant пишет:
А пятая версия PHP была выпущена разработчиками еще в 2004 году!
5.0 ?
 
 Top
exlant
Отправлено: 20 Апреля, 2015 - 17:54:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




LIME пишет:
exlant пишет:
А пятая версия PHP была выпущена разработчиками еще в 2004 году!
5.0 ?

ничего утверждать не буду я это прочитал здесь http://php.net/manual/ru/history.php.php , может я что то не так понял!
 
 Top
Мелкий Супермодератор
Отправлено: 20 Апреля, 2015 - 18:08:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Да, PHP 5.0.0 был выпущен 13 июля 2004 года. Соответствующая Beta 1 ещё годом раньше, 29 июня 2003.
А в чём проблема?

kid26 пишет:
новые версии отрицают старые наработки. Ничего хорошего в этом нет, по-моему.

Да, ничего хорошего для древнего кода.
А всё хорошее за такое решение долго и пристально обсуждается, если перевешивает доводы против - то принимается. Если не перевешивает по результатам голосования, то отклоняется. И этот груз обратной совместимости весьма мешает совершенствовать язык. Потому расширение mysql_* уже 10 лет как устарело, но его всё ещё держат и только в этом году от него избавятся в релизе PHP7. А register_globals, на который рассчитан ваш код - дурацкая и спорная идея и на момент принятия, к счастью, в релизе 5.3 отключили.


-----
PostgreSQL DBA
 
 Top
kid26
Отправлено: 20 Апреля, 2015 - 18:45:43
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




exlant пишет:
Совет! Не читайте старые книги по языкам программирования!

Спасибо, поробую. А старые книги не читаю, пример с этого же сайта, где етот форум стоит. и гугл его прекрасно выдает, в самом верху... вот и читаю. Админам етого сайта нужно в статье любой прямо указывать, для какой версии она дествительна. Или удалять контент, как старые функции разработчики.
 
 Top
kid26
Отправлено: 21 Апреля, 2015 - 12:42:06
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




Мелкий пишет:
ничего хорошего для древнего кода.

Вы правы, но если кто помнит этот код, то еще вопрос по нему

В том же коде есть еще ссылка
&nbsp;&nbsp;&nbsp;&nbsp; <a href="index.php?action=exit">Выход</a>
и такой текст:
// Выход из панели управления
if (@$action == 'exit') {
// Стираем сессию с паролем
session_unset();
Header("Location: index.php");
exit;
}
код его прекрасно ловит и выходит. В этом-то случае почему срабатывает, ведь тоже без всякого _GETмассива передается. Непонятно.
 
 Top
Мелкий Супермодератор
Отправлено: 21 Апреля, 2015 - 13:10:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Значит переменная $action была уже определена ранее. Что характерно, не обязательно в значение 'exit'.
Значения true и 0 тоже приведут к выполнению этого условия.


-----
PostgreSQL DBA
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB