Foros del Web » Programando para Internet » PHP »

No encuentro el error en esta página!

Estas en el tema de No encuentro el error en esta página! en el foro de PHP en Foros del Web. Hola nesecito haber si alguien encuentra algún error en esta página. Por ende la guarde en .php y realice las pruebas en el servidor pero ...
  #1 (permalink)  
Antiguo 30/08/2004, 14:55
Avatar de shamuray  
Fecha de Ingreso: agosto-2004
Ubicación: Capital Federal, Argentina
Mensajes: 142
Antigüedad: 13 años, 4 meses
Puntos: 0
No encuentro el error en esta página!

Hola nesecito haber si alguien encuentra algún error en esta página. Por ende la guarde en .php y realice las pruebas en el servidor pero no responde alresultado final que através del formulario marco un númerode la semana y me responde con un mensaje Por Ej: "Hoy es jueves "
¿Si encuentrar el error me lo pueden hacer saber?
Gracias

<?
// Utilzando switch
if (!$envio)
{
?>
<form method="POST" action="ejemplo34.php">
<table border="0" width="100%">
<tr>
<td width="39%">
<p align="right">Ingrese el Número del día de la semana</td>
<td width="61%"><select size="1" name="número">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select></td>
</tr>
<tr>
<td width="39%"></td>
<td width="61%"><input type="submit" value="ver el Resultado" name="envio"></td>
</tr>
</table>
</form>
<?
}
else
{
switch($número)
{
case 1:
echo "Hoy es Lunes";
break;
case 2:
echo "Hoy es Martes";
break;
case 3:
echo "Hoy es Miercoles";
break;
case 4:
echo "Hoy es Jueves";
break;
case 5:
echo "Hoy es Viernes";
break;
case 6:
echo "Hoy es Sábado";
break;
case 7:
echo "Hoy es Domingo";
break;
}//end switch
}//end if enviar
?>
__________________
:pirata: •´¯¥¯•Ð€MØNiØ•´¯¥¯• :pirata:
  #2 (permalink)  
Antiguo 30/08/2004, 15:00
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

$número es un nombre invalido de variable en PHP. Los caracteres validos estan en http://www.php.net/manual/en/language.variables.php y no incluye los acentos.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 30/08/2004, 15:20
Avatar de shamuray  
Fecha de Ingreso: agosto-2004
Ubicación: Capital Federal, Argentina
Mensajes: 142
Antigüedad: 13 años, 4 meses
Puntos: 0
Bueno cambie $número por $numero pero me sigue sin dar el resultado buscado
__________________
:pirata: •´¯¥¯•Ð€MØNiØ•´¯¥¯• :pirata:
  #4 (permalink)  
Antiguo 30/08/2004, 15:25
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
¿Cambiasate tambien el nombre del campo HTML?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 30/08/2004, 15:29
Avatar de shamuray  
Fecha de Ingreso: agosto-2004
Ubicación: Capital Federal, Argentina
Mensajes: 142
Antigüedad: 13 años, 4 meses
Puntos: 0
Ahora me quedo así pero sigue sin funsionar

<?
// Utilzando switch
if (!$envio)
{
?>
<form method="POST" action="ejemplo34.php">
<table border="0" width="100%">
<tr>
<td width="39%">
<p align="right">Ingrese el Número del día de la semana</td>
<td width="61%"><select size="1" name="numero">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select></td>
</tr>
<tr>
<td width="39%"></td>
<td width="61%"><input type="submit" value="ver el Resultado" name="envio"></td>
</tr>
</table>
</form>
<?
}
else
{
switch ($numero)
{
case 1:
echo "Hoy es Lunes";
break;
case 2:
echo "Hoy es Martes";
break;
case 3:
echo "Hoy es Miercoles";
break;
case 4:
echo "Hoy es Jueves";
break;
case 5:
echo "Hoy es Viernes";
break;
case 6:
echo "Hoy es Sábado";
break;
case 7:
echo "Hoy es Domingo";
break;
}//end switch
}//end if enviar
?>
__________________
:pirata: •´¯¥¯•Ð€MØNiØ•´¯¥¯• :pirata:
  #6 (permalink)  
