Foros del Web » Programando para Internet » PHP »

Mis Primeros Errores

Estas en el tema de Mis Primeros Errores en el foro de PHP en Foros del Web. Hola, Para que contarles que estoy recien aprendiendo php y la verdad es que no tengo Idea... vengo del foro de ASP, que lo he ...
  #1 (permalink)  
Antiguo 08/07/2003, 22:32
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 5 meses
Puntos: 0
Mis Primeros Errores

Hola,
Para que contarles que estoy recien aprendiendo php y la verdad es que no tengo Idea... vengo del foro de ASP, que lo he aprendido sin mayores complicaciones.

Lo cierto es que ahora pretendo aprender PHP y bueno ya he isntalado el apache + Mysql y esta todo funcionando...
pero he querido tomar el toro por la cola y me baje algunos scripts de HOTscripts, lo malo esta es que de entrada me dío errores...


Notice: Undefined variable: action in C:\Inetpub\wwwroot\php\newman\install.php on line 54


Notice: Undefined variable: action in C:\Inetpub\wwwroot\php\newman\install.php on line 191

la linea 54 si la miro dice esto:
if($action == "step2")

y la 191
if($action == "step3")


se supone que la pagina install.php es por donde debiera partir pues es donde me pregunta por mi localhost y el usuario y pass del Mysql

alguien me podría explicar que es lo que significa este error?

donde debiera definir estas variables?

__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #2 (permalink)  
Antiguo 08/07/2003, 23:13
Avatar de ||Dj||  
Fecha de Ingreso: enero-2002
Mensajes: 2.349
Antigüedad: 22 años, 3 meses
Puntos: 1
No son errores, fijate que el msg se antepone "Notice"
Hay una seccion en el php.ini en el que se puede personalizar la forma en que php muestra errores y advertencias.
La linea es error_reporting y en mi caso la tengo seteada así:

Código PHP:
error_reporting  =  E_ALL & ~E_NOTICE 
saludos.
  #3 (permalink)  
Antiguo 08/07/2003, 23:16
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 5 meses
Puntos: 0
Ok. pero como lo hago para definir estas variables que me esta nombrando... el "Notice"
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #4 (permalink)  
Antiguo 09/07/2003, 00:19
Avatar de ||Dj||  
Fecha de Ingreso: enero-2002
Mensajes: 2.349
Antigüedad: 22 años, 3 meses
Puntos: 1
$variable="valor";
o
$variable=valor;

Pero creo que no me entendiste, el sistema solo te esta avisando que la variable no está definida, esto no quiere decir que cause problema alguno. A mi manera de ver este nivel de configuracion en cuanto a que mensajes y advertencias se deben mostrar es bastante molesto.
  #5 (permalink)  
Antiguo 09/07/2003, 02:23
Avatar de Sexma  
Fecha de Ingreso: junio-2003
Ubicación: Valencia
Mensajes: 109
Antigüedad: 20 años, 10 meses
Puntos: 0
Comprueba el valor que tiene $action antes de hacer la comparacion del if, porque si por ejemplo la variable no esta definida (ese es el error que te da) no puedes compararlo con nada.
__________________
CLUB ESPORTIU UNIVERSITAT DE VALENCIA

Visita la pagina de la UV-O



  #6 (permalink)  
Antiguo 09/07/2003, 11:10
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 5 meses
Puntos: 0
Ok, gracias hací lo intentaré...
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #7 (permalink)  
Antiguo 09/07/2003, 12:37
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Supongo que tu problema es porque usas un solo script para mostrar un formulario y procesar los datos. Supongo que $action sera un campo del formulario o una variable que pasas por URL. Y los notice te los da la primera vez que cargas la pagina, es decir, cuando no se ha enviado el formulario. Por eso no existe la variable. La funcion PHP que sirve para comprobar si una variable esta definida es isset() (www.php.net/isset). Tus if quedarian algo asi:
Código PHP:
if(isset($action) && $action == "step2"
En castellano: si existe $action y $action vale "step2".

||Dj||, no estoy de acuerdo con tu recomendacion de "tapar" los mensajes de los Notice. En mi articulo de mi firma, lo explico un poco mas ampliamente, pero resumiendo, los notice pueden evitar que te vuelvas loco por un error al teclear. Imaginate este caso:
Código PHP:
$action="valor";
// mas codigo
if ("valor"==$accion) { // deberia ser $action 
Aqui puede que se vea claramente, pero imaginatelo en un script de 200 lineas y en una linea que maneja 5 variables. Puedes quedarte bizco y perder media tarde con un error que facilmente lo localizarias con el mensaje del "Notice" (ese que tu quieres eliminar).

Claro, lo digo en tu entorno de desarrollo y durante el periodo de pruebas en el servidor de produccion (definitivo). En el servidor de produccion en nivel de errores a mostrar deberia ser ninguno, no mostrar ningun mensaje de error, ni warning ni notice. Porque a veces esos mensajes dan pistas al enemigo. Ademas, no es necesario mostrar mensajes de error porque tu codigo no tiene ningun error, y ademas controla los posibles errores de elementos ajenos a tu codigo (BD, sistema, usuario, ...) y toma las medidas necesarias en ese caso. Y si empieza a pasar cosas raras, siempre puedes volver a poner que muestre todos los mensajes.

Saludos.

PD: <spam>Aprovecho para recomendar la lectura de mi articulo, todavia estais a tiempo de enviar vuestras sugerencias.</spam>
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 12/07/2003, 00:15
Avatar de ||Dj||  
Fecha de Ingreso: enero-2002
Mensajes: 2.349
Antigüedad: 22 años, 3 meses
Puntos: 1
Josemi: Si te fijas bien te vas a dar cuenta de que yo no recomende nada, solo comente mi forma de ver el caso.
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 21:30.