Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: luchi en 27 Abril 2014, 01:23 am



Título: Letra E
Publicado por: luchi en 27 Abril 2014, 01:23 am
Hola a todos.
Tengo el siguiente código sacado del siguiente ejercicio:
http://www.mclibre.org/consultar/php/examenes/13-14/letra_e.html
Formulario:

Código
  1. <html>
  2. <head>
  3. <title>Letra E</title>
  4. </head>
  5. <body>
  6. <h1>LETRA E (FORMULARIO)</h1>
  7. <form action="resultado1.php" method="POST">
  8. <fieldset>
  9. <legend>Formulario</legend>
  10. <p>Indique el grosor de la letra (mayor que 0 y menor que 15) y su altura (3 * grosor debe ser menor que 20) y anchura(menor que grosor y que 20)se mostrara una letra E
  11. de acuerdo con los valores indicados</p>
  12. <b>Grosor:</b><input type="text" name="grosor" size="3"><br>
  13. <b>Alto:</b><input type="text" name="alto" size="3"><br>
  14. <b>Ancho:</b><input type="text" name="ancho" size="3"><br>
  15. <input type="submit" value="Dibujar">
  16. <input type="reset" value="Borrar">
  17. </fieldset>
  18. </form>
  19. </body>
  20. </html>

Codigo:
Código
  1. <html>
  2. <head>
  3. <title>Letra E</title>
  4. </head>
  5. <body>
  6. <?php
  7. $grosor=$_REQUEST['grosor'];
  8. $altura=$_REQUEST['alto'];
  9. $anchura=$_REQUEST['ancho'];
  10. if($grosor=="" || $altura=="" || $anchura=="" || $grosor<0 || $grosor>5 ||$altura<0 || $altura>20 || $anchura<0 || $anchura>20){
  11. if($grosor==""){
  12. echo "<p><font color='red'>No ha esciro el grosor</font></p>";
  13. }
  14.  
  15. if($altura==""){
  16. echo "<p><font color='red'>No ha esciro el grosor</font></p>";
  17. }
  18.  
  19. if($anchura==""){
  20. echo "<p><font color='red'>No ha esciro el grosor</font></p>";
  21. }
  22.  
  23. if($grosor<0 || $grosor>5){
  24. echo "<p><font color='red'>El grosor debe ser mayor que cero y menor que cinco</font></p>";
  25. }
  26.  
  27. if($altura<0 || $altura>20){
  28. echo "<p><font color='red'>La altura debe ser mayor que cero y menor que veinte</font></p>";
  29. }
  30.  
  31. if($anchura<0 || $anchura>20){
  32. echo "<p><font color='red'>La anchura debe ser mayor que cero y menor que veinte</font></p>";
  33. }
  34. }else{
  35.  
  36. echo "Grosor: ".$grosor."<br>";
  37. echo "Altura: ".$altura."<br>";
  38. echo "Anchura: ".$anchura."<br>";
  39. $contador=0;
  40. $contador2=0;
  41. for($r=0; $r<$altura; $r++){
  42.  
  43. for($o=0; $o<$anchura; $o++){
  44. if($contador!=$grosor){
  45. echo "* ";
  46. }
  47. if($contador==$grosor && $contador2<$grosor){
  48.  
  49. for($i=0; $i<=$grosor-1; $i++){
  50. echo "- ";
  51. }
  52. echo "<br>";
  53. }
  54. $contador2=$contador2+1;
  55. }
  56. $contador2=0;
  57. $contador=$contador+1;
  58. echo "<br>";
  59. }
  60. }
  61. ?>
  62. </body>
  63. </html>
  64.  

El carácter '-' será en el futuro un espacio en blanco, pero ¿cómo lo puedo poner para que funcione? me saca los prineros espacios, pero los siguientes no y si quito la condición de '&& $contador2<$grosor' me saca el número de espacios que le corresponde pero todos seguidos. Siento que se me está escapando algo pero no sé el qué.
Gracias.