php失去变量值

时间:2014-02-18 09:54:43

标签: php mysql

嗨,这是我的问题:我将html表单中的值发布到php页面,我正在以这种方式阅读

<?php
$id = $_REQUEST['id'];
?>

一切都是对的。无论如何,我需要使用if(isset($_POST['submit']))更改我的代码,当我尝试在此if语句中执行插入查询时,$ id为空。这是代码:

$id = $_REQUEST['id'];
echo $id ; // this prints the right value

if(isset($_POST['submit_2']))  {
    $user = "cardatabase";
    $password = "";
    $host = "";
    $database = "my_cardatabase";
    $connessione = mysql_connect($host, $user, $password);

    @mysql_select_db($database, $connessione) or die( "Unable to select database");
    echo $id ; // this prints nothing
    $query = "INSERT INTO myTab (Client) VALUES ('".$id."')";
    mysql_query($query);
    mysql_close();

注意我知道查询是正确执行的,因为我有一些在我的数据库中创建的其他auto_increment属性。 我也试图以这种方式将$ id声明为全局变量

global $id;
$id = $_REQUEST['id'];

但仍然在“if”内部为空 和

$GLOBALS['id'] = $_REQUEST['id'];
if(...){
$query = "INSERT INTO myTab (Client) VALUES ('".$GLOBALS['id']."')";
}

但也不起作用。

编辑: HTML格式

<form id="myForm" action="myPage.php" method="post">
<input type="hidden" name="id" value="<?php $id?>">
<input type="submit" name="Submit" value="Go" id="fbutton" /> <br /> 
</form>

编辑2:

回答你的问题。 这个表单在我的page1.html中 然后在我的.php中我有另一个html表单,这是if(isset($_POST['submit'])) for,而不是上面发布的那个(即包含$ id值的那个) 我的问题是,我从第一个表单获得的值在控制第二个表单的if语句中丢失。

编辑3: 这个php页面中的第二个表单

<form action="myPage.php" method="post">    
<label for="name">Model :</label><input type="text" name="model" /> <br /> 
<input type="submit" name="submit_2" value="Go" /> <br />
</form>

WorkdFlow

第1页:登录表单 - 获取id的值并传递给第2页

第2页:获取id值并存储在$ id中,有一个按钮(例如“插入到db”)导致第3页,创建一个表单将$ id(作为隐藏输入)传递给第3页

第3页:创建一个新表单,让用户在数据库中插入某种数据并提交。在这里,我需要存储我在第2页中插入的$ id的值,以及从最后一个表单中获取的值

3 个答案:

答案 0 :(得分:0)

你的if语句是否通过了条件且id没有显示,

尝试将你的if改为

  if(isset($_POST['Submit']))  {

请注意提交中的大S而非s,因为名称中的敏感案例。

你的身份证据你说你已经正常地回应了它,但更好的是为什么要在这样的价值中回应它:

   <input type="hidden" name="id" value="<?php echo $id ; ?>">

编辑:

要防止从两个表单中读取,请尝试更改按钮提交名称之一

像那样

      <input type="submit" name="second_Submit" value="Go" id="fbutton" />

然后使用此if if statment:

    if(isset($_POST['second_Submit']))  {

<强> EDIT2:

1页:

 session_start(); //------put this in very top of page.
  $_SESSION['myid'] = $id ;

第3页:

像那样追回它

   session_start(); //------put this in very top of page.
  echo $_SESSION['myid'] ;

你不需要在第2页传递这个id。

您的查询将是

    $query = "INSERT INTO myTab (Client) VALUES ('".$_SESSION['myid']."')";

答案 1 :(得分:0)

您需要添加echo

<input type="hidden" name="id" value="<?php echo $id; ?>">

答案 2 :(得分:0)

尝试更改条件如下。

if(isset($_POST['submit']))  {

应该是

if(isset($_POST['Submit']))  {
隐藏字段中的

echo $id

<input type="hidden" name="id" value="<?php echo $id; ?>">

根据您在问题中粘贴的示例,您忘记在echo $id // this prints nothing语句中使用分号。我希望你在代码中正确使用它。