Esta mal mi programación en Html+PHP

Tengo problema al ejecutar este html que linkea a un php para mostrar los resultados, pues estos no se ven estoy haciendo mal mi programación en la sintaxis, favor su ayuda
Ejemplo 221.html
<Html>
 <Head>
   <Title>
     Registro de Notas
   </Title>
   </Head>
 <Body>
  <Center>  
    <Form Action="PromedioB.php" Method="Post">
    <Table>
      <Tr>
        <Th Colspan=3> REGISTRAR NOTAS</TH>
      <Tr>
        <Td> Alumno
        <Td> <Input Type="Text" Name="alumno">
      <Tr>
        <Td> Nota Nº 01
        <Td> <Input Type="Text" Name="nota1">
      <Tr>
        <Td> Nota Nº 02
        <Td> <Input Type="Text" Name="nota2">
      <Tr ALIGN=CENTER>
        <Td Colspan=3>
        <Input Type="SubMit" Value="Enviar">
        <Input Type="Reset" Value="Cancelar">
    </Table>
    </Form>
  <Center>   
  </Body>
</Html>
PromedioB.php
<?
//Almacena en variables los datos ingresados
$alumno=$_POST['alumno'];
$nota1=$_POST['nota1'];
$nota2=$_POST['nota2'];
//Controla el rango de 0 a 20 de las notas
If (($nota1<0 OR $nota1>20) OR ($nota2<0 OR $nota2>20))
{
   Header ('Location: aviso.php');
   Exit;
}
//Calcula el promedio
$promedio=($nota1 + $nota2) / 2;
//Calcula la observacion
If ($promedio>=10.5)
   $observacion="Aprobado";
Else
   $observacion="Desprobado";
//Calcula la cualidad
If (($promedio>=0) AND ($promedio<=5.4))
   $cualidad="Pésimo";
ElseIf (($promedio>=5.5) AND ($promedio<=10.4))
   $cualidad="Malo";
ElseIf (($promedio>=10.5) AND ($promedio<=13.4))
   $cualidad="Regular";
ElseIf (($promedio>=13.5) AND ($promedio<=16.4))
   $cualidad="Bueno";
ElseIf (($promedio>=1.5) AND ($promedio<=20))
   $cualidad="Excelente";
?>
<Html>
<Head>
<Title>
Resultados
</Title>
</Head>
<Body>
<Center>
<Table Border=3>
 <TH Colspan=2> NOTAS DEL ALUMNO
 <TR>
 <TD> Alumno
 <TD><?=$alumno?>
 <TR>
 <TD> Nota Nº 01
 <TD><?=$nota1?>
 <TR>
 <TD> Nota Nº 02
 <TD><?=$nota2?>
 <TR>
 <TD> Promedio
 <TD><?=$promedio?>
 <TR>
 <TD> Observación
 <TD><?=$observacion?>
 <TR>
 <TD> Cualidad
 <TD><?=$cualidad?>
 <TR>
 <TD Colspan=2 Align="Center"> <A HREF="Ejemplo221.html"> Regresar </A>  
</Table>
</Center>
</Body>
</Html>
aviso.php
<Html>
<Head>
<Title>
Mensaje al Usuario
</Title>
</Head>
<body>
<Center>
<Font Size=5>
Los datos no se han ingresado correctamente </Font>
<Hr>
<A HREF="Ejemplo221.html"> Regresar </A>  
</Center>
</body>
</Html>
Respuesta
1
No entiendo muy bien tu forma de programar, pero por lo que veo en los scrips que dejaste existen varios errores y aun puede mejorar un poco más, en el formulario donde ingresas el alumno y las notas deberías restringir a que solo ingresen números y que el numero de dígitos sea de 2 para que no puedan escribir numero muy grandes y este dentro de tu limite de 20. No te muestra nada al momento de linkiar porque el script de php no muestra nada, la tabla la tienes en html pero pareciera que la tienes en un archivo diferente por lo que el script de php se limita solo a realizar las operaciones que le indicas y solo eso pero no hay un link en ese script que conecte con la parte html que tienes en la tabla, mira aquí rapido te pongo un script en html y otro en php que te ayudara a realizar lo que necesitas:
>>>>form.html<<<<
<Html>
 <Head>
   <Title>
     Registro de Notas
   </Title>
   </Head>
 <Body>
  <Center>  
    <Form Action="script.php" Method="Post">
    <Table>
      <Tr>
        <Th Colspan=3> REGISTRAR NOTAS</TH>
      <Tr>
        <Td> Alumno
        <Td> <Input Type="Text" Name="alumno">
      <Tr>
        <Td> Nota Nº 01
        <Td> <Input Type="Text" Name="nota1" maxlength="2" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;" >
      <Tr>
        <Td> Nota Nº 02
        <Td> <Input Type="Text" Name="nota2" maxlength="2" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;" >
      <Tr ALIGN=CENTER>
        <Td Colspan=3>
        <Input Type="SubMit" Value="Enviar">
        <Input Type="Reset" Value="Cancelar">
    </Table>
    </Form>
  <Center>   
  </Body>
