Autor Tema: Problemas para leer valores con un programa php desde un formulario  (Leído 2509 veces)

Jose Maldonado

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 16
    • Ver Perfil
Hola a todos.
A continuación les explico los problemas que tengo como principiante en el desarrollo de aplicaciones Web.

Por cierto, seguí los cursos "aprender HTML y php desde cero".  Excelentes los dos. Sólo hay un par de cosas que no me funcionaron y que tienen que ver con el problema que les voy a describir.

Escribí un programita en HTML al que llamé selecciona_actividad_1.html, se trata de un formulario que contiene cuatro casillas de verificación.
El programa php asociado a ese formulario lo llamé sistema1.php. Este programa tiene como objetivo sólo leer las casillas de verificación.

Los dos archivos fueron subidos al mismo directorio en el servidor remoto. Concretamente en la carpeta /htdocs/sistemasdeinformacion.

Cuando pulso mi dirección en el servidor remoto:
http://www.maldonaj.byethost13.com/selecciona_actividad_1.html, aparece de manera correcta el formulario y puedo marcar las casillas de verificación, sin embargo cuando pulso el botón "enviar", el servidor no hace nada, sólo responde con una pantalla en blanco, aunque si puedo ver, al estar utilizando Get,  en la dirección, las casillas marcadas.

He cambiado de mil maneras, en "action",  la ruta de sistema1.php sin ningún resultado.

Esto también me pasaba con los ejemplos del curso de php. Cuando utilizaba exactamente los nombres de los archivos (ficheros) del curso todo funcionaba bien, pero cuando le colocaba otros nombres a esos archivos, pasaba lo mismo que el problema que les acabo de describir.

A continuación les envío el código de los dos programitas que les señalé. Por favor, además de indicarme por qué no se enlaza el programa php con el html, mucho agradecería me señalen si hay alguna falla en la escritura del programa php.


Un saludo y gracias.


Código del archivo selecciona_actividad_1.html

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> Mi primera aplicación en la Web</title>
</head>
       <body>

  <h1> SELECCIÓN DE LA ACTIVIDAD A REALIZAR </h1>
  <hr size="8px" color="blue" />
  <hr size="8px" style="color: black; background-color: black; width:75%;" />
 
              <form method="get"action="sistema1.php">
                <br/> <br/>
Insertar un registro: <input name="insertar" type="checkbox"/>
<br/> <br/>
    Mostrar registros: <input name="mostrar" type="checkbox"/>
                <br/> <br/>
            Eliminar registros: <input name="eliminar" type="checkbox"/>
                <br/> <br/>
                Consultar: <input name="consultar" type="checkbox"/>
                <br/> <br/>
 
                <input value="Enviar" type="submit" />

<hr size="8px" color="blue" />
    <hr size="8px" style="color: black; background-color: black; width:75%;" />
             </form>

       </body>
</html>






Código del archivo sistema1.php

Código: [Seleccionar]
<html> //Ejemplo de un sistema simple programado en php
<body>
<title> La respuesta del interpretador Php</title>
<?php
//Recepción de los datos del primer formulario
   
$insertar= $_GET['insertar'];<br/>
$mostrar= $_GET['mostrar'];<br/>
$eliminar= $_GET['eliminar'];<br/>
$consultar= $_GET['consultar'];<br/>

echo $insertar; <br/> <br/>    
        echo 
$mostrar; <br/> <br/> 
        echo 
$eliminar; <br/> <br/> 
        echo 
$consultar; <br/> <br/> 

if($insertar == true)
{
echo 'Insertar';
}
<br/> <br/> 
        if(
$mostrar == true)
{
echo 'Mostrar';
}
<br/> <br/> 
if($eliminar == true)
{
echo 'eliminar'
}
<br/> <br/> 
if($consultar == true)
{
echo 'Consultar';
}
?>

</body>
</html>


César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2228
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Problemas para leer valores con un programa php desde un formulario
« Respuesta #1 : 04 de Septiembre 2014, 08:39 »
Hola José, cuando utilizas php en un servidor el servidor tiene una configuración en la cual se le puede indicar si debe mostrar los mensajes de error o no por pantalla en caso de un error.

Por lo que se ve, tu servidor no tiene activada esta opción, por eso se te queda la pantalla en blanco (se produce un error, pero no se muestra el mensaje de error).

He probado tu código con un servidor que sí tiene activado el mostrar los mensajes de error y me sale lo siguiente:

Parse error: syntax error, unexpected '<' in /public_html/sistema1.php on line 7

Este es el primer error detectado (pero hay más).


En la línea 7 ( y en otras líneas) tienes escrito un <br/> incorrectamente, fíjate:

$insertar=   $_GET['insertar'];<br/>


<br/> es una etiqueta html y tú no puedes poner una etiqueta html sin más dentro de código php. Podrías concatenar la etiqueta como texto a mostrar, algo así como $insertar=   $_GET['insertar'].'<br/>'; pero en este caso no tiene demasiada lógica hacer esto, ya que tú lo que quieres es almacenar en la variable $insertar el valor recibido, por tanto simplemente debes escribir:

$insertar=   $_GET['insertar'];

En otras líneas ocurre algo parecido, por ejemplo:

echo $insertar;   <br/> <br/>   no es correcto.

Debes escribir echo $insertar.'<br/><br/>';

echo lo que hace es poner como código html el texto que se le pasa en forma de variables o entre comillas. En este caso el . es el operador para concatenar y así hacemos que se muestre como html el contenido de la variable y seguidamente dos saltos de línea.

Aquí tienes el mismo problema:

if($insertar == true)
      {
      echo 'Insertar';
      }
      <br/> <br/>
        if($mostrar == true)
      {

No puedes poner etiquetas html sueltas dentro de código php.

Tendrías que escribirlo como echo 'Insertar<br/><br/>';




El código "corregido" sería el siguiente:
Código: [Seleccionar]
<body>
<title> La respuesta del interpretador Php</title>
<?php
//Recepción de los datos del primer formulario
echo '<br/><br/>';
$insertar= $_GET['insertar'];
$mostrar= $_GET['mostrar'];
$eliminar= $_GET['eliminar'];
$consultar= $_GET['consultar'];

echo $insertar.'-1<br/><br/>';    
        echo 
$mostrar.'-2<br/><br/>'
        echo 
$eliminar.'-3<br/><br/>'
        echo 
$consultar.'-4<br/><br/>'

if($insertar == true)
{
echo 'Insertar<br/><br/>';

        if(
$mostrar == true)
{
echo 'Mostrar<br/><br/>';

if($eliminar == true)
{
echo 'eliminar<br/><br/>'
}
if($consultar == true)
{
echo 'Consultar<br/><br/>';
}
?>

</body>
</html>

Pruébalo para ver si te funciona y ya nos comentas.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

Jose Maldonado

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 16
    • Ver Perfil
Re:Problemas para leer valores con un programa php desde un formulario
« Respuesta #2 : 04 de Septiembre 2014, 20:34 »
Estimado César,
todo me funcionó perfecto.
Si, corrí el riesgo de mezclar en forma errada html con php. Es que no me detuve en los detalles al seguir el curso "aprender php desde cero", pero lo que me señalaste es muy importante para mí, porque ahora ya se que tengo que tener cuidado al escribir código html en php.

Ya me extrañaba que  no veía los mensajes de error. Esa era la siguiente pregunta que iba a realizar. En todo caso, ahora quisiera saber si ¿hay alguna manera de alertar o de solicitar que se configure el servidor para que generen los mensajes de error?.

Seguramente, cuando estuve trabajando con los ejemplos del curso, además de cambiar los nombres de los programas, también cambié alguna línea de código y la escribía en forma errada y por eso no funcionaban.

Ayer escribí un programa en php que utiliza un switch para seleccionar y realizar inserción, modificación, borrado y lectura de registros en una tabla mysql. Funciona perfecto. Hoy me voy a dedicar a enlazar ese programa con formularios para seleccionar esas actividades a través de una página web. Seguramente, al terminar el día,  tendré más preguntas.

Por la diferencia de horario los leeré en unas cuantas horas.

Un saludo, éxitos y mil gracias.



César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2228
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Problemas para leer valores con un programa php desde un formulario
« Respuesta #3 : 04 de Septiembre 2014, 21:58 »
Hola, te recomiendo que revises nuevamente el curso de php y que consultes sobre aquellos programas que no te funcionen.

Sobre la visualización de los errores en pantalla, aquí he dejado una información que espero que sea útil: http://www.aprenderaprogramar.com/foros/index.php?topic=1261.0

Saludos
Responsable de departamento de producción aprenderaprogramar.com

 

Esto es un laboratorio de ideas...
Aprender a programar

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".