Foros del Web » Programando para Internet » PHP »

duda con isset

Estas en el tema de duda con isset en el foro de PHP en Foros del Web. Hola a todos nuevamente, tengo un problema que me gustaria resolver y aclarar.. por un lado tengo un archivo que se llama alta.php que es ...
  #1 (permalink)  
Antiguo 25/10/2011, 14:10
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Pregunta duda con isset

Hola a todos nuevamente, tengo un problema que me gustaria resolver y aclarar.. por un lado tengo un archivo que se llama alta.php que es el siguiente;

Código PHP:
if(isset($_POST["Compartir"]))
{
    echo 
"Uno de los campos esta vacío.";
}
   else {

    
$alta "INSERT into nottas (nombre, titulo, notta, hora, dia, mes, anio) VALUES ('$nombre','$title','$des','$hora','$dia','$mes','$anio')";

    
//echo($alta); //para ver si algo salió mal

    
mysql_query($alta) or die(mysql_error());

    
mysql_close();

    
header("refresh:0; url=home.php");

y por el otro el archivo de nombre form_alta.php que tiene el formulario para ingresar datos... el problema es que no funciona como corresponde y no se como aplicar la funsion se que esta la pagina de PHP pero si me pueden dar una reseña de esto, algo simple se los agradesco...
  #2 (permalink)  
Antiguo 25/10/2011, 14:14
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: duda con isset

Colocaste la lógica al contrario, agregale el operador de negación:

Código PHP:
Ver original
  1. if(!isset($_POST["Compartir"])) {

Tienes que trabajarle más a la validación de los datos.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 25/10/2011, 16:22
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: duda con isset

Código PHP:

if(!isset($_POST["Compartir"]))
{
    
$alta "INSERT into nottas (nombre, titulo, notta, hora, dia, mes, anio) VALUES ('$nombre','$title','$des','$hora','$dia','$mes','$anio')";

    
//echo($alta); //para ver si algo salió mal

    
mysql_query($alta) or die(mysql_error());

    
mysql_close();

    
header("refresh:0; url=home.php");
}
   else {

        echo 
"Uno de los campos esta vacío.";

me agrega ahora me agrega igual los datos con los campos vacios... que hago mal?
  #4 (permalink)  
Antiguo 25/10/2011, 16:24
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: duda con isset

Volviste a colocar mal la lógica quita el operador de negación !, estás diciendo que si NO está definido $_POST["Compartir"] entonces que inserte. SI está definido que imprima un mensaje.

Ahora en el primer código que dejaste estás diciendo SI está definido que imprima el mensaje y si NO está definido que inserte.

Osea todo al contrario... Tienes que manejar bien la lógica de lo que haces.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 25/10/2011, 16:31
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: duda con isset

Código PHP:
if(isset($_POST["compartir"]))
{
    echo 
"Uno de los campos esta vacío.";
}
else
{

$alta "INSERT into nottas (nombre, titulo, notta, hora, dia, mes, anio) VALUES ('$nombre','$title','$des','$hora','$dia','$mes','$anio')";

//echo($alta); //para ver si algo salió mal

mysql_query($alta) or die(mysql_error());

mysql_close();

header("refresh:0; url=home.php");


Ok, ahora me sale solo el mensaje de echo y no agrega los bacios pero tampoco los campos llenos... me perdi! y eso que google tambien y no logro resolverlo, hay algo que no entiendo; la condicion no seria si los campor estan bacios echo "llenar" y en caso contratio else insertar?
  #6 (permalink)  
Antiguo 25/10/2011, 16:33
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: duda con isset

Sigues con todo al contrario a ver si así entiendes:

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST["Compartir"])) {
  3.     $alta = "INSERT into nottas (nombre, titulo, notta, hora, dia, mes, anio) VALUES ('$nombre','$title','$des','$hora','$dia','$mes','$anio')";
  4.     mysql_query($alta) or die(mysql_error());
  5.     header("refresh:0; url=home.php");
  6. } else {
  7.     echo "Uno de los campos esta vacío.";
  8. }

Tienes que validar que todas esas variables estén definidas y tengan datos correctos.

('$nombre','$title','$des','$hora','$dia','$mes',' $anio') <-- VALIDA TODO ESTO

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 25/10/2011, 16:46
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: duda con isset

andresdzphp, gracias pero sigue sin funcionar...

este es el archivo from_alta.php

Código HTML:
<form action="alta.php" method="post">
<input type="hidden" name="nombre" value="<?php echo $_SESSION['nombre'];?>">
<input type="text" name="titulo"><br><br>
<textarea id="id2" class="nbtn" name="notta"></textarea>
<br><br>
<input  type="submit" name="enviar" value="Compartir">
<input type="reset" value="Limpiar">
</form><br> 
y este es el alta.php

Código PHP:

$nombre      
$_POST['nombre'];
$title              $_POST['titulo'];

$des             $_POST['notta'];

$dia             date("d");

$mes           date("M");

$anio          date("Y");

$hora          date("H:s");

if (isset(
$_POST["enviar"])) {
$alta "INSERT into notas (nombre, titulo, notta, hora, dia, mes, anio) VALUES ('$nombre','$title','$des','$hora','$dia','$mes','$anio')";
mysql_query($alta) or die(mysql_error());
header("refresh:0; url=home.php");
} else {
echo 
"Uno de los campos esta vacío.";

  #8 (permalink)  
Antiguo 25/10/2011, 16:49
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: duda con isset

Si no trabajas en lo que estás haciendo va a seguir sin funcionar y yo no pienso hacerte el trabajo lo siento.

No basta con validar esto:

Código PHP:
Ver original
  1. //NO ES SUFICIENTE ESTO
  2. if (isset($_POST["enviar"])) {

Tienes que validar CADA UNA de las siguientes variables:

Código PHP:
Ver original
  1. $nombre      = $_POST['nombre'];
  2. $title              = $_POST['titulo'];
  3.  
  4. $des             = $_POST['notta'];
  5.  
  6. $dia             = date("d");
  7.  
  8. $mes           = date("M");
  9.  
  10. $anio          = date("Y");
  11.  
  12. $hora          = date("H:s");

Como herramientas tienes la función empty y la función isset.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 25/10/2011, 17:05
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: duda con isset

Ok... entendi, pero no esperaba que hicieras el trabajo! gracias voy a trabajar en ello...

Saludos
  #10 (permalink)  
Antiguo 25/10/2011, 17:11
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: duda con isset

Así se habla, otra cosa la fecha se debe manejar en una sola columna y la tienes como en cuatro, el campo debe ser en formato timestamp o fecha completa, no hace falta separar todo.

preocupate por estos que son los que se ingresan:

Código PHP:
Ver original
  1. $nombre      = $_POST['nombre'];
  2. $title              = $_POST['titulo'];
  3. $des             = $_POST['notta'];

los de fecha sobran, no está de más que cambies el diseño de la base de datos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: formulario, isset
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 00:22.