Foros del Web » Programando para Internet » PHP »

probelma con isset

Estas en el tema de probelma con isset en el foro de PHP en Foros del Web. hola tuve que modificar mi pagina por referencia de un profesor y ahora tengo otros problemas distintos con mis isset el error que me da ...
  #1 (permalink)  
Antiguo 22/02/2008, 04:45
 
Fecha de Ingreso: septiembre-2006
Mensajes: 116
Antigüedad: 18 años, 2 meses
Puntos: 1
probelma con isset

hola tuve que modificar mi pagina por referencia de un profesor y ahora tengo otros problemas distintos con mis isset

el error que me da es este

Notice: Undefined index: categoria in /home/2006/a003423/public_html/libro1/modificar.php on line 31

se que es porque la cariable categoria no esta definidad, pero si le pongo un isset delante siempre me pilla el mismo valor, probe las soluciones que ya me dieron antes pero no funciona ahora.

tengo dos paginas el insertar.php y modificar. php

este seria el insertar .php que se va a la pagina modificar, donde tomo el valor de categoria.

Código PHP:
    echo "<p><b>Selecciona la categoria en la que quieres insertar el libro</b></p><br><br>
                <form action=modificar.php?opc=1 method=POST>
                <select name=categoria>"
;
                
$i=0;
                while ((
$i<10)&&($array_categoria[$i]!=null)){
                    echo 
"<option value=".$array_categoria[$i].">".$array_categoria[$i]."</option>";
                    
$i++;
                    }
                echo 
"<option value=11>Nueva Categoria</option>
                </select>
                <input type=submit value= seleccionar>
                </form>"


esta seria modificar

