Здравствуйте. Есть страница с проверкой номера телефона, на ней инпут для ввода номера телефона и кнопка отправить. После нажатия на кнопку, введенный номер телефона проходит валидацию на корректность и существование. После этого открывается страница регистрации. Нужно чтобы в поле номер телефона стояло значение из предыдущей формы проверки, то есть уже введенный номер телефона. Игры с $_POST ['telephone'] к результату не привели, получаю Notice: Undefined index: telephone in Как будет правильно сделать?
Используйте GET &telephone=888888888 И в контролере следующей формы ловите PHP: if (isset($this->request->get['telephone'])) { $this->data['telephone'] = $this->request->get['telephone']; }
В том и проблема, что адресную строку трогать нельзя. Нужно именно post данные. Может через js знаете как передать?
А, если в сессию PHP: $this->session->data['telephone'] = $this->request->post['telephone']; А в контролере следующей формы PHP: $this->data['telephone'] = $this->session->data['telephone'];unset($this->session->data['telephone']);
Чего то не выходит. На первой странице Notice: Undefined index: telephone. Это же в контроллер, внизу функции index добавлять нужно? А выводить <?php echo $telephone; ?> в шаблоне?
Стандартно, со страницы регистрации выдрал PHP: if (isset($this->request->post['telephone'])) { $data['telephone'] = $this->request->post['telephone']; } else { $data['telephone'] = ''; }
На странице ввода телефона PHP: <form action="здесь адрес страницы куда прийдет телефон" method="post" enctype="multipart/form-data"><input type="text" name="tlf" value="" /><input type="submit" value="Отправить" /></form> --- Добавлено, 22 ноя 2015 --- В контролере страницы , куда приходит телефон внутри PHP: public function index() {if (isset($this->request->post['tlf'])) { $data['tlf'] = $this->request->post['tlf']; } else { $data['tlf'] = ''; } --- Добавлено, 22 ноя 2015 --- На самой странице .tpl выводим в нужном месте <?php echo $tlf; ?>
Тут проблема в том, что данная форма использует собственный контроллер, который проверяет корректность ввода номера телефона и отсылает на номер смс. Человек вводит код активации и попадает на страницу регистрации. Поэтому передавать в action урл страницы регистрации не получится. Просто способы описанные в интернете почти все опробованы. Нужно как то передавать через сессию, но она не хочет запоминать переменную.
Нет. Это нужно добавить в ту функцию, которая принимает POST запрос из формы и именно в ту её часть, которая обрабатывает данные из POST. То есть, сразу после PHP: if (isset($this->request->post['telephone'])) { $data['telephone'] = $this->request->post['telephone']; } else { $data['telephone'] = ''; } Добавляете PHP: $this->session->data['telephone'] = $data['telephone']; А затем в нужном контроллере читаете $this->session->data['telephone']. В общем, Lena_&9 всё правильно посоветовала и, если этот вариант не работает, значит либо вы что-то не так делаете, либо ваш код изначально нерабочий, то есть у вас в принципе содержимое формы не обрабатывается на сервере.