</Html>
>>>>>script.php<<<<<
<?
//Almacena en variables los datos ingresados
$alumno=$_POST['alumno'];
$nota1=$_POST['nota1'];
$nota2=$_POST['nota2'];
//Controla el rango de 0 a 20 de las notas
if ($nota1<0 || $nota1>20 || $nota1=="") {echo "<center>
<h4>Nota 1 no esta dentro del rango o dejaste este espacio vacio</h4>
</center>";}
if ($nota2<0 || $nota2>20 || $nota2=="") {echo "<center>
<h4>Nota 2 no esta dentro del rango o dejaste este espacio vacio</h4>
</center>";}
//Calcula el promedio
$promedio=($nota1 + $nota2) / 2;
//Calcula la observacion
If ($promedio>=10.5)
   $observacion="Aprobado";
Else
   $observacion="Desprobado";
//Calcula la cualidad
If (($promedio>=0) AND ($promedio<=5.4))
   $cualidad="Pésimo";
ElseIf (($promedio>=5.5) AND ($promedio<=10.4))
   $cualidad="Malo";
ElseIf (($promedio>=10.5) AND ($promedio<=13.4))
   $cualidad="Regular";
ElseIf (($promedio>=13.5) AND ($promedio<=16.4))
   $cualidad="Bueno";
ElseIf (($promedio>=1.5) AND ($promedio<=20))
   $cualidad="Excelente";
echo "<Center>
<Table Border=3>
 <TH Colspan=2> NOTAS DEL ALUMNO
 <TR>
 <TD> Alumno
 <TD>$alumno
 <TR>
 <TD> Nota Nº 01
 <TD>$nota1
 <TR>
 <TD> Nota Nº 02
 <TD>$nota2
 <TR>
 <TD> Promedio
 <TD>$promedio
 <TR>
 <TD> Observación
 <TD>$observacion
 <TR>
 <TD> Cualidad
 <TD>$cualidad
 <TR>
 <TD Colspan=2 Align= Center> <A HREF=form.html> Regresar </A>  
</Table>
</Center>";
?>
Son solo 2 archivos y si bien te van a ayudar para mejorarlo.
Muchas gracias por Responder estimado Borgir
pero al ejecutar el programa me muestra así
20 || $nota1=="") {echo "
Nota 1 no esta dentro del rango o dejaste este espacio vacio
";} if ($nota2<0 || $nota2>20 || $nota2=="") {echo "
Nota 2 no esta dentro del rango o dejaste este espacio vacio
";} //Calcula el promedio $promedio=($nota1 + $nota2) / 2; //Calcula la observacion If ($promedio>=10.5) $observacion="Aprobado"; Else $observacion="Desprobado"; //Calcula la cualidad If (($promedio>=0) AND ($promedio<=5.4)) $cualidad="Pésimo"; ElseIf (($promedio>=5.5) AND ($promedio<=10.4)) $cualidad="Malo"; ElseIf (($promedio>=10.5) AND ($promedio<=13.4)) $cualidad="Regular"; ElseIf (($promedio>=13.5) AND ($promedio<=16.4)) $cualidad="Bueno"; ElseIf (($promedio>=1.5) AND ($promedio<=20)) $cualidad="Excelente"; echo " NOTAS DEL ALUMNO Alumno $alumno Nota Nº 01 $nota1 Nota Nº 02 $nota2 Promedio $promedio Observación $observacion Cualidad $cualidad Regresar "; ?>
Me estuve guiando de un libro que compre y es por eso que te envíe este programita anterior pero parece que el libro esta recontra mal porque casi el 50% de los programas no funcionan y salen algo parecido al anterior.
Lo estoy usando con el xampp en windows 7 y en xp
El programa lo probé antes de mandártelo en la resupesta, debería de funcionar sin problema, aunque, lo que te muestra es todo el apartado de php, puede ser causa de que no se este ejcutando bien, como dises que utilizaz el xamp podría ser que este mal configurado, tal vez.
Añade la palabra php al inicio del script de php, ¿en esta parte <?php justo al inicio del script en php, eso debería de resultar, pero si continuas con problemas te recomiendo que te descargues la paquetería appserv es la que yo utilizo y me va muy bien. De cualquier manera lo puedes ver funcionar en este link: http://computerservices.260mb.com/form.html, para que te des cuenta de que esta funcionando. También mejore algunos detalles y te dejo de nuevo el código:
>>>>>>form.html<<<<<<<
<Html>
 <Head>
   <Title>
     Registro de Notas by: bOrgiR
   </Title>
   </Head>
 <Body>
  <Center>  
    <Form Action="script.php" Method="Post">
    <Table>
      <Tr>
        <Th Colspan=3> REGISTRAR NOTAS</TH>
      <Tr>
        <Td> Alumno
        <Td> <Input Type="Text" Name="alumno">
      <Tr>
        <Td> Nota Nº 01
        <Td> <Input Type="Text" Name="nota1" maxlength="2" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;" >
      <Tr>
        <Td> Nota Nº 02
        <Td> <Input Type="Text" Name="nota2" maxlength="2" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;" >
      <Tr ALIGN=CENTER>
        <Td Colspan=3>
        <Input Type="SubMit" Value="Enviar">
        <Input Type="Reset" Value="Cancelar">
    </Table>
    </Form>
  <Center>   
  </Body>
</Html>
>>>>>>>script.php<<<<<<<
<?php
//Almacena en variables los datos ingresados
$alumno=$_POST['alumno'];
$nota1=$_POST['nota1'];
$nota2=$_POST['nota2'];
//Controla el rango de 0 a 20 de las notas
if ($alumno =="") {echo "<center>
<h4>Escribe un nombre para el alumno <A HREF=form.html> Regresar </A> </h4>
</center>";}
if ($nota1<0 || $nota1>20 || $nota1=="") {echo "<center>
<h4>Nota 1 no esta dentro del rango o dejaste este espacio vacio <A HREF=form.html> Regresar </A> </h4>
</center>";}
if ($nota2<0 || $nota2>20 || $nota2=="") {echo "<center>
<h4>Nota 2 no esta dentro del rango o dejaste este espacio vacio <A HREF=form.html> Regresar </A> </h4>
</center>";}
echo "by: bOrgiR";
if ($nota1>0 && $nota1<20 && $nota1!="" && $nota2>0 && $nota2<20 && $nota2!="" && $alumno !="")
{
//Calcula el promedio
$promedio=($nota1 + $nota2) / 2;
//Calcula la observacion
If ($promedio>=10.5)
   $observacion="Aprobado";
Else
   $observacion="Desprobado";
//Calcula la cualidad
If (($promedio>=0) AND ($promedio<=5.4))
   $cualidad="Pésimo";
ElseIf (($promedio>=5.5) AND ($promedio<=10.4))
   $cualidad="Malo";
ElseIf (($promedio>=10.5) AND ($promedio<=13.4))
   $cualidad="Regular";
ElseIf (($promedio>=13.5) AND ($promedio<=16.4))
   $cualidad="Bueno";
ElseIf (($promedio>=1.5) AND ($promedio<=20))
   $cualidad="Excelente";
echo "<Center>
<Table Border=3>
 <TH Colspan=2> NOTAS DEL ALUMNO
 <TR>
 <TD> Alumno
 <TD>$alumno
 <TR>
 <TD> Nota Nº 01
 <TD>$nota1
 <TR>
 <TD> Nota Nº 02
 <TD>$nota2
 <TR>
 <TD> Promedio
 <TD>$promedio
 <TR>
 <TD> Observación
 <TD>$observacion
 <TR>
 <TD> Cualidad
 <TD>$cualidad
 <TR>
 <TD Colspan=2 Align= Center> <A HREF=form.html> Regresar </A>  
</Table>
</Center>";
}
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas