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
<!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
<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>
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:
<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!