- передача переменной через header
- How to send variable value using php in header?
- Answer
- Solution:
- Answer
- Solution:
- Answer
- Solution:
- Answer
- Solution:
- Share solution ↓
- Additional Information:
- Didn’t find the answer?
- Similar questions
- Write quick answer
- About the technologies asked in this question
- PHP
- Welcome to programmierfrage.com
- Get answers to specific questions
- Help Others Solve Their Issues
- header
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Примечания
- Смотрите также
передача переменной через header
нужно передать константу через header
на другую страницу и там вывести ее.
Что нужно изменить не подскажете?
1 2 3 4 5 6 7 8 9 10 11 12
session_start(); function update($max){ if (!isset($_SESSION['counter'])) $_SESSION['counter']=0; //$_SESSION['counting'] = $max; //$_SESSION['count'] = $max; echo $_SESSION['counter']++; if ($_SESSION['counter']>$max){ header("Location: off.php?".$max); } } update(2);?>
session_start(); echo "Вы просмотрели страницу ". $max; ?>
Передача переменной через POST
Сайт с фильмами, рядом с каждым фильмом 2 кнопки: "Отзывы" и "В избранное", в них записывается код.
Передача заголовка @header
Здравствуйте! Можно ли изменить заголовок? Например, есть: .
Сохранение переменной после обновления header
Здравствуйте, подскажите, что делать если в конце скрипта есть строка: header(‘Location.
Передача переменной через ссылку
Привет Нажимаю на ссылку index.php?doska=Guest449_&tip=1,и в самом верху index.php прописал 3.
header("Location: off.php?max=".urlencode($max));
session_start(); echo "Вы просмотрели страницу ". $_GET['max'];
только в off.php
кодировка не та
попытался через header изменить,
но не вышло
Добавлено через 16 минут
вопрос отпал, там кодировка utf-8 должна быть
Добавлено через 1 минуту
хотя все равно надо узнать,
как правильно менять кодировку
Передача переменной через функцию
никак не могу разобраться. Из $row состоит ссылка, нужно, чтобы . $cid присваивал действующее.
Передача значения переменной через гиперссылки
у меня есть php, который выводит результаты запроса из БД в виде гиперссылок: $query =.
Передача переменной через адресную строку
Доброго времени суток! хочу сделать галлерею с использованием БД. Вобщем есть таблица categories.
Передача текстовой переменной кириллицей через get
Нужно передать в базу переменную через get test.php?test=abcdef test.php mysql_query("INSERT.
Передача переменной через Eventhandler
есть метод public static void LinkedLabelClick(object sender,EventArgs e??) < . >нужно.
How to send variable value using php in header?
I am trying to send user_id in url which id i get after login conform.Following are the code extract($_POST);
$result = $dbg->prepare("SELECT `p_id`,`email` FROM `complit_register_provider` WHERE `email`=:hjhjhjh AND `password`=:psspsps") ; $result->bindParam(':hjhjhjh', $login_mail); $result->bindParam(':psspsps', $login_password); $result->execute(); $rows = $result->fetch(PDO::FETCH_ASSOC); $row=$result->rowCount(); if($rows)< $result=$result->fetch(PDO::FETCH_ASSOC); $_SESSION['Uname']=$rows['email']; $_SESSION['Utype']="provider"; $_SESSION['Uid']=$rows['p_id']; $user_id=$_SESSION['Uid']; header('Location: http://127.0.0.1/pages/user_index/provider/user_profile/show_own_profile.php?Show=$user_id'); >
But it’s not working. The url showing like.
Answer
Solution:
Anything inside single quotes, » , is treated as a string by php.
Change it to header(‘Location: http://127.0.0.1/pages/user_index/provider/user_profile/show_own_profile.php?Show=’. $user_id);
Answer
Solution:
header('Location: http://127.0.0.1/pages/user_index/provider/user_profile/show_own_profile.php?Show='.$user_id);
Answer
Solution:
header("Location: http://127.0.0.1/pages/user_index/provider/user_profile/show_own_profile.php?Show=$user_id");
header('Location: http://127.0.0.1/pages/user_index/provider/user_profile/show_own_profile.php?Show=$user_id');
For more information about the difference between single quotes and double quotes you should have a look at: http://php.net/manual/en/language.types.string.php
Answer
Solution:
As everyone else have pointed out, you are using single quotes » which causes PHP to not recognize the $user_id variable you are trying to send.
Use double quotes «» to solve this problem.
header("Location: http://127.0.0.1/pages/user_index/provider/user_profile/show_own_profile.php?Show=$user_id");
Further reading on differences between the two types of quotes in PHP:
Share solution ↓
Additional Information:
Didn’t find the answer?
Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.
Similar questions
Find the answer in similar questions on our website.
Write quick answer
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.
About the technologies asked in this question
PHP
PHP (from the English Hypertext Preprocessor — hypertext preprocessor) is a scripting programming language for developing web applications. Supported by most hosting providers, it is one of the most popular tools for creating dynamic websites. The PHP scripting language has gained wide popularity due to its processing speed, simplicity, cross-platform, functionality and distribution of source codes under its own license.
https://www.php.net/
Welcome to programmierfrage.com
programmierfrage.com is a question and answer site for professional web developers, programming enthusiasts and website builders. Site created and operated by the community. Together with you, we create a free library of detailed answers to any question on programming, web development, website creation and website administration.
Get answers to specific questions
Ask about the real problem you are facing. Describe in detail what you are doing and what you want to achieve.
Help Others Solve Their Issues
Our goal is to create a strong community in which everyone will support each other. If you find a question and know the answer to it, help others with your knowledge.
header
header() используется для отправки HTTP заголовка. В » спецификации HTTP/1.1 есть подробное описание HTTP заголовков.
Помните, что функцию header() можно вызывать только если клиенту еще не передавались данные. То есть она должна идти первой в выводе, перед ее вызовом не должно быть никаких HTML тэгов, пустых строк и т.п. Довольно часто возникает ошибка, когда при чтении кода файловыми функциями, вроде include или require , в этом коде попадаются пробелы или пустые строки, которые выводятся до вызова header() . Те же проблемы могут возникать и при использовании одиночного PHP/HTML файла.
/* Этот пример приведет к ошибке. Обратите внимание
* на тэг вверху, который будет выведен до вызова header() */
header ( ‘Location: http://www.example.com/’ );
exit;
?>
Список параметров
Существует два специальных заголовка. Один из них начинается с «HTTP/» (регистр не важен) и используется для отправки кода состояния HTTP. Например, если веб-сервер Apache сконфигурирован таким образом, чтобы запросы к несуществующим файлам обрабатывались средствами PHP скрипта (используя директиву ErrorDocument), вы наверняка захотите быть уверенными что скрипт генерирует правильный код состояния.
Другим специальным видом заголовков является «Location:». В этом случае функция не только отправляет этот заголовок броузеру, но также возвращает ему код состояния REDIRECT (302) (если ранее не был установлен код 201 или 3xx).
header ( «Location: http://www.example.com/» ); /* Перенаправление броузера */
?php
/* Можно убедиться, что следующий за командой код не выполнится из-за
перенаправления.*/
exit;
?>
Необязательный параметр replace определяет, надо ли заменять предыдущий аналогичный заголовок или заголовок того же типа. По умолчанию заголовок будет заменен, но если передать FALSE , можно задать несколько однотипных заголовков. Например:
Принудительно задает код ответа HTTP. Следует учитывать, что это будет работать, только если строка string не является пустой.
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Список изменений
Версия | Описание |
---|---|
5.1.2 | Стало невозможно отправлять более одного заголовка за раз. Это сделано для защиты от атак, связанных с инъекцией заголовков. |
Примеры
Пример #1 Диалог загрузки
Если нужно предупредить пользователя о необходимости сохранить пересылаемые данные, такие как сгенерированный PDF файл, можно воспользоваться заголовком » Content-Disposition, который подставляет рекомендуемое имя файла и заставляет броузер показать диалог загрузки.
// Будем передавать PDF
header ( ‘Content-Type: application/pdf’ );
?php
// Который будет называться downloaded.pdf
header ( ‘Content-Disposition: attachment; filename=»downloaded.pdf»‘ );
// Исходный PDF файл original.pdf
readfile ( ‘original.pdf’ );
?>
Пример #2 Директивы для работы с кэшем
PHP скрипты часто генерируют динамический контент, который не должен кэшироваться клиентским броузером или какими-либо промежуточными обработчиками, вроде прокси серверов. Можно принудительно отключить кэширование на многих прокси серверах и броузерах, передав заголовки:
header ( «Cache-Control: no-cache, must-revalidate» ); // HTTP/1.1
header ( «Expires: Sat, 26 Jul 1997 05:00:00 GMT» ); // Дата в прошлом
?>?php
Замечание:
В некоторых случаях ваши страницы не будут кэшироваться броузером, даже если вы не передавали этих заголовков. В броузерах есть определенные настройки, с помощью которых пользователь может изменять обычный ход кэширования, отключать его. Вы должны перекрывать любые настройки, которые могут повлиять на кэширование скрипта, отправляя приведенные выше заголовки.
Дополнительно, для случаев когда используются сессии, можно задать настройки конфигурации session_cache_limiter() и session.cache_limiter. Эти настройки можно использовать для автоматической генерации заголовков управляющих кешированием.
Примечания
Замечание:
Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.
Замечание:
Чтобы обойти эту проблему, можно буферизовать вывод скрипта. В этом случае все выводимые данные будут буферизоваться на сервере, пока не будет дана явная команда на пересылку данных. Управлять буферизацией можно вручную функциями ob_start() и ob_end_flush() , либо задав директиву output_buffering в конфигурационном файле php.ini , или же настроив соответствующим образом конфигурацию сервера.
Замечание:
Строка заголовка задающая состояние HTTP всегда будет отсылаться клиенту первой, вне зависимости от того был соответствующий вызов функции header() первым или нет. Это состояние можно перезаписать, вызывая header() с новой строкой состояния в любое время, когда можно отправлять HTTP заголовки.
Замечание:
В Microsoft Internet Explorer 4.01 есть баг, из-за которого это не работает. Обойти его никак нельзя. В Microsoft Internet Explorer 5.5 также есть этот баг, но его уже можно устранить установкой Service Pack 2 или выше.
Замечание: Если включен безопасный режим, то uid скрипта будет добавляться к realm части WWW-Authenticate заголовка (используется для HTTP аутентификации).
Замечание:
Спецификация HTTP/1.1 требует указывать абсолютный URI в качестве аргумента » Location:, включающий схему, имя хоста и абсолютный путь, хотя некоторые клиенты способны принимать и относительные URI. Абсолютный URI можно построить самостоятельно с помощью $_SERVER[‘HTTP_HOST’] , $_SERVER[‘PHP_SELF’] и dirname() :
/* Перенаправление броузера на другую страницу в той же директории, что и
изначально запрошенная */
$host = $_SERVER [ ‘HTTP_HOST’ ];
$uri = rtrim ( dirname ( $_SERVER [ ‘PHP_SELF’ ]), ‘/\\’ );
$extra = ‘mypage.php’ ;
header ( «Location: http:// $host$uri / $extra » );
exit;
?>?php
Замечание:
ID сессии не будет передаваться вместе с заголовком Location, даже если включена настройка session.use_trans_sid. Его нужно передавать вручную, используя константу SID .
Смотрите также
- headers_sent() — Проверяет были ли и куда отправлены заголовки
- setcookie() — Посылает cookie
- http_response_code() — Получает или устанавливает код ответа HTTP
- Раздел документации HTTP аутентификация