LINUX.ORG.RU

После обновления php перестал работать скрипт.


0

1
<?php
&nbsp; &nbsp;
  $salt = $name;
  $hash = md5 ($pass . $salt);
  
?>
<form method="POST" action="<?=$_SERVER&#91;'PHP_SELF'&#93;?>">
 Введите слово для хэширования: <input type="text" name="name"><input type="submit" name="okbutton" value="OK">
   
   
   <p>
   Хэш: <input type="text" size="30" readonly name="name" value="<? if (isset($hash)) echo $hash; ?>">

Всё работало на php 5.2.6 обновился до 5.3 - перестало, подскажите в чём может быть проблема и как её исправить.

Как вы поняли, скрипт дает ввести в форму слово, по нажатию кнопки ОК должен выдывать его ХЭШ в другой форме, но почему-то этого не происходит.



Последнее исправление: Blasta (всего исправлений: 1)
Ответ на: комментарий от AITap

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

http://expomebel.ru/hashgen.php пусть будет тут.

Blasta
() автор топика

наверное register globals отключилось

thesame ★★★★
()

Deprecated features in PHP 5.3.x

The following is a list of deprecated INI directives. Use of any of these INI directives will cause an E_DEPRECATED error to be thrown at startup.

...
* register_globals
...

Используй $_GET, $_POST.

hidden_4003
()
Ответ на: комментарий от hidden_4003

> DEPRECATED … register_globals

Слава богам — может быдлокодеров поубавиться, или они наконец то осилят изучить язык, на котором пишут. Ещё бы эту «<?=» запретили…

avol
()
Ответ на: комментарий от thesame

> а шаблоны как писать?

<?php echo $var; ?>

Но лучше Smarty.

А «<?» Используется, например, для xml-заголовка, который нужен при xhtml > 1.0.

avol
()
Ответ на: комментарий от avol

><?php echo $var; ?>

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

А «<?» Используется, например, для xml-заголовка, который нужен при xhtml > 1.0.

Который, так как он один, можно вывести через echo.

anonymous
()
Ответ на: комментарий от anonymous

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

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

Который, так как он один, можно вывести через echo.


Да можно и всю страницу вывести через echo. Но если уж разделять, то разделять до конца.

avol
()

даже не верится, что существуют быдлокодеры, использующие register_globals=on. наверное, это те же самые, который постят сюда линки на мануалы на php.su, а сам пхп изучают по книжкам 2001 года или видеоурокам евгения попова. гореть им в аду

heisenberg ★★
()
Ответ на: комментарий от avol

> Ещё бы эту «<?=» запретили…

А в рельсах использование <%= ... %> считается кошерным

static_lab ★★★★★
()
Ответ на: комментарий от xorik

Я же уже написал, что последовательность как-бы занята. Да и конструкция эта отключаема, и полагаться на неё не стоит. Открывающим тегом для PHP является <?php - его лучше и использовать.

avol
()
Ответ на: комментарий от heisenberg

А через что нужно пхп изучать? Поповы хоть и «принципиально новые» вещи делают, да делают. А иную книжку возьмешь, там: «PHP - легкий язык для веб. if $a=++$a>$easyvariabletome==true { echo „простой примерчик“; } function $easyfunction($arr1,$arr2) {if ($somefile+$somewhere=$tracker){print „легкая функция“;}else {exit();} (написал что попало, но именно так я в первый день это и увидел)

А есть книжки в которых как для сварщиков объясняется: Это - сюда, то - туда и получишь вот_это. Если ЭтО поставишь - амба капут! А вот так - сайт навернется от циклов... Правда этих подробностей там так мало

minakov ★★★★★
()
Ответ на: комментарий от minakov

Прошу синтаксис не проверять, не умею пхп

minakov ★★★★★
()
Ответ на: комментарий от avol

Хм. Пощупаю, не попадался.

http://dwoo.org/

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

<p>Привет, {$object->user()->titled_link()}</p>

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Вроде и правда по скорости неплох, даже по сравнению со smarty2. Но вот то, что в отличии от смарти он мало распространён, несколько смущает — ведь распространённость важный параметр, т.к. это лучшая поддержка…

avol
()
Ответ на: комментарий от avol

Ну, меня вопрос распространённости шаблонизатора волнует меньше всего. Любой шаблонизатор к фреймворку прикручивается в несколько строк, при чём у каждого класса (или, что извращение, даже объекта) может быть свой. Плюс к этому, шаблон общего оформления типовой страницы и шаблон тела страницы - тоже отдельные сущности. То, что уже будет сделано - оно будет сделано и работать. А если что-то не понравится, для новых классов всегда можно заюзать новые шаблонизаторы.

Правда, сам в качестве шаблонизаторов пока использую только Smarty2 и чистый PHP. Издалека присматриваюсь пока к Twig'у, но останавливают проблемы с цепочным вызовом методов объектов. Для меня это очень актуально.

KRoN73 ★★★★★
()
Ответ на: комментарий от avol

> А есть ли реальный пройти? Результаты гугла неоднозначные ...

Для меня он такой:

1) Быстрее Smarty по тестам, хотя на глазок сложно что-то сказать.

2) Smarty-подобный синтаксис, пользуясь Dwoo в своих проектах, я без проблем могу сделать шаблоны и на Smarty для серьёзных заказчиков.

