получение значения cookie из формы php - PullRequest
4 голосов
/ 29 июня 2011

Что мне установить значение и имя файла cookie для значения, которое пользователь может ввести в форму? и что я использую, чтобы отобразить это значение на моей второй странице? (Я не могу не использовать куки для этого, поэтому, хотя может быть более разумный способ сделать это, я просто хотел бы знать, как сделать это с куки !!) Спасибо!

<?php
setcookie($color, 'color');
setcookie($name, 'name');
?>

<?php
echo "<form action=\"form_data.php\" method=\"post\">";
echo "favorite color:<input type=\"text\" name=\"color\" size=\"20\"><br/>";
echo "name:<input type=\"text\" name=\"name\" size=\"20\"><br/>";
echo "<input type=\"submit\" value=\"Submit\" />";
echo "<br /><input type=\"hidden\" name=\"submitted\" value=\"true\" />";
?>

данные в форме_данных:

  <?php
  echo "<b>fav color:</b>".$_COOKIE['color'];
  echo "<b>name:</b>".$_COOKIE['name'];
  ?>

Ответы [ 4 ]

5 голосов
/ 29 июня 2011

Сначала у вас есть форма:

<?php
echo "<form action=\"form_data.php\" method=\"post\">";
echo "favorite color:<input type=\"text\" name=\"color\" size=\"20\"><br/>";
echo "name:<input type=\"text\" name=\"name\" size=\"20\"><br/>";
echo "<input type=\"submit\" value=\"Submit\" />";
echo "<br /><input type=\"hidden\" name=\"submitted\" value=\"true\" />";
?>

Затем в form_data.php:

<?php
// set the cookie with the submitted user data
setcookie('color',$_POST['color']);
setcookie('name', $_POST['name']);
echo "<b>fav color:</b>".$_COOKIE['color'];
echo "<b>name:</b>".$_COOKIE['name'];
?>

Однако вы заметите, что переменные $ _COOKIE еще не доступны.... если вы перезагрузите эту страницу, они появятся.

Чтобы учесть такое поведение файлов cookie, вы можете установить перенаправление в form_data.php:

<?php 
 if (!empty($_POST)) {
  // set the cookie with the submitted user data
  setcookie('color',$_POST['color']);
  setcookie('name', $_POST['name']);
  // redirect the user to final landing page so cookie info is available
  header("Location:form_data.php");
 } else {
  echo "<b>fav color:</b>".$_COOKIE['color'];
  echo "<b>name:</b>".$_COOKIE['name'];
 }
?>

Вы можете перенаправить их в любое удобное для вас место.Надеюсь, это поможет и удачи!

2 голосов
/ 29 июня 2011

функция setcookie вашего вопроса не удалась.setcookie ($ name, $ value);

Пример: setcookie ('color', 'red');

echo $ _COOKIE ['color'];// outout: красный

0 голосов
/ 14 октября 2012

Может кто-нибудь объяснить, что написал Барабом:

Однако вы заметите, что переменные $ _COOKIE недоступны пока ... если вы перезагрузите эту страницу, они появятся.

<?php 
 if (!empty($_POST)) {
  // set the cookie with the submitted user data
  setcookie('color',$_POST['color']);
  setcookie('name', $_POST['name']);
  // redirect the user to final landing page so cookie info is available
  header("Location:form_data.php");
 } else {
  echo "<b>fav color:</b>".$_COOKIE['color'];
  echo "<b>name:</b>".$_COOKIE['name'];
 }
?>

Просто пытаюсь понять, почему это так, поскольку пользователь перенаправляется на страницу отправки.

0 голосов
/ 29 июня 2011

Я не знаю, почему вы хотите использовать куки. Как я знаю, вы можете использовать сеансы для передачи информации пользователей, как это: Это полный пример, который работает для меня

<?php
session_start();
if(array_key_exists('sub',$_POST))
$_SESSION['name']=$_POST['name'];
?>
<html>
<form  method="post">
<input type='text' name="name">
<input type='submit' name='sub' value='send my info'>
</html>

а на другой странице просто используйте эту:

<?php
session_start();
$r=$_SESSION['name'];
echo $r;
?>

не забудьте вызвать session_start ();на каждой странице, когда вы хотите использовать сеансы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...