Antiguo 30/08/2004, 16:07
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Para poder ayudarte más rápida y eficientemente debes siempre que tengas un problema explicar qué es lo que quieres conseguir (esto ya lo has hecho) pero también qué es lo que te sale... ¿otro valor que no es el que esperabas??... ¿algún mensaje de error?(si es así, indicar la línea donde sale el error)... ¿¿un mensaje de página no encontrada??...

Es más fáci para todos ayudarte si cuentan con la información suficiente.

Saludos
  #7 (permalink)  
Antiguo 30/08/2004, 16:10
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Lo que puedes estar pasando es que tengas la idrectiva register_globals en OFF y entonces no se reconoce la variable $envio ni la variable $numero...

Lo que deberás hacer es:
cambiar $envio por $_POST['envio']
cambiar $numero por $_POST['numero']

Saludos
  #8 (permalink)  
Antiguo 30/08/2004, 16:14
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Ah.. y también debería preguntar si exxisten las variables antes de utilizarlas... porque el parser de dará un mensaje de error de tipo "notice".
Entonces deberías cambiar:

if (!$envio)

Por:

if (empty($envio))

Para poder ver los mensajes de error debes poner al comienzo de tu script esta línea:
Código PHP:
error_reporting(E_ALL); 
Saludos
  #9 (permalink)  
Antiguo 30/08/2004, 19:57
Avatar de shamuray  
Fecha de Ingreso: agosto-2004
Ubicación: Capital Federal, Argentina
Mensajes: 142
Antigüedad: 13 años, 4 meses
Puntos: 0
Bueno paso a contar:
En la primera vista tengo un formulario con los números del 1 al 7 los cuales al seleccionar alguno me indica que día es (si marco el 2 por ej me indica que: Hoy es Martes) eso es lo que hace; es sencillo, pero como recien estoy empesando me he trabado con esto; que al poner el número 2 por ej no me da respuesta y se queda en el formulario...
Ya cambié :

if (!$envio)

Por:

if (empty($envio))

