将php变量数据从一页传递到另一页

时间:2019-04-03 05:44:00

标签: php mysql

我已经从页面上说a.php的值传递给b.php。该值已保存在变量中。我正在尝试将该值传递到另一个页面,例如c.php以保存在db中,但是传递的值为NULL。

我尝试使用会话,cookie和其他表单传递方法。 A.php还具有其他值和有效的字段。我只需要解决这个问题。谢谢。

a.php

<form action="b.php" method="post">
<input type="text" name="varname">
<input type="submit">
//then there is rest of the other fields and codes on the page

b.php

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "edg_dsh";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$a_num = $_POST['varname']; //value sent by a.php
?>
<html>
<head></head>
<body>
<p> <?php echo $a_num ?> This is the value a has passed </p>

<form action="c.php" method="post">
<input type="text" name="b_var" value="<?php $a_num ?>" placeholder="<?php echo $a_num ?>" readonly/>
<input type="text" name="name"/>
<input type="submit">
</form>
</body>
</html>

c.php

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "edg_dsh";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$b_var=$_POST["b_var"];
$name=$_POST["name"];

if($b_var==NULL)
{
    echo "Field is empty";
}
else{
$sql = "INSERT INTO testing (var, name) VALUES ('$b_var', '$name')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
}

$conn->close();

?>

我需要$ b_var才能从a.php传递值,而不是null。

3 个答案:

答案 0 :(得分:1)

在b.php中

替换此行

<input type="text" name="b_var" value="<?php $a_num ?> placeholder="<?php echo $a_num ?> readonly>

使用

<input type="text" name="b_var" value="<?php echo $a_num; ?>" placeholder="<?php echo $a_num; ?>" readonly>

然后尝试。

答案 1 :(得分:1)

您错过了该文本框值中的回声

尝试

<input type="text" name="b_var" value="<?php echo $a_num ?>" placeholder="<?php echo $a_num ?>" readonly>

答案 2 :(得分:1)

您的HTML <input标记存在问题:

1)您尚未将echo放入value

2)您尚未关闭valueplaceholder属性。

3)另外,建议:HTML <input标签是自动关闭的,因此请在末尾放置/>而不是>

已更正的HTML:

<input type="text" name="b_var" value="<?php echo $a_num;?>" placeholder="<?php echo $a_num ?>: readonly/>