Как вывести сообщение в php
Перейти к содержимому

Как вывести сообщение в php

  • автор:

Вывод сообщений php

Есть задача. Страница (страница подтверждения удаления файла) содержит сообщение «Вы действительно хотите удалить этот файл?» и форма с двумя радио-кнопками выбора и кнопкой отправки формы (submit). При выборе и отправке первого варианта, вместо стандартного сообщения появляется «Файл успешно удалён» и через пять секунд перенаправление на files.php. При выборе и отправке второго — просто перенаправление на files.php. Всё очень желательно реализовать средствами php! Вот такой код я нацарапал, но он не работает 🙁

 $article = simplexml_load_file('../xml/' . $_GET['id'] . '.xml'); if (isset($_POST['select'])) < $_POST['select'] = $select; $select = 0; if ($select == 'no') < header('location: files.php'); >elseif ($select == 'yes') < echo 'Страница' . $article->headline . ' удалена!'; $filename = '../xml/' . $_GET['id'] . '.xml'; unlink($filename); sleep(5); header('location: files.php'); > else < echo 'Вы действительно хотите удалить статью ' . $article->headline . '?'; > > echo ' 

';

А не работает вот что: при переходе на эту страницу не отображается сообщение «Вы действительно хотите удалить этот файл?»; при выборе обоих вариантов, просто идёт перенаправление, не выводится сообщение «Файл успешно удалён» (в первом случае) и не удаляется сам файл.

Отслеживать
задан 20 ноя 2017 в 12:59
87 2 2 серебряных знака 14 14 бронзовых знаков

Какая у вас ошибка? Что конкретно у вас не работает? Переформулируйте, пожалуйста, вопрос, что бы на него можно было ответить

Как вывести сообщение в php

В связи с переходом на новый движок. возможны сбои в работе! Простите!
Работы производятся прямо сейчас 20-02-2024! ��

Что такое echo php

В самом начале нашего повествования надо разобраться «Что такое echo php«

В разных учебниках написано по разному, поэтому, мной сформулированное определение :

«Что такое echo php

Оператор «echo» выводит результат работы php программы на экран, в том месте, где «echo» будет расположено. Результат должен быть строкой, не массивом.

Иногда, в разных учебниках формулировка «Что такое echo php» отличается. Иногда пишут, что echo php функция, в других — это не функция, а конструкция языка.

Почему echo не функция!?

Потому, что не требует заключать значения в скобки. Еще используется слово оператор по отношению к echo, это наиболее логичная конструкция! Оператор echo — звучит лаконично, четко, понятно!

Почему оператор!? Echo оперирует переменными.

Синтаксис echo

Для вывода данных через echo, текст(если это текст) помещают в кавычки, строку оканчивают с помощью точки с запятой «;»

echo «Привет мир»;

Либо с одинарными кавычками(если требуется одновременное использование двух видов кавычек, вам потребуется экранирование) :

echo ‘Привет мир’;

Если выводимая строка состоит из одного слова, либо любого другого значения без пробела:

echo Привет_мир;

Либо echo может выводить переменную, например:

$example = ‘Привет мир!’;

Как переводится echo

Как переводится слово echo!? Для слова echo существует несколько значений, первым идет, что:

echo = эхо (эхо — это, когда кричишь, и твой крик повторяется)
Чтобы не выглядеть последней лошарой ! Никогда не читайте » echo «, как » эчо «, но как правильно!?

Как правильного говорить транскрипцию echo -> [ˈekəʊ]

Вы можете у себя дома говорить, как вам вздумается! И если вы тусуетесь среди дегенератов, то вам тоже все равно!

Но, если вы находитесь в обществе, которое, хоть что-то понимает, и чтобы там не выглядеть последней лошарой , нужно соблюдать правила произношения иностранных слов, в частности английских -> это называется транскрипция -> обозначение слов звуками :

echo -> [ˈekəʊ] , либо, просто по-русски -> эхо

Объяснить письмом звуки — это невозможно, поэтому для вас, как это звучит правильно! Открываем переводчик и в левом нижнем углу, нажимаем динамик!

Нажмите, чтобы открыть в новом окне.

Видео о том как сделать вывод «Echo в php«

В видео рассказывается о том, как сделать вывод на экран монитора «Echo в php«. С какми проблемами вы можете столкнуться при попытке использовать «Echo в файле html»!

Echo вывод текста

Для того, чтобы вывести что-то с помощью echo, например «текст» вам понадобится:

Либо эмулятор сайта на компьютере(например «Денвер» — локальный сервер).

После этого? любым доступным способом создаем файл php

