Foros del Web » Programando para Internet » PHP »

Error en codigo:Undefined variable

Estas en el tema de Error en codigo:Undefined variable en el foro de PHP en Foros del Web. hola tengo un problemilla con este codigo (soy PRINCIPIANTE EN PHP) que me encontre por ahi: el error que me da es el sig: Warning: ...
  #1 (permalink)  
Antiguo 05/03/2002, 16:19
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 15 años, 10 meses
Puntos: 6
Error en codigo:Undefined variable

hola tengo un problemilla con este codigo (soy PRINCIPIANTE EN PHP) que me encontre por ahi:
el error que me da es el sig:
Warning: Undefined variable: url in
archivo.php on line 38
La 38 es if($url)
<?php
function spider($url)
{
if(!preg_match("=://=", $url)) die ("<pre><b>$url</b> nicht vollständig.</pre>");

$fh = @fopen("$url", "r");
if(!$fh) die ("<pre><b>$url</b> nicht erreichbar.</pre>");

$grabfile = fread($fh, 3000);
preg_match("|<title[^>]*>(.*)</title>|siU", $grabfile, $title);
$metatags = get_meta_tags("$url");

$title = $title[1];
$description = $metatags["description"];
$keywords = $metatags["keywords"];

@fclose($fh);

return array($title,$description,$keywords);
}

if($url)
{
$meta = spider($url);
echo "<pre>";

Ayuda Please!!

<iframe border="0" width="200" scrolling="no" frameborder="0" src="http://www.iespana.es/loencuentras/logoagrega.swf" height="150" name="banner" marginwidth="0" marginheight="0"> </iframe>
  #2 (permalink)  
Antiguo 05/03/2002, 17:27
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Re: Error en codigo:Undefined variable

En realidad, no es un error, sino que esun Warning. Un Warning no detiene la ejecución del script, pero te avisa que hay algo que puede ser &quot;impropio&quot; en tu script.

Este Warning te aparece, porque el PHP sobre el que está corriendo, está configurado para que muestre TODOS los errores, Warnings incluidos.

Para modificar este comportamiento del PHP, tienes que modificar el php.ini y cambiarle el tipo de errores de E_ALL a E_ERROR.

tamibén lo solucionarias poniendo, al comienzo de tu script:

error_reporting (E_ERROR);

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #3 (permalink)  
Antiguo 05/03/2002, 18:55
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 15 años, 10 meses
Puntos: 6
Re: Error en codigo:Undefined variable

Gracias webstudio
pero por que no me funciona el codigo??


<iframe border="0" width="200" scrolling="no" frameborder="0" src="http://www.iespana.es/loencuentras/logoagrega.swf" height="150" name="banner" marginwidth="0" marginheight="0"> </iframe>
  #4 (permalink)  
Antiguo 08/03/2002, 02:00
 
Fecha de Ingreso: enero-2002
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Error en codigo:Undefined variable

Tienes razon webstudio en un ordenador tenia _ALL mientras que en el otro tenia _ERROR en el php.ini Lo puse en _ERROR y me desapareció la advertencia. Te explico:
Usaba un formulario que enviaba unas variables a procesar por un .php que lo que hacia era modificar los datos de una db, como lo tenia puesto el único resultado que obtenia era la advertencia de variable indefinida. Ahora incluso me dejó modificar los datos de la base de datos. ¿Pero lo estoy haciendo correctamente?

Mirad este es el código por si veis algo. (Digo veis porque aqui el único que se pega las matadas de leerlo todo es Webstudio ;) )
Código:
 &lt;?php
