Foros del Web » Programando para Internet » PHP »

tengo codigo no comprendo el error que me da

Estas en el tema de tengo codigo no comprendo el error que me da en el foro de PHP en Foros del Web. hola amigos, despues de tantos intentos me he dado por vencido con este codigo, no comprendo porque me da el error. <?php mysql_connect("localhost","root"); mysql_select_db("pais"); $re=mysql_query("select ...
  #1 (permalink)  
Antiguo 10/05/2013, 11:49
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 13 años, 4 meses
Puntos: 1
tengo codigo no comprendo el error que me da

hola amigos, despues de tantos intentos me he dado por vencido con este codigo, no comprendo porque me da el error.

<?php
mysql_connect("localhost","root");
mysql_select_db("pais");
$re=mysql_query("select * from pais");
//el @ sirve para que no salga ese mensaje de NOTICE al momento de ejecutar por 1ra ve nuestro codigo.
if(isset($_POST['pais'])){
$pais=$_POST['pais'];
$re1=mysql_query("select * from ciudad where cod_pais=".$pais."");
$re2=mysql_query("select nombre from pais where cod_pais=".$pais."");
$j=mysql_fetch_array($re2);
}else{
@$j[nombre]='seleccione pais'; }

?>


<form id="form1" name="form1" method="post" action="crear_perfil.php">
<center><table width="402" height="179" border="0">
<tr>
<td width="168">Pais:</td>
<td width="135"><label for="select6"></label>
<select name="pais" size="1" id="pais">

</select></td>
</tr>
<tr>
<td>Provincia o Departamento:</td>
<td><label for="select7"></label>
<select name="id_estado" size="1" id="id_estado" >
<?php
linea 58 $pais=$_POST['pais'];
$re1=mysql_query("select * from ciudad where cod_pais=".$pais."");
while($f1=mysql_fetch_array($re1)){

echo'<option>'.$f1[nombre].'</option>';
}
?>

</select></td>
</tr>
<tr>

el error me dice undefined index:pais en la linea 58, ahi marque la linea 58
  #2 (permalink)  
Antiguo 10/05/2013, 11:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: tengo codigo no comprendo el error que me da

Es normal recibir un error de esa naturaleza si no comprendes como funcionan dichas variables.

$_GET, $_POST, $_FILES y $_REQUEST sólo están presentes dadas ciertas condiciones, es decir, que no todo el tiempo puedes esperar a que existan y/o contengan algún valor.

En tu caso concreto $_POST solo existe cuando la petición es del tipo POST, tradicionalmente, que has enviado un formulario, antes de eso sencillamente o no existe o está vacía.

¿Se entiende?

Ahora, para corregir el problema, debes verificar que existe la variable antes de usarla y si no existe entonces usar otro valor si así lo requiere tu script.

Debes utilizar isset() para comprobar eso, consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/05/2013, 14:53
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: tengo codigo no comprendo el error que me da

No es que $_POST no esta definido. $_POST $_GET $_COOKIE estan definidas by default, asi que isset siempre devolvera true por ellas.

Código PHP:
if(isset($_POST)) // Siempre TRUE , al no ser que le des unset($_POST) :D
{


lo que te dice es que el index pais no existe.
Asi que lo que tienes que validar es el index del $_POST

Código PHP:
if(array_key_exists("pais"$_POST))
{


o bien, lo que dijo el colega pero con el index del array

Código PHP:
if(isset($_POST["pais"]))
{

tambien le puedes asignar un valor vacio si $_POST["pais"] no existe

Código PHP:
<?php

$pais 
= isset($_POST["pais"]) ? $_POST["pais"] : "";

?>
o ( PERO NADA RECOMENDABLE )

Código PHP:
$pais = @$_POST["pais"]; 
o ( PERO NADA RECOMENDABLE )

Código PHP:
<?php
error_reporting
(0);

$pais $_POST["pais"];
?>
o ( PERO NADA RECOMENDABLE )
Código PHP:
<?php
error_reporting
(E_ALL E_NOTICE);

$pais $_POST["pais"];
?>
Los ultimos 3 lo que hacen es ignorar el notice. No son recomendables. El segundo es recomendable para PUBLIC page, para evitar mensajes molestos al usuario, pero no para debugging o building .

Saludos

Etiquetas: mysql, select, sql
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 10:13.