Внутри файла прописываем такую конструкцию:

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

Далее пишем echo, одинарные или двойные кавычки, точка с запятой, заканчиваем строку.

Вопросительный знак треугольная скобка вправо:

Результат вывода у вас должен получиться такой:

Привет Мир!

О моём сайте и выводе echo

Всё, что вы видите здесь, на сайте выведено с помощью echo , кроме основного каркаса html

Альтернатива echo есть!

Когда вы произносите Альтернатива echo , что вы собственно подразумеваете под этими словами!

Первая альтернатива echo

Функция для вывода информации на экран — альтернатива echo — print_r(вообще — я эту функцию на 100% использую для вывода массива)

Пример альтернативного вывода информации без использования echo

Если вы говоря Альтернатива echo имеете ввиду альтернативный синтаксис, то например можно сделать такое условие без использования echo:

В данном примере альтернативного вывода без использования echo — будет выводиться либо 2 либо 4 строка в виде строки — в зависимости от условия.

Еще пример альтернативного вывода echo

Данный пример использования альтернативного вывода. это вместо слова echo использование знака равно и после него выводимая строка:

Вывод

PHP содержит два основных оператора для вывода текста в браузере Web: echo и print.

Оба оператора, echo и print, кодируются между открывающим и закрывающим тегами блока кода PHP и могут находиться в любом месте в документах XHTML.

Операторы echo и print используют следующий формат:

echo – используется для вывода одной или нескольких строк.
echo «Выводимый текст»;
print – используется для вывода строки. В некоторых случаях оператор print предлагает большую функциональность, чем оператор echo.

Это будет рассмотрено далее в учебнике. Пока print можно считать другим именем оператора echo.
print » Выводимый текст»

Следующие примеры демонстрируют использование и размещение команд echo и print в документе XHTML.

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

или
для создания параграфов или переносов строк. Разделители, создаваемые в редакторе XHTML с помощью возврата каретки, пробелов и табуляции, игнорируются процессором PHP.

В следующем примере тег параграфа XHTML включается в оператор PHP echo. В PHP теги XHTML можно применять в операторах print и echo для форматирования вывода. В этих случаях вывод необходимо заключать в двойные кавычки («»), чтобы гарантировать, что браузер не интерпретирует тег буквально и не выводит его как часть строки вывода.

echo «

Параграф 1

«;
echo «

Параграф 2

«;

Без использования тега параграфа XHTML предыдущие операторы echo будут выводить контент в следующем виде:
Параграф 1 Параграф 2

При включении тегов параграфов операторы выводятся как два отдельных параграфа.
Параграф 1
Параграф 2

2. Терминатор инструкции

Каждая строка кода PHP должна завершаться терминатором инструкции (признаком конца), в качестве которого используется точка с запятой (;). Терминатор инструкции применяется для отделения одного множества инструкций от другого.

Отсутствие терминатора инструкции может приводить к ошибкам в работе интерпретатора PHP и выводу ошибок в окне браузера.

Следующий фрагмент кода показывает распространенную ошибку отсутствия терминатора инструкции.

В этом примере в первом операторе echo пропущен терминатор инструкции. Так как интерпретатор PHP не может определить конец первого оператора echo и начало второго, то происходит ошибка. В зависимости от настроек Обработки ошибок (Error Handling) интерпретатора, будет выводиться сообщение об ошибке или браузер выведет просто пустую страницу.

Далее показано типичное сообщение об ошибке, которое выводится, когда пропущен терминатор инструкции:

Parse error: syntax error, unexpected T_PRINT in C:\ApacheRoot\test.php on line 11
Ошибка при разборе: синтаксическая ошибка, непредвиденный T_PRINT в . в строке 11

Как можно видеть, сообщения об ошибках PHP достаточно загадочны по своей природе. Отсутствие терминатора инструкции является распространенной ошибкой среди новичков PHP. Со временем появится привычка проверять каждую строку на наличие терминатора инструкции.

3. Комментарии в коде

Комментарии применяются в PHP для записи собственных замечаний во время процесса разработки кода. Такие комментарии могут определять назначение сегмента кода или их можно использовать для исключения блоков кода во время тестирования и отладки сценариев.

Синтаксический анализатор PHP игнорирует комментарии. Комментарии в PHP можно определить одним из следующих способов:
// — простой комментарий PHP;
# — альтернативный простой комментарий PHP;
/*. */ — многострочные блоки комментариев.

exit

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

exit — это конструкция языка, и она может быть вызвана без круглых скобок, если не передаётся параметр status .

Список параметров