echo &quot;&lt;form method='post' action='datos_3.php'&gt;\n&quot;;
echo &quot;&lt;div align='center'&gt;\n&quot;;
echo &quot;&lt;table width='300'&gt;&lt;tr&gt;&lt;td bgcolor='#f2d184' class='titmenu'&gt;&lt;img src='img/pixel' width='5' height='1'&gt;Datos de la visita que desea modificar:&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class='titmenu'&gt;&lt;br&gt;HOSPITAL&lt;br&gt;&lt;SELECT  class='cajaform' NAME='hospital'&gt;\n&quot;;
echo &quot;&lt;option value='hospital1' selected&gt;JOAN XXIII\n&quot;;
echo &quot;&lt;option value='hospital2'&gt;MARE DE DEU DE LA CINTA\n&quot;;
echo &quot;&lt;option value='hospital3'&gt;SANT JOAN\n&quot;;
echo &quot;&lt;/select&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;\n&quot;;
echo &quot;&lt;table width='300'&gt;&lt;tr&gt;&lt;td colspan='3' class='titmenu'&gt;FECHA&lt;/td&gt;&lt;/tr&gt;\n&quot;;
echo &quot;&lt;tr&gt;&lt;td class='titmenu'&gt;Día: &lt;input type='text' class='cajaform_pet' maxlength='2' value='00' name='dia'&gt;&lt;/td&gt;\n&quot;;
echo &quot;&lt;td class='titmenu'&gt;Mes:\n&quot;;
echo &quot;&lt;SELECT  class='caja_mes' NAME='mes'&gt;\n&quot;;
echo &quot;&lt;option value='enero' selected&gt;Enero\n&quot;;
echo &quot;&lt;option value='febrero'&gt;Febrero\n&quot;;
echo &quot;&lt;option value='marzo'&gt;Marzo\n&quot;;
echo &quot;&lt;option value='abril'&gt;Abril\n&quot;;
echo &quot;&lt;option value='mayo'&gt;Mayo\n&quot;;
echo &quot;&lt;option value='junio'&gt;Junio\n&quot;;
echo &quot;&lt;option value='julio'&gt;Julio\n&quot;;
echo &quot;&lt;option value='agosto'&gt;Agosto\n&quot;;
echo &quot;&lt;option value='septiembre'&gt;Septiembre\n&quot;;
echo &quot;&lt;option value='octubre'&gt;Octubre\n&quot;;
echo &quot;&lt;option value='noviembre'&gt;Noviembre\n&quot;;
echo &quot;&lt;option value='diciembre'&gt;Diciembre\n&quot;;
echo &quot;&lt;/select&gt;&lt;/td&gt;\n&quot;;
echo &quot;&lt;td class='titmenu'&gt;Año: &lt;input type='text' class='mes_anno' name='anyo'&gt;&lt;/td&gt;&lt;/tr&gt;\n&quot;;
echo &quot;&lt;tr&gt;&lt;td colspan='3' class='titmenu'&gt;&lt;br&gt;VISITA&lt;br&gt;\n&quot;;
echo &quot;&lt;SELECT  class='caja_mes' NAME='visita'&gt;\n&quot;;
echo &quot;&lt;option value=visita1 selected&gt;Visita 1\n&quot;;
echo &quot;&lt;option value=visita2&gt;Visita 2\n&quot;;
echo &quot;&lt;option value=visita3&gt;Visita 3\n&quot;;
echo &quot;&lt;option value=visita4&gt;Visita 4\n&quot;;
echo &quot;&lt;/select&gt;&lt;/td&gt;&lt;/tr&gt;\n&quot;;
echo &quot;&lt;tr&gt;&lt;td colspan='3'&gt;&lt;hr noshade&gt;&lt;/td&gt;&lt;/tr&gt;\n&quot;;
echo &quot;&lt;tr&gt;&lt;td bgcolor='#ffffff' colspan='3' class='titmenu'&gt;&lt;/td&gt;&lt;/tr&gt;\n&quot;;
echo &quot;&lt;tr&gt;&lt;td bgcolor='#f2d184' colspan='3' class='titmenu'&gt;&lt;img src='img/pixel' width='5' height='1'&gt;Introduzca los nuevos datos:&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;\n&quot;;
echo &quot;&lt;tr&gt;&lt;td colspan='3'&gt;&lt;table&gt;&lt;tr&gt;&lt;td class='titmenu'&gt;Nombre de la visita&lt;br&gt;&lt;input type='Text' class='caja_nombre' name='nombre'&gt;&lt;/td&gt;&lt;td&gt;&lt;img src='img/pixel' width='5' height='1'&gt;&lt;/td&gt;&lt;td class='titmenu'&gt;Laboratorio&lt;br&gt;&lt;input type='Text' class='cajaform' name='laboratorio'&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;\n&quot;;
echo &quot;&lt;tr&gt;&lt;td colspan='3'&gt;&lt;br&gt;&lt;input type='Submit' name='enviar' value='Modificar datos'&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/form&gt;\n&quot;;
?&gt;
//* El siguiente código es el de datos_3.php 
(¿Alguien puede decirme porque me daba un warnning de undefined variable 'visita' 
No me dejaba modificar los datos cuando salia eso? Otra cosa es que del siguiente código siempre obtengo como resultado
'LOS HAN SIDO DATOS MODIFICADOS.' Y en cambio no obtengo la respuesta para cuando $nombre no tiene información.)
&lt;?php 
if (isset($nombre)){
$db = mysql_connect(&quot;localhost&quot;, &quot;root&quot;);
mysql_select_db($hospital,$db);
if($visita==visita1){ 
$sql = &quot;UPDATE $mes SET nombre_1='$nombre', laboratorio='$laboratorio' WHERE dia='$dia'&quot;; 
} 
else if($visita==visita2){ 
$sql = &quot;UPDATE $mes SET nombre_2='$nombre', laboratorio_2='$laboratorio' WHERE dia='$dia'&quot;;
} 
else if($visita==visita3){ 
$sql = &quot;UPDATE $mes SET nombre_3='$nombre', laboratorio_3='$laboratorio' WHERE dia='$dia'&quot;;
}
else if($visita==visita4){ 
$sql = &quot;UPDATE $mes SET nombre_4='$nombre', laboratorio_4='$laboratorio' WHERE dia='$dia'&quot;;
}
$result = mysql_query($sql);
echo &quot;&lt;center&gt;&lt;b&gt;LOS HAN SIDO DATOS MODIFICADOS.&lt;/b&gt;&lt;br&gt;&lt;/center&gt;\n&quot;;
}else{
   echo &quot;&lt;center&gt;&lt;b&gt;Debe especificar los datos correctos&lt;br&gt;para poder realizar los cambios&lt;/b&gt;&lt;/center&gt;.\n&quot;;
}
?&gt;
  #5 (permalink)  