y sigue dando el mismo resultado :(

Gracias
__________________
:pirata: •´¯¥¯•Ð€MØNiØ•´¯¥¯• :pirata:
  #10 (permalink)  
Antiguo 30/08/2004, 20:04
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Upsss!!!... tienes razón... habría que poner
if(isset($_POST['envio']))

Cita:
Iniciado por jpinedo
Para poder ver los mensajes de error debes poner al comienzo de tu script esta línea:
Código PHP:
error_reporting(E_ALL); 
Pero lo más importante es esto, para forzar al parser a que te muestre los mensajes de error.

saludos
  #11 (permalink)  
Antiguo 30/08/2004, 20:14
Avatar de shamuray  
Fecha de Ingreso: agosto-2004
Ubicación: Capital Federal, Argentina
Mensajes: 142
Antigüedad: 13 años, 4 meses
Puntos: 0
Bueno ahora me tira error en la linea
switch($numero) y ya lo proba
switch ($numero)
switch ($número) y sigue tirando error por ende cuando cambio aca cambio en el formulario número con o sin acento...
__________________
:pirata: •´¯¥¯•Ð€MØNiØ•´¯¥¯• :pirata:
  #12 (permalink)  
Antiguo 30/08/2004, 20:25
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
no sólo digas "tira error"... lo mejor es indicar qué mensaje de error te da.
Si ya no te da error antes es porque tienes la directiva register globals en OFF (cosa que está muy bien).

Con esto debería arreglarse:
switch ($_POST['numero'])

PD: Ya se te dijo que el acento no es un caracter válido para nombres de variables.
Saludos
  #13 (permalink)  
Antiguo 30/08/2004, 20:42
Avatar de shamuray  
Fecha de Ingreso: agosto-2004
Ubicación: Capital Federal, Argentina
Mensajes: 142
Antigüedad: 13 años, 4 meses
Puntos: 0
ya locambié y me da este mensaje
Warning: Undefined variable: _POST in C:\Archivos de programa\Apache Group\Apache2\htdocs/ejemplo34.php on line 33
la línea 33 es:
switch ($_POST['numero'])

estoy en línea [email protected]
__________________
:pirata: •´¯¥¯•Ð€MØNiØ•´¯¥¯• :pirata:

Última edición por shamuray; 30/08/2004 a las 20:51
  #14 (permalink)  
Antiguo 30/08/2004, 22:29
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Así ya funciona:
Código PHP:
error_reporting(E_ALL);
// Utilzando switch

if(!isset($_POST['envio']))
{
?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'?>">
<table border="0" width="100%">
<tr>
<td width="39%">
<p align="right">Ingrese el Número del día de la semana</td>
<td width="61%"><select size="1" name="numero">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select></td>
</tr>
<tr>
<td width="39%"></td>
<td width="61%"><input type="submit" value="ver el Resultado" name="envio"></td>
</tr>
</table>
</form>
<?
}
elseif(isset(
$_POST['numero']))
{

switch (
$_POST['numero'])


{     
case 
1:
echo 
"Hoy es Lunes";
break;
case 
2:
echo 
"Hoy es Martes";
break;
case 
3:
echo 
"Hoy es Miercoles";
break;
case 
4:
echo 
"Hoy es Jueves";
break;
case 
5:
echo 
"Hoy es Viernes";
break;
case 
6:
echo 
"Hoy es Sábado";
break;
case 
7:
echo 
"Hoy es Domingo";
break;
}
//end switch
}//end if enviar
Saludos

Última edición por jpinedo; 30/08/2004 a las 22:33
  #15 (permalink)  
Antiguo 30/08/2004, 22:36
Avatar de shamuray  
Fecha de Ingreso: agosto-2004
Ubicación: Capital Federal, Argentina
Mensajes: 142
Antigüedad: 13 años, 4 meses
Puntos: 0
<?
error_reporting(E_ALL);
// Utilzando switch

if(!isset($_POST['envio']))
{
?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<table border="0" width="100%">
<tr>
<td width="39%">
<p align="right">Ingrese el Número del día de la semana</td>
<td width="61%"><select size="1" name="numero">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select></td>
</tr>
<tr>
<td width="39%"></td>
<td width="61%"><input type="submit" value="ver el Resultado" name="envio"></td>
</tr>
</table>
</form>
<?
}
elseif(isset($_POST['numero']))
{
switch ($_POST['numero'])



{
case 1:
echo "Hoy es Lunes";
break;
case 2:
echo "Hoy es Martes";
break;
case 3:
echo "Hoy es Miercoles";
break;
case 4:
echo "Hoy es Jueves";
break;
case 5:
echo "Hoy es Viernes";
break;
case 6:
echo "Hoy es Sábado";
break;
case 7:
echo "Hoy es Domingo";
break;
}//end switch
}//end if enviar
?>
__________________
:pirata: •´¯¥¯•Ð€MØNiØ•´¯¥¯• :pirata:
  #16 (permalink)  
Antiguo 30/08/2004, 23:21
Avatar de shamuray  
Fecha de Ingreso: agosto-2004
Ubicación: Capital Federal, Argentina
Mensajes: 142
Antigüedad: 13 años, 4 meses
Puntos: 0
Listo gente, uno de los temas del por que no me funsionaba el ejemplo era por tener la versión 4.0.0 pero al actualzarla a la 4.3.8 que me aconsejo jpinedo y algunos cambios funsionó bien.

Ahora a festejar

Gracias
__________________
:pirata: •´¯¥¯•Ð€MØNiØ•´¯¥¯• :pirata:

Última edición por shamuray; 30/08/2004 a las 23:22
  #17 (permalink)  
Antiguo 01/09/2004, 14:11
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Claro... debimos haber empezado por ahí...
El problema es que para versiones anteriores a la 4.1 no están disponibles los arrays superglobales ($_POST, $_GET, $_SERVER, etc...) y te estábamos recomendando utilizarlos... por eso no funcionaba...
Bueno.. que esto quede como precedente también para futuros posts de que mientras más información se dé.. más rápido se solucionan las cosas.

Como mínimo cuando se tenga un problema postear:
-Servidor http (versión)
-PHP (versión)
-MySQL (si es el caso).. (versión)
-Sistema operativo (versión)

Adicionalmente si el problema tiene que ver con alguna biblioteca (librería) específica, indicar versión y el estado que podemos ver en el phpinfo()

Saludos
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 15:52.