Если status задан в виде строки, то эта конструкция выведет содержимое status перед выходом.

Если status задан в виде целого числа ( int ), то это значение будет использовано как статус выхода и не будет выведено. Статусы выхода должны быть в диапазоне от 0 до 254, статус выхода 255 зарезервирован PHP и не должен использоваться. Статус выхода 0 указывают для успешного завершения программы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования языковой конструкции exit

$filename = ‘/path/to/data-file’ ;
$file = fopen ( $filename , ‘r’ )
or exit( «Невозможно открыть файл ( $filename )» );

Пример #2 Пример использования конструкции exit со статусом выхода

// обычный выход из программы
exit;
exit();
exit( 0 );

// выход с кодом ошибки
exit( 1 );
exit( 0376 ); // восьмеричный

Пример #3 Функции выключения и деструкторы выполняются независимо

class Foo
public function __destruct ()
echo ‘Деинициализировать: ‘ . __METHOD__ . ‘()’ . PHP_EOL ;
>
>

function shutdown ()
echo ‘Завершить: ‘ . __FUNCTION__ . ‘()’ . PHP_EOL ;
>

$foo = new Foo ();
register_shutdown_function ( ‘shutdown’ );

exit();
echo ‘Эта строка не будет выведена.’ ;
?>

Результат выполнения приведённого примера:

Завершить: shutdown() Деинициализировать: Foo::__destruct()

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, её нельзя вызывать как переменную функцию или передавать как именованный аргумент.

Замечание:

Эта языковая конструкция эквивалентна конструкции die() .

Смотрите также

  • register_shutdown_function() — Регистрирует функцию, которая выполнится при завершении работы скрипта

User Contributed Notes 23 notes

13 years ago

If you want to avoid calling exit() in FastCGI as per the comments below, but really, positively want to exit cleanly from nested function call or include, consider doing it the Python way:

define an exception named `SystemExit’, throw it instead of calling exit() and catch it in index.php with an empty handler to finish script execution cleanly.

// file: index.php
class SystemExit extends Exception <>
try /* code code */
>
catch ( SystemExit $e ) < /* do nothing */ >
// end of file: index.php

// some deeply nested function or .php file

if ( SOME_EXIT_CONDITION )
throw new SystemExit (); // instead of exit()

14 years ago

jbezorg at gmail proposed the following:

if( $_SERVER [ ‘SCRIPT_FILENAME’ ] == __FILE__ )
header ( ‘Location: /’ );

?>

After sending the `Location:’ header PHP _will_ continue parsing, and all code below the header() call will still be executed. So instead use:

if( $_SERVER [ ‘SCRIPT_FILENAME’ ] == __FILE__ )
header ( ‘Location: /’ );
exit;
>

8 years ago

A side-note for the use of exit with finally: if you exit somewhere in a try block, the finally won’t be executed. Could not sound obvious: for instance in Java you never issue an exit, at least a return in your controller; in PHP instead you could find yourself exiting from a controller method (e.g. in case you issue a redirect).

Here follows the POC:

echo «testing finally wit exit\n» ;

try echo «In try, exiting\n» ;

exit;
> catch( Exception $e ) echo «catched\n» ;
> finally echo «in finally\n» ;
>

echo «In the end\n» ;
?>

This will print:

testing finally wit exit
In try, exiting

13 years ago

Don’t use the exit() function in the auto prepend file with fastcgi (linux/bsd os).
It has the effect of leaving opened files with for result at least a nice «Too many open files . » error.

4 years ago

Beware if you enabled uopz extension, it disables exit / die() by default. They are just «skipped».

8 years ago

In addition to «void a t informance d o t info», here’s a one-liner that requires no constant:

To redirect to / instead of dying:

if ( basename ( $_SERVER [ ‘PHP_SELF’ ]) == basename ( __FILE__ )) if ( ob_get_contents ()) ob_clean (); // ob_get_contents() even works without active output buffering
header ( ‘Location: /’ );
die;
>
?>

Doing the same in a one-liner:

A note to security: Even though $_SERVER[‘PHP_SELF’] comes from the user, it’s safe to assume its validity, as the «manipulation» takes place _before_ the actual file execution, meaning that the string _must_ have been valid enough to execute the file. Also, basename() is binary safe, so you can safely rely on this function.

15 years ago

To rich dot lovely at klikzltd dot co dot uk:

Using a «@» before header() to suppress its error, and relying on the «headers already sent» error seems to me a very bad idea while building any serious website.

This is *not* a clean way to prevent a file from being called directly. At least this is not a secure method, as you rely on the presence of an exception sent by the parser at runtime.

