Передача переменных данных php с одной страницы на другую

#php #mysql

#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.

Комментарии:

1. Удалите атрибуты, доступные только для чтения, из текстового поля b_var и проверьте

2. value="<?php $a_num ?> placeholder="<?php echo $a_num ?> Вы забыли закрыть двойную кавычку "

3. Вы не повторили свое значение в b.php ? value="<?php $a_num ?> Кроме того, здесь отсутствуют некоторые кавычки " .

4. Если вы не хотите, чтобы пользователь редактировал входные данные при b.php изменении readonly на disabled

5. @catcon если вы установите для него значение disabled, то вы не сможете передать значение. Он должен быть установлен только для чтения.

Ответ №1:

У вашего HTML <input тега проблемы:

1) Вы не поместили echo в value

2) Вы не закрыли атрибуты value и placeholder .

3) Кроме того, предложение: тег HTML <input самозакрывается, поэтому, пожалуйста, поставьте /> вместо > в конце.

Исправленный HTML:

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

Ответ №2:

вы пропустили echo в этом значении текстового поля

попробуйте это

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

Ответ №3:

В 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>
  

и попробуйте.