Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema al enviar un comentario mediante PHP

Estas en el tema de Problema al enviar un comentario mediante PHP en el foro de PHP en Foros del Web. Buenas tardes a todos. Antes que nada, soy un nuevo user, soy diseñador gráfico y diseñador web (Aunque algo novato). Espero estar aqui durante muchos ...
  #1 (permalink)  
Antiguo 26/02/2014, 15:12
 
Fecha de Ingreso: febrero-2014
Mensajes: 60
Antigüedad: 10 años, 8 meses
Puntos: 0
Problema al enviar un comentario mediante PHP

Buenas tardes a todos.
Antes que nada, soy un nuevo user, soy diseñador gráfico y diseñador web (Aunque algo novato). Espero estar aqui durante muchos muchos años metido

Acudo aqui para ver si me podeis resolver el siguiente problema, a ver si puedo explicar lo mas claro posible:

Resulta que tengo que crear contenido en un fichero de texto, el cual generare en un directorio especifico. El contenido va a ser creado a traves del texto de un campo de formulario de TextArea:

Este es el código HTML del campo de formulario, en el cual se puede ver que, una vez escriba el texto, se enviara a "funciones.php"

Código:
<body>
     	<div id="contenedora">
          	<h1>Déjanos tu comentario:</h1>
               <form id="form1" name="form1" method="post" action="includes/funciones.php">
               	<div class="fila-form-1">
                    	<label for="textarea">Comentario:</label>
               		<textarea name="mensaje" id="textarea"></textarea>
                    </div>
               	<div class="fila-form-2">
                    	<input type="submit" name="button" id="button" value="Enviar" />
                    </div>
               </form>
          </div>
     </body>
</html>
En el siguiente se puede ver el codigo de "funciones.php"

Código:
<body>
     $abrir = fopen("../mensajes/fichero_mensaje.txt","w") or die("<p class="respuesta_error">Ha tenido lugar un error al abrir el fichero destinado a almacenar su comentario, por lo que,");
     echo "<div id="contenedora"><p class="respuesta_ok">El fichero de texto destinado a almacenar su comentario, ha sido abierto correctamente por lo que," ;
     $fwrite($abr, $_POST["mensaje"]) or die("no se ha podido guardar.</p></div>");
     echo "su comentario ha sido archivado con éxito.</p></div>";
     fclose($abrir);
     </body>
</html>
Teoricamente se debería crear un fichero de texto en dicha carpeta, pero no se crea sin embargo...

¿Sabeis a que puede ser debido?

Gracias y un saludo!
  #2 (permalink)  
Antiguo 26/02/2014, 16:53
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema al enviar un comentario mediante PHP

¿No faltan los signos de apertura y cierre de php en funciones.php?

También hay errores en las comillas como en la función die().

Un saludo
  #3 (permalink)  
Antiguo 26/02/2014, 16:57
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problema al enviar un comentario mediante PHP

Y cuál es el mensaje de error que recibes?

La causa más común de que no se cree el archivo es que la ruta no sea correcta; como estás usando ruta relativa, esta queda en función del script que se ejecuta al iniciar la petición y no de la ubucación de funciones.php

Ejemplo:
- index.php -> Es el script ejecutado en un principio
- includes -> Carpeta
------- funciones.php
- mensajes -> Carpeta
------- fichero_mensaje.txt

Si tu estructura es más o menos así, entonces a la ruta usada en fopen() le sobran los primeros 3 caracteres: ../

Heli0s, yo supuse que quitó el resto de código para mostrar solo la parte "donde está el error", pero ya veremos que nos dice.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 27/02/2014, 07:56
 
Fecha de Ingreso: febrero-2014
Mensajes: 60
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Problema al enviar un comentario mediante PHP

Hola, gracias por responder.

He probado quitandole la ruta relativa, y tampoco funciona.

El error que me sale es el siguiente:

Notice: Undefined index: mensaje on line 12
no se ha podido guardar.

La línea 12 es donde esta fwrite...

Y el codigo php que puse antes, esta incompleto. Es así:

Código PHP:
<body>
     <?php
         $abrir 
fopen("../mensaje/fichero_mensaje.txt","w") or die("<p class='respuesta_error'>Ha tenido lugar un error al abrir el fichero destinado a almacenar su comentario, por lo que,");
         echo 
"<div id='contenedora'><p class='respuesta_ok'>El fichero de texto destinado a almacenar su comentario, ha sido abierto correctamente por lo que," ;
         
fwrite($abrir$_POST["mensaje"]) or die("no se ha podido guardar.</p></div>");
         echo 
"su comentario ha sido archivado con éxito.</p></div>";
         
fclose($abrir);
     
?>
     </body>
  #5 (permalink)  
Antiguo 27/02/2014, 09:38
 
Fecha de Ingreso: febrero-2014
Mensajes: 60
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Problema al enviar un comentario mediante PHP

Ya está solucionado. El fallo se debía a que el atributo "action" de form tenía establecida una ruta relativa. le quite los "../" y ya se me pudo crear el fichero de texto.

Gracias!

Etiquetas: comentario, formulario, html, mediante
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:02.