Sé que esta puede ser una pregunta tonta, pero realmente me estoy volviendo loco.

Soy nuevo en PHP y me gustaría crear un formulario como este

enter image description here

Donde el usuario ingresa su nombre y una reseña del restaurante, y cuando se hace clic en el botón, los datos deben agregarse debajo de las otras reseñas en la página. Probé este código en HTML para crear el formulario

<form action="aggRecensione.php" method="post">
    <p class="noIndent">Nome: <input type="text" name="nome"></p>
    <p class="noIndent">Recensione</p>
    <textarea name="recensione" rows="3" cols="40"></textarea>
    <input type="submit" value="Aggiungi recensione" name="pulsanteRecensione" onclick="location.href='aggRecensione.php';">
</form>

Y este código en PHP (aggRecensione.php)

<?php
    $nome = $_POST('nome');
    $testo = $_POST('recensione');
    echo "<p class=\"noIndent\">Recensione di $nome:</p>";
    echo "<p>$testo</p>";
?>

Pero el PHP no funciona. Nunca antes había manejado botones y todos los tutoriales que encontré no me ayudaron. ¿Qué estoy haciendo mal?

1
mara6399 19 mar. 2017 a las 17:33

2 respuestas

La mejor respuesta

Casi buena, pero tal vez puedas intentarlo

<?php
    $nome = $_POST['nome'];
    $testo = $_POST['recensione'];
    echo "<p class=\"noIndent\">Recensione di $nome:</p>";
    echo "<p>$testo</p>";
?>

Eso porque el contenido de $_POST es una matriz y array keys se indican entre paréntesis []

También quite el onclick="location.href='aggRecensione.php';"

Y para asegurarse de que el usuario realmente presiona el botón, también puede agregar esto

<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $nome = $_POST['nome'];
    $testo = $_POST['recensione'];
    echo "<p class=\"noIndent\">Recensione di $nome:</p>";
    echo "<p>$testo</p>";
}
?>

http://php.net/manual/en/reserved.variables.post.php

3
Koen Hollander 1 oct. 2018 a las 12:07

Elimina esto

onclick="location.href='aggRecensione.php';"

Esto llamará a la página como método get.

Y cambia estas dos líneas.

$nome = $_POST['nome'];
$testo = $_POST['recensione'];
2
SANTOSHKUMAR SINGH 19 mar. 2017 a las 14:37