3) Киллер-фича, из-за которой я на него перешёл - наличие вложенных шаблонов. Делаю base.tpl с полной базовой страницей без содержимого, а содержимое в отдельных файлах прописываю. Пример:

base.tpl:

<html>
<head>
  <title>{block name="title"}Главная страница - Значение по-дефолту, отображается если блок "title" не будет указан в подшаблонах{/block} - Крутой сайт</title>

  {block name="meta"}Тут может быть всякое, нужное на конкретных страницах, например, JavaScript'ы, ссылки на jQuery и т. д., если на какой-то странице они не нужны, просто не надо в соответствующем шаблоне вводить блок "meta", и тогда это место в итоговом HTML останется пустым{/block}
</head>

<body>
  {block name="content"}{/block}
</body>
</html>

index.tpl:

{extends="base.tpl"}
  {block name="title"}Карта сайта{/block}

  {block name="content"}
    <a href="#">Главная страница</a><br />
    <a href="#">О сайте</a>
  {/block}
{/extends}

После чего в PHP рендерим index.tpl, он вклеит себя в base.tpl и отправит браузеру. Итог:

index.html:

<html>
<head>
  <title>Карта сайта - Крутой сайт</title>
</head>

<body>
  <a href="#">Главная страница</a><br />
  <a href="#">О сайте</a>
</body>
</html>

anonymous
()
Ответ на: комментарий от anonymous

То есть это получается один скомпиленный php для index без лишних инклудов? Тогда да — это уже что-то вполне ощутимое! Спасибо за детальный пример.

avol
()
Ответ на: комментарий от anonymous

> 3) Киллер-фича, из-за которой я на него перешёл - наличие вложенных шаблонов. Делаю base.tpl с полной базовой страницей без содержимого, а содержимое в отдельных файлах прописываю. Пример:

эмм. ты думаешь, Смарти этого не умеет? RTFM!

http://www.smarty.net/manual/en/language.function.include.php

isden ★★★★★
()
Ответ на: комментарий от isden

> эмм. ты думаешь, Смарти этого не умеет? RTFM!

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

Как я понял, при использовании озвученной выше фичи скомпилированный шаблон получается один (просто инклудом здесь явно не отделаешься).

avol
()
Ответ на: комментарий от avol

> То есть это получается один скомпиленный php для index без лишних инклудов? Тогда да — это уже что-то вполне ощутимое! Спасибо за детальный пример.

Да, потом в кэше Dwoo появляется один index.php и кроме него ничего больше.

anonymous
()
Ответ на: комментарий от isden

> эмм. ты думаешь, Смарти этого не умеет? RTFM!

http://www.smarty.net/manual/en/language.function.include.php

Что-то я не понял как с его помощью сделать так, как сделал я. Можно пример? Конкретно для удобства требуется полная раскладка страницы как в base.tpl у меня в примере, без {include file=«header.tpl»} и {include file=«footer.tpl»}. В смысле, без разделения базового шаблона на мелкие файлы.

anonymous
()
Ответ на: комментарий от avol

> Как я понял, при использовании озвученной выше фичи скомпилированный шаблон получается один (просто инклудом здесь явно не отделаешься).

тут есть один очень жирный минус - при открытии любой страницы сайта выполняется один универсальный файл. при более-менее простом сайте это даже плюс. а когда сайт крупный и навороченный (с админкой, бл.дж. и шл.) то будет огромный оверхед. например, мы смотрим секцию «Новости». а фактически выполняется весь код (галерея, менеджмент профайла, регистрационная форма, етц). пусть там даже везде if()'ы наставлены, этот большой файл все равно будет выполнятся интепретатором. в случае же с динамическим подключением - всего этого можно избежать. один диспетчер (+базовый шаблон к нему) и кучка спец.модулей (с подключаемыми виджетами).

isden ★★★★★
()
Ответ на: комментарий от isden

> тут есть один очень жирный минус - при открытии любой страницы сайта выполняется один универсальный файл. при более-менее простом сайте это даже плюс. а когда сайт крупный и навороченный (с админкой, бл.дж. и шл.) то будет огромный оверхед. например, мы смотрим секцию «Новости». а фактически выполняется весь код (галерея, менеджмент профайла, регистрационная форма, етц). пусть там даже везде if()'ы наставлены, этот большой файл все равно будет выполнятся интепретатором. в случае же с динамическим подключением - всего этого можно избежать. один диспетчер (+базовый шаблон к нему) и кучка спец.модулей (с подключаемыми виджетами).

Ну это да, но для крупных сайтов свои шаблонизаторы пишут. А кроме того, Dwoo поддерживает и инклуды как Smarty.

anonymous
()
Ответ на: комментарий от isden

> тут есть один очень жирный минус - при открытии любой страницы сайта выполняется один универсальный файл. при более-менее простом сайте это даже плюс. а когда сайт крупный и навороченный (с админкой, бл.дж. и шл.) то будет огромный оверхед. например, мы смотрим секцию «Новости». а фактически выполняется весь код (галерея, менеджмент профайла, регистрационная форма, етц). пусть там даже везде if()'ы наставлены, этот большой файл все равно будет выполнятся интепретатором. в случае же с динамическим подключением - всего этого можно избежать. один диспетчер (+базовый шаблон к нему) и кучка спец.модулей (с подключаемыми виджетами).

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

avol
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.