Antiguo 08/03/2002, 02:06
 
Fecha de Ingreso: enero-2002
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Error en codigo:Undefined variable

Ok, acabo de dar yo mismo con la respuesta de porque solo me sale el resultado que puse para cuando $nombre está lleno. No puse ! delante de isset.

Ahora solo me queda saber porqué me daba un warnning diciendo que visita no estaba definida sin procesar nada d lo q enviaba.
(Esto me ocurria como dice Webstudio con error_reporting= E_ALL; en el php.ini ahora lo tengo error_reporting= E_ERROR; y no me dice nada pero...realmente ¿que falla o ya no falla nada? )

Un saludo coders (estoy estudiando fuerte webstudio para ponerme al nivel).
  #6 (permalink)  
Antiguo 08/03/2002, 02:30
 
Fecha de Ingreso: enero-2002
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Error en codigo:Undefined variable

Ok vuelvo a tener el problema al poner ! delante de isset ahora solo obtengo el resultado para cuando no han metido datos en $nombre GRRRRRRR!!! Maldita sea ¿Que hago?
  #7 (permalink)  
Antiguo 08/03/2002, 08:43
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Re: Error en codigo:Undefined variable

Maya2, el problema del Warning, no debe preocuparte mucho, porque es eso, solo un warning, y sucedía porque cuando comparas $visita con unas cadenas de texto, lo hacías sin encerrar esas cadenas dentro de comillas dobles, entonces el PHP no sabía si eran cadenas de texto o constantes no definidas (las constantes en PHP no llevan $ delante).

Y para que tu sección de UPDATES se ejecute cuando estén todos los datos de $nombre, deberías preguntar algo como :

if (isset($nombre) &amp;&amp; $nombre != &quot;&quot;)

Para estar seguro de que $nombre esté seteado y no esté vacío. Lo mismo puedes comprobar haciendo:

if (!empty($nombre))

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
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 05:11.