Estoy publicando la variable "usuario" en otra página, es decir, Survey.php de la siguiente manera:
índice.html
<form action="Survey.php" method="post" name="frm"> <div><input type="text" name="user"></div> <div><input type="submit" value="Start" class="btn btn-primary btn-sm"></div> </form>
Puedo acceder a la variable "usuario" en la página Survey.php en su primera carga. Ahora, porque también tengo otro formulario en esta página, que publica datos en sí mismo.
Encuesta.php
$user = $_POST["user"]; echo 'this is '.$user; $email = $_POST[email]; if($_SERVER['REQUEST_METHOD'] == 'POST'){ $sql = "INSERT INTO `test_db` (`user`, `email`) VALUES '$user', '$email');"; echo $sql; } <form action="survey.php" method="post"> <div><input type="text" name="email"></div> <div><input type="submit" value="submit" class="btn btn-primary btn-sm"></div> </form>
Estoy tratando de enviar "usuario" y "correo electrónico" juntos a la base de datos ahora. Lo que sucede en realidad es que cada vez que hago clic en el botón Enviar de la página de encuesta.php, la variable "usuario" se vacía.
Tienes que probar los DATOS de tus publicaciones y la sesión de usuario. En tu código PHP, puedes tener algo así
<?php session_start(); if(isset($_POST['user'])) $_SESSION['user'] = $_POST['user']; if(isset($_POST['email'])) $_SESSION['email'] = $_POST['email']; if(isset($_SESSION['user']) AND isset($_SESSION['email'])){ $sql = "INSERT INTO `test_db` (`user`, `email`) VALUES '$_SESSION['user']', '$_SESSION['email']');"; echo $sql; }
Si no desea usar sesiones, puede jugar con su formulario de esta manera:
$user = $_POST["user"]; echo 'this is '.$user; $email = $_POST[email]; if($_SERVER['REQUEST_METHOD'] == 'POST'){ $sql = "INSERT INTO `test_db` (`user`, `email`) VALUES '$user', '$email');"; echo $sql; } <form action="survey.php" method="post"> <div><input type="text" name="email"></div> <div><input type="submit" value="submit" class="btn btn-primary btn-sm"></div> <input type="hidden" name="user" value="<?php echo $user; ?>"> </form>
Tiene $ usuario y $ correo electrónico como variable, entonces ¿por qué los está poniendo como cadenas? El siguiente código debería funcionar:
$user = $_POST["user"]; echo 'this is '.$user; $email = $_POST[email]; if($_SERVER['REQUEST_METHOD'] == 'POST'){ $sql = "INSERT INTO `test_db` (`user`, `email`) VALUES '" . $user . "', '" . $email . "');"; echo $sql; } <form action="survey.php" method="post"> <div><input type="text" name="email"></div> <div><input type="submit" value="submit" class="btn btn-primary btn-sm"></div> </form>