Require_once срабатывает при загрузке страницы и при отправке?

#php #mysql

#php #mysql

Вопрос:

У меня есть страница php (horses.php ), который включает в себя:

  <?php require_once('send_email.php');?>
  

Что происходит, у меня есть несколько сценариев для отправки электронной почты (и выполнения некоторых других действий) в send_email.php досье.

Теперь, когда horses.php загружает send_email.php страница запускается и отправляет электронное письмо. Это работает отлично. Но на horses.php У меня также есть кнопка отправки, которая обновляет базу данных и переходит на другую страницу.. Но что происходит, так это send_email.php кажется, срабатывает при загрузке страницы, а также при отправке? Потому что я получаю электронное письмо при загрузке страницы (как и должен), но затем также при нажатии отправки??

Идеи по этому поводу?

Спасибо

Ответ №1:

Вы можете попробовать отправить электронное письмо только в том случае, если форма не была отправлена:

 if (!isset($_POST['name_of_an_element_in_the_form'])) {
  require_once('send_email.php');
}
  

Комментарии:

1. @user718359 Я думаю, вы упускаете его из виду. Он в основном предлагает вам проверить, была ли форма еще не отправлена. Если он еще не был отправлен, это будет означать, что вы впервые попадаете на страницу (на основе логики, которую вы описали). Если это так, то ваш require_once вызовет код электронной почты.

2. Но они должны отправляться один раз на horse.php чтобы перейти к следующей странице.. так что он будет отправлен..

3. Где-то в строке «horses.php » заряжается дважды. Отправленная кнопка, скорее всего, является просто триггером, заставляющим ее загружаться дважды. Возможно, вы не указали action атрибут вашей формы, к которой прикреплена кнопка отправки, и поэтому используете действие по умолчанию для отправки отправки формы самой себе, что приводит к повторной загрузке страницы.

Ответ №2:

У вас есть какой-то код для отправки почты во время загрузки send_email.php ? Я не думаю, что это хорошая практика, просто определите функцию (или класс) для отправки почты send_email.php и вызывайте его, когда вам действительно нужно отправить письмо…

Комментарии:

1. Na — при загрузке horses.php .. весь код находится в send_email.php чтобы фактически отправить соответствующее электронное письмо и т.д..