Estoy tratando de completar datos de un sitio web a otro sitio web: a.html:
<form action="b.php" method="post"> <textarea id="myProjects" name="mp"></textarea> <input id="submit" type="submit" value="Submit" /> </form>en b.php:
<?php $content=$_POST['mp']; echo "you entered ".$content; ?> Esto funciona de una manera muy extraña, cuando hago clic en el botón Enviar, se me dirige a la página b.php y puedo ver lo que ingresé. Pero si vuelvo a cargar esta página, no actualizo, mi contenido desaparece y arrojo Warning: Undefined array key "mp" Parece que los datos recibidos de $_POST están almacenados "temporalmente". Soy nuevo en PHP, así que no estoy seguro de cómo puedo resolverlo.
Puede usar la función PHP SESSION para mantener los datos persistentes:
en b.php:
<?php // Start the session session_start(); // save the input var as a SESSION property if (isset($_POST['mp'])) { $_SESSION['content'] = $_POST['mp']; } // display the property echo "you entered " . $_SESSION['content'];En términos generales, lo que desea hacer es almacenar el valor de $_POST['mp'] en la variable $_SESSION para que persista de una solicitud de página a la siguiente.
Sin embargo, hacerlo manipulando estas variables directamente es generalmente una mala práctica. A menos que desinfecte la entrada del usuario, está abierto a una gran cantidad de ataques de secuencias de comandos. Aunque hay algo de aprendizaje involucrado, es mucho mejor usar un marco PHP establecido (por ejemplo, Laravel), que tiene un conjunto completo de funciones de validación y administra el proceso de inicio de sesión por usted. Un buen marco también te ayudará de muchas otras maneras.