I recommend using a more common way as defining a constant or assigning a variable with any value, and checking for its presence in the included script, like:

in index.php:
define ( ‘INDEX’ , true );
?>

in your included file:
if (! defined ( ‘INDEX’ )) die( ‘You cannot call this script directly !’ );
>
?>

BR.

20 years ago

Note, that using exit() will explicitly cause Roxen webserver to die, if PHP is used as Roxen SAPI module. There is no known workaround for that, except not to use exit(). CGI versions of PHP are not affected.

2 years ago

Be noticed about uopz (User Operations for Zend) extension of PHP. It disables (prevents) halting of PHP scripts (both FPM and CLI) on calling `exit()` and `die()` by default just after enabling the extension. Therefore your script will continue to execute.

11 years ago

When using php-fpm, fastcgi_finish_request() should be used instead of register_shutdown_function() and exit()

For example, under nginx and php-fpm 5.3+, this will make browsers wait 10 seconds to show output:

echo «You have to wait 10 seconds to see this.
» ;
register_shutdown_function ( ‘shutdown’ );
exit;
function shutdown () sleep ( 10 );
echo «Because exit() doesn’t terminate php-fpm calls immediately.
» ;
>
?>

This doesn’t:

echo «You can see this from the browser immediately.
» ;
fastcgi_finish_request ();
sleep ( 10 );
echo «You can’t see this form the browser.» ;
?>

5 years ago

When a object is passed as $status and it consists of a __toString() magic method the string value of this method will be used as $status. If the object does not contain a __toString method, exit will throw a catchable fatal error.

22 years ago

include (‘header.php’);
blah blah blah
if (!$mysql_connect) echo «unable to connect»;
include (‘footer.php’);
exit;
>
blah blah blah
include (‘footer.php’);

7 days ago
please note, exit status is not honored if there are shutdown functions
10 days ago
Please note default status code is 1, so exit() without specifying status will exit with code 1
1 year ago

These are the standard error codes in Linux or UNIX.

1 — Catchall for general errors
2 — Misuse of shell builtins (according to Bash documentation)
126 — Command invoked cannot execute
127 — “command not found”
128 — Invalid argument to exit
128+n — Fatal error signal “n”
130 — Script terminated by Control-C
255\* — Exit status out of range

5 years ago

Calling ‘exit’ will bypass the auto_append_file option.
On some free hosting this risks you getting removed, as they may be using for ads and analytics.

So be a bit careful if using this on the most common output branch.

6 years ago

>> Shutdown functions and object destructors will always be executed even if exit is called.

It is false if you call exit into desctructor.

Normal exit:
class A
public function __destruct ()
echo «bye A\n» ;
>
>

class B
public function __destruct ()
echo «bye B\n» ;
>
>

$a = new A ;
$b = new B ;
exit;

// Output:
// bye B
// bye A
?>

// Exit into desctructor:
class A
public function __destruct ()
echo «bye A\n» ;
>
>

class B
public function __destruct ()
echo «bye B\n» ;
exit;
>
>

$a = new A ;
$b = new B ;

13 years ago
Calling to exit() will flush all buffers started by ob_start() to default output.
6 years ago
Please note $status is printed to stdout, not stderr.
21 years ago

return may be preferable to exit in certain situations, especially when dealing with the PHP binary and the shell.

I have a script which is the recipient of a mail alias, i.e. mail sent to that alias is piped to the script instead of being delivered to a mailbox. Using exit in this script resulted in the sender of the email getting a delivery failure notice. This was not the desired behavior, I wanted to silently discard messages which did not satisfy the script’s requirements.

After several hours of trying to figure out what integer value I should pass to exit() to satisfy sendmail, I tried using return instead of exit. Worked like a charm. Sendmail didn’t like exit but it was perfectly happy with return. So, if you’re running into trouble with exit and other system binaries, try using return instead.

13 years ago

It should be noted that if building a site that runs on FastCGI, calling exit will generate an error in the server’s log file. This can quickly fill up.

Also, using exit will diminish the performance benefit gained on FastCGI setups. Instead, consider using code like this:

if( /* error case */ )
echo «Invalid request» ;
else /* The rest of your application */
>
?>

I’ve also seen developers get around this issue with FastCGI by wrapping their code in a switch statement and using breaks:

switch( true ) case true :
require( ‘application.php’ );
>

if( $x > $y ) echo «Sorry, that didn’t work.» ;
break;
>

?>

It does carry some overhead, but compared to the alternative, it does the job well.

Добавить комментарий

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