dsfovbm931034814 2019-04-27 17:30
浏览 104

setcookie()PHP不使用变量

I need to set cookies in an assignment. When I set them using a string, ie setcookie('Name', 'John', time() + 86400) it works, but when using a PHP variable, ie setcookie('Name', $name, time() + 86400) the cookie is not set.

I'm not sure what I am doing wrong. I have echoed out the $name variable on my page and it shows up so I know that is being set. When I display the cookie using $_COOKIE['Name'], it works when it received a string, but doesn't when it's a PHP variable.

order01.php

<form action="order02.php" class="formLayout">
 <div class="formGroup">
  <label>First name:</label>
  <input type="text" name="fname" class="textbox" autofocus 
  required placeholder="First name" title="first name" 
  maxlength="20" pattern="[A-Za-z'-]{2,20}">
 </div>
 <div class="formGroup">
  <label> Car model:</label>
  <div class="formElements">
   <input type="radio" name="model" required value="Mustang">Ford Mustang<br>
   <input type="radio" name="model" required value="Subaru">Subaru WRX 
STI<br>
   <input type="radio" name="model" required value="Corvette">Corvette<br>
  </div>
 </div>


<?php
 $name = $_GET['fname'];
 $model = $_GET['model'];

 //write cookies for name and model for 1 day
 setcookie('Name', $name, time() + 86400);
 setcookie('Model', $model, time() + 86400);
?>

order02.php

if(isset($_COOKIE['Name'])){
 echo "Cookie ".$_COOKIE['Name']." is set";
}
else{
 echo "<div class='pageContainer'>";
 echo "<h2 class='containerText, centerText'>Failed to validate inputs";
 echo "<br><br>";
 echo "<a href='order01.php'><button>Go Back</button></a>";
 echo "</div>";
 exit();
}
  • 写回答

2条回答 默认 最新

  • dongzhankou2090 2019-04-27 17:53
    关注

    There are few issues in your code, first, there is no closing </form> tag and second you have to submit your form on order01.php where you are saving your cookie so try this and it will work

    Order01.php

    <form action="order01.php" class="formLayout">
    <div class="formGroup">
     <label>First name:</label>
     <input type="text" name="fname" class="textbox" autofocus 
     required placeholder="First name" title="first name" 
     maxlength="20" pattern="[A-Za-z'-]{2,20}">
    </div>
    <div class="formGroup">
     <label> Car model:</label>
     <div class="formElements">
      <input type="radio" name="model" required value="Mustang">Ford Mustang<br>
     <input type="radio" name="model" required value="Subaru">Subaru WRX STI<br>
     <input type="radio" name="model" required value="Corvette">Corvette<br>
    </div>
    
     <input type="submit" value="submit">
    </div>
    </form>
    

    Order02.php

      <?php
    
     $name = $_GET['fname'];
     $model = $_GET['model'];
    
     //write cookies for name and model for 1 day
     setcookie('Name', $name, time() + 86400);
     setcookie('Model', $model, time() + 86400);
    
    if(isset($_COOKIE['Name'])){
      echo "Cookie ".$_COOKIE['Name']." is set";
     }
     else{
       echo "<div class='pageContainer'>";
       echo "<h2 class='containerText, centerText'>Failed to validate inputs";
       echo "<br><br>";
       echo "<a href='order01.php'><button>Go Back</button></a>";
       echo "</div>";
       exit();
      }
    

    ?>

    评论

报告相同问题?

悬赏问题

  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入