Código PHP:
$opc=$_GET['opc'];
$crear=isset($_GET['crear']);
if(
$opc==1){
[
U]$cate=$_POST['categoria'];[/U]
if (
$cate==11){ // es una categoria nueva
echo "<form action=index.php?modulo=insertar&crear=1 method=POST>
Nombre de la nueva Categoria:<input type=text name=cate value=''>
<input type=submit value='Crear nueva categoria'>"
;
}else{
echo 
"<form action=modificar.php?cate=$cate&opc=1&cat=1 method=POST>
<fieldset> 
aqui es donde tomo el valor de categoria y alli es donde me indica que tengo que poner el isset, pero si lo pongo siempre me toma un mismo valor por defecto.

espero que me puedan ayudar

gracias
  #2 (permalink)  
Antiguo 22/02/2008, 04:52
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Re: probelma con isset

Hola,

http://es.php.net/isset --> isset — Determinar si una variable está definida

Primero miras si existe dicha variable, si existe la asignas a la variable correspondiente!

Código PHP:
<?
if(isset($_GET['crear'])){
  
$crear=$_GET['crear']; 
}else{
 
$crear "noexiste";
}
?>
y lo mismo para la categoria

Código PHP:
<?
if(isset($_POST['categoria'])){
  
$categoria=$_POST['categoria']; 
}else{
 
$categoria"noexiste";
}
?>
Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 22/02/2008 a las 05:00
  #3 (permalink)  
Antiguo 22/02/2008, 06:20
 
Fecha de Ingreso: septiembre-2006
Mensajes: 116
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: probelma con isset

No me funciona probe asi

Código PHP:
$opc=$_GET['opc'];
$crear=isset($_GET['crear']);
if(isset(
$_GET['categoria'])){
$cate=$_POST['categoria'];
}
if(
$opc==1){
$cate=$_POST['categoria'];
echo 
$cate;
if (
$cate==11){ // es una categoria nueva
echo "<form action=index.php?modulo=insertar&crear=1 method=POST> 
pero nada tambien probe asi

Código PHP:
if(($opc==1) && (isset($_GET['categoria']))){
$cate=$_POST['categoria'];
echo 
$cate
pero nada en la primera opcion me sigue saliendo

Notice: Undefined index: categoria in /home/2006/a003423/public_html/libro1/modificar.php on line 32

si ya esta definida porque sigue diciendo que no lo esta???????

gracias
  #4 (permalink)  
Antiguo 22/02/2008, 06:26
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Re: probelma con isset

Hola de nuevo

Me parece q no te ha quedado muy claro
Tienes datos q recibes por POST y otros por GET - ten cuidado no te confundas en eso
Código PHP:
$opc=$_GET['opc']; 
//miramos si existe
if(isset($_GET['crear'])){
//si es asi lo asignamos a una variable
  
$crear=$_GET['crear']; 
}
if(
$opc==1){ 
//miramos si existe el post categoria
if(isset($_POST['categoria'])){ 
//si existe le asignamos a la variable
   
$cate=$_POST['categoria']; 
} else {
//sino existe pues la crear con un valor para detectarlo
   
$cate="NOEXISTE";
}
//imprimimos $cate a ver q sale..
echo $cate;
if (
$cate==11){ // es una categoria nueva 
echo "<form action=index.php?modulo=insertar&crear=1 method=POST>  
{...} 
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #5 (permalink)  
Antiguo 22/02/2008, 06:34
 
Fecha de Ingreso: junio-2007
Ubicación: por ahi
Mensajes: 262
Antigüedad: 17 años, 4 meses
Puntos: 4
Re: probelma con isset

Creo que te estas confundiendo.

El que la variable sea GET o POST solo varia por como estas enviando el formulario, no deberias comparar un GET y asignar un POST.

Basicamente la variable categoria siemple va ha estar definida pues los campos de seleccion siempre envian un valor.

Verifica que $opc siempre este llegando como 1 porque o si no asignaria el valor.

Lo mejor para revisar que te envia un formulario es hacer un :

print_r($_POST)

o

print_r($_REQUEST)--> incluye get y post
  #6 (permalink)  
Antiguo 22/02/2008, 07:30
 
Fecha de Ingreso: septiembre-2006
Mensajes: 116
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: probelma con isset

ok ya te entendi llevo tantas horas mirando el código que ya ni veo donde pongo el GET o el POST

Bueno ahora mismo me di cuenta que la primera vez que yo inserto un libro funciona y no me muestra ningun mensaje de variables sin declarar.

pero cuando el codigo termina el vuelve a escirbir el mismo formulario y es alli donde falla y ahora me dice que no encuenta ninguna categoria


Notice: Undefined variable: cate in /home/2006/a003423/public_html/libro1/modificar.php on line 38

Notice: Undefined variable: cate in /home/2006/a003423/public_html/libro1/modificar.php on line 44

Notice: Undefined variable: cate in /home/2006/a003423/public_html/libro1/modificar.php on line 46

Notice: Undefined variable: cate in /home/2006/a003423/public_html/libro1/modificar.php on line 64

Código PHP:
if($opc==1){
// miramos si existe el POST categoria
if (isset($_POST['categoria'])){
$cate=$_POST['categoria']; // se lo asignamos a la variable
}
if (
$cate==11){ // es una categoria nueva
echo "<form action=index.php?modulo=insertar&crear=1 method=POST>
Nombre de la nueva Categoria:<input type=text name=cate value=''>
<input type=submit value='Crear nueva categoria'>"
;
}
else{
echo 
"<form action=modificar.php?cate=$cate&opc=1&cat=1 method=POST>
<fieldset>
<legend> Libro a Insertar de la categoria $cate</legend>
<table>
<td width=80%>
    Nombre:<br> 
    <Input type=text name=nombre /><br><br>
    Lengua:<br>
    <Input type=text name=lengua /><br><br>
    Encuadernación:<br>
    <Input type=text name=encua /><br><br>
    ISBN:<br>
    <Input type=text name=isbn /><br><br>
    Edición:<br>
    <Input type=text name=edicion /><br><br>
    Año:<br>
    <Input type=text name=ano /><br><br>
</td>
<td width=80%>
    Categoria:<br>
    <Input type=text name=cate value=$cate /><br><br>
    Plaza_edición:<br>
    <Input type=text name=plaza /><br><br>
    Imagen:<br>
    <Input type=file name=imagen /><br><br>
    Descripción:<br> <textarea id=descripcion name=descripcion cols=40 rows=5></textarea>
    Cantidad:<br>
    <Input type=text name=cantidad /><br><br>
    Precio:<br>
    <Input type=text name=precio /><br><br>
    </fieldset>
</td>
</table>
<input type=submit value=Insertar Datos>
</form>"
;
$cate=isset($_GET["cate"]);
$cat=isset($_GET["cat"]);
$imagen="modulos/catalogo/imagen/".isset($_POST['imagen']);
    if (
$cat==1){ // cuando he rellenado todos los datos y le doy al botón de insertar datos cat=1
    
$cate=$_GET["cate"];
        if ((
$_POST["nombre"])&&($_POST["lengua"])&&($_POST["encua"])&&($_POST["isbn"])&&($_POST["edicion"])&&
        (
$_POST["ano"])&&($_POST["plaza"])&&($_POST["cate"])&&($_POST["descripcion"])&&($_POST["cantidad"])&&($_POST["precio"])){
        
$sql"INSERT INTO libros(id,nombre,lengua,encuadernacion,ISBN,edicion,ano_edicion,plaza_edicion,imagen, precio,descripcion,cantidad,categoria)
        values( '', '"
.$_POST['nombre']."',
        '"
.$_POST['lengua']."',
        '"
.$_POST['encua']."',
        '"
.$_POST['isbn']."',
        '"
.$_POST['edicion']."',
        '"
.$_POST['ano']."', 
        '"
.$_POST['plaza']."', 
        '"
.$imagen."',
        '"
.$_POST['precio']."', 
        '"
.$_POST['descripcion']."',
        '"
.$_POST['cantidad']."',
        '"
.$_POST['cate']."');";
        
$result mysql_query($sql) or die(mysql_error());
        echo
"<h3>ACTUALIZADO</h3>"// si todo ha ido bien pondra actualizado
        
}else{ 
me escribe el actualizar y todo pero cando vueleve a escribir pone los fallos que anterior mente te comente

probe lo siguiente

Código PHP:
if (isset($_POST['categoria'])){ // si crear existe
        
$cate=(isset($_post['categoria']));
        } 
despues de que escribiera actualizado

pero sigue falllando en lo mismo
  #7 (permalink)  
Antiguo 22/02/2008, 07:47
Avatar de Sensorium  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo-Uruguay
Mensajes: 207
Antigüedad: 17 años, 4 meses
Puntos: 7
Re: probelma con isset

Hola maitep, realmente no entiendo porque utilizas el isset para declarar una variable, el isset, como ya lo han aclarado, corroborar si una variable existe o no , el codigo en tu caso seria:

if (isset($_POST['categoria']))// si crear existe
{
$cate=$_post['categoria'];
}
esto es erróneo '$cate=(isset($_post['categoria']));' o por lo menos no entiendo la funcionalidad del mismo,.

saludos
  #8 (permalink)  
Antiguo 22/02/2008, 07:54
 
Fecha de Ingreso: septiembre-2006
Mensajes: 116
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: probelma con isset

hola !!!!!!!!
tienes razón deberia ser como tu dices
se me fue el dedo al copiar y pegar
asi lo tengo como dices tu.

pero el problema es que no entiendo porque falla,

porque despues de escribir actualizado dice queno encuentra declarada la varibles $cate
  #9 (permalink)  
Antiguo 22/02/2008, 08:14
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Re: probelma con isset

Hola de nuevo....

creo q tienes un ligero cacao en el codigo -

Código PHP:
f($opc==1){ 
// miramos si existe el POST categoria 
if (isset($_POST['categoria'])){ 
    
$cate=$_POST['categoria']; // se lo asignamos a la variable 

if (
$cate==11){ // es una categoria nueva 
echo "<form action=index.php?modulo=insertar&crear=1 method=POST> 
Nombre de la nueva Categoria:<input type=text name=cate value=''> 
<input type=submit value='Crear nueva categoria'>"


else{ 
echo 
"<form action=modificar.php?cate=$cate&opc=1&cat=1 method=POST> 
<fieldset> 
<legend> Libro a Insertar de la categoria $cate</legend> 
<table> 
<td width=80%> 
    Nombre:<br>  
    <Input type=text name=nombre /><br><br> 
    Lengua:<br> 
    <Input type=text name=lengua /><br><br> 
    Encuadernación:<br> 
    <Input type=text name=encua /><br><br> 
    ISBN:<br> 
    <Input type=text name=isbn /><br><br> 
    Edición:<br> 
    <Input type=text name=edicion /><br><br> 
    Año:<br> 
    <Input type=text name=ano /><br><br> 
</td> 
<td width=80%> 
    Categoria:<br> 
    <Input type=text name=cate value=$cate /><br><br> 
    Plaza_edición:<br> 
    <Input type=text name=plaza /><br><br> 
    Imagen:<br> 
    <Input type=file name=imagen /><br><br> 
    Descripción:<br> <textarea id=descripcion name=descripcion cols=40 rows=5></textarea> 
    Cantidad:<br> 
    <Input type=text name=cantidad /><br><br> 
    Precio:<br> 
    <Input type=text name=precio /><br><br> 
    </fieldset> 
</td> 
</table> 
<input type=submit value=Insertar Datos> 
</form>"

Hasta aqui parece q bien
Pero a lo siguiente sigues cometiendo el mismo error
Código PHP:
//ESTO NO PUEDE SER ASI
// --$cate=isset($_GET["cate"]); 
// --$cat=isset($_GET["cat"]); 

if (isset($_GET['cate'])){
$cate $_GET['cate'];
}
if (isset(
$_GET['cat'])){
$cat$_GET['cat'];
}

$imagen="modulos/catalogo/imagen/".isset($_POST['imagen']); 

    if (
$cat==1){ // cuando he rellenado todos los datos y le doy al botón de insertar datos cat=1 
    
$cate=$_GET["cate"]; 
        if ((
$_POST["nombre"])&&($_POST["lengua"])&&($_POST["encua"])&&($_POST["isbn"])&&($_POST["edicion"])&& 
        (
$_POST["ano"])&&($_POST["plaza"])&&($_POST["cate"])&&($_POST["descripcion"])&&($_POST["cantidad"])&&($_POST["precio"])){ 
        
$sql"INSERT INTO libros(id,nombre,lengua,encuadernacion,ISBN,edicion,ano_edicion,plaza_edicion,imagen, precio,descripcion,cantidad,categoria) 
        values( '', '"
.$_POST['nombre']."', 
        '"
.$_POST['lengua']."', 
        '"
.$_POST['encua']."', 
        '"
.$_POST['isbn']."', 
        '"
.$_POST['edicion']."', 
        '"
.$_POST['ano']."',  
        '"
.$_POST['plaza']."',  
        '"
.$imagen."', 
        '"
.$_POST['precio']."',  
        '"
.$_POST['descripcion']."', 
        '"
.$_POST['cantidad']."', 
        '"
.$_POST['cate']."');"
        
$result mysql_query($sql) or die(mysql_error()); 
        echo
"<h3>ACTUALIZADO</h3>"// si todo ha ido bien pondra actualizado 
        
}else{ 
Por cierto, un consejo - usa solo PHP para PHP - todo lo q sea HTML deja q lo interprete navegador del usuario y no tu servidor.
En cuando a esto me refiero en cuanto muestras el formulario - no lo metas en un hecho - simplement abre y cierra tantas clausulas de PHP como te hagan falta.
Código PHP:
<?
//Esto es lo q tienes
echo "<form action=modificar.php?cate=$cate&opc=1&cat=1 method=POST> 
<fieldset> 
<legend> Libro a Insertar de la categoria $cate</legend> 
<table> 
<td width=80%> 
    Nombre:<br>  ....."
// -- Mejor asi
?>
<form action="modificar.php?cate=<?=$cate?>&opc=1&cat=1" method="post">
<fieldset> 
<legend> Libro a Insertar de la categoria <?=$cate?></legend> 
<table>



Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #10 (permalink)  
Antiguo 22/02/2008, 08:32
 
Fecha de Ingreso: septiembre-2006
Mensajes: 116
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: probelma con isset

muchas gracias sergi_climent
soy nueva en php como podras ver, se agredece mucho que gente como ustedes en este foro nos ayuden.
tomare tus consejos al pie de la letra

gracias de nuevo
  #11 (permalink)  
Antiguo 22/02/2008, 08:58
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Re: probelma con isset

de nada maitep, y bienvenida al mundo de PHP!
cada uno ayuda con lo q puede y sabe!!!

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #12 (permalink)  
Antiguo 22/02/2008, 13:24
 
Fecha de Ingreso: septiembre-2006
Mensajes: 116
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: probelma con isset

hola a todos de nuevo tengo mas problemas y dudas con el isset
primero las dudas

si yo hago esto
Código PHP:
if (isset($_GET['linea'])){
$linea=$_GET['linea'];
}
if (isset(
$_GET['aux'])){
$aux=isset($_GET['aux']);
}
if(
$aux==1){
$cantidad=$_POST['cantidad']; 
el código anterior haria lo siguiente, que alguien me corrija si me equivoco

si linea esta declarada se la asigno a $linea y lo mismo con aux, pero si no esta declarada como la declaro, es decir como la inicializo para poderla usar????

porque en el caso del código que pongo nunca entra en los if porque la condicion no se cumple no???
entonces me falla cuando pregunto si aux=1

alguna sugerencia???????????

gracias
  #13 (permalink)  
Antiguo 25/02/2008, 01:36
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Re: probelma con isset

Hola maitep,
aqui te dejo las Estructura de control de PHP
Lo q tienes q hacer es usar el ELSE
Código PHP:
if (isset($_GET['linea'])){ 
$linea=$_GET['linea']; 
} ELSE { 
$linia="";

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 14:06.