Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] indice indefindo php

Estas en el tema de indice indefindo php en el foro de PHP en Foros del Web. buen día, tengo un formulario el cual funciona casi perfecto,excepto por 2 cosas: 1. cuando ingreso un dato me funciona bien, y despues de ingresarlo ...
  #1 (permalink)  
Antiguo 19/01/2013, 07:08
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
indice indefindo php

buen día, tengo un formulario el cual funciona casi perfecto,excepto por 2 cosas:

1. cuando ingreso un dato me funciona bien, y despues de ingresarlo la pagina queda vacia, como es de ser, pero la actualizo sin tener ningun dato y se inserta uno nuevo, tambien aclaro que tengo los 2 archivos (html y php) en una misma pagina.

2. cuando agrego unos datos los coge,pero hay informacion que no es obligatoria y al dejarlos vacio me dice que indice indefinido.

Les agradezco sus comentarios y ayudas.
  #2 (permalink)  
Antiguo 19/01/2013, 07:18
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: indice indefindo php

Al parecer te faltan hacer un par de condiciones, tal vez con isset. Pero queda dificil adivinar sin código.

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 19/01/2013, 07:20
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
Respuesta: indice indefindo php

Cita:
Iniciado por andresdzphp Ver Mensaje
Al parecer te faltan hacer un par de condiciones, tal vez con isset. Pero queda dificil adivinar sin código.

Saludos.
o.k amigo, aqui te pego el código, es un poco extenso

Código PHP:
<?php

include("../Conexion/conexion.php");
session_start();

if (
$_POST){


$id=$_POST["id"];

$fechaexpedidocumento=$_POST["fechaexpedi"];


$lugarexpediciondocumento=$_POST["lugarexpedi"];


$fechanaci=$_POST["fechanaci"];

$lugarnaci=$_POST["lugarnaci"];

$Nombres=$_POST["primernombre"];

$Apellidos=$_POST["apelli"];

$Tipos_Sangre=$_POST["tipsangre"];

$RH=$_POST["rh"];

$Edad=$_POST["ed"];

$Estatura=$_POST["estatu"];

$Estadocivi=$_POST["estadocivil"];

$Tele=$_POST["telef"];

$reside=$_POST["direcresi"];

$Barrio=$_POST["barri"];

$Ciudad=$_POST["ciresi"];

$numlibreta=$_POST["libmili"];

$rango=$_POST["libreta"];

$email=$_POST["email"];

$casa=$_POST["vivipropi"];

$sexo=$_POST["sex"];

$camisa=$_POST["tallcami"];

$panta=$_POST["tallpant"];

$botas=$_POST["tallbot"];

$lateral=$_POST["laterali"];

$primaria=$_POST["primaricomple"];

$ultimprimaria=$_POST["ultimprimari"];

$bachilller=$_POST["bachillercomple"];

$ultimnbachiller=$_POST["ultimbachiller"];

$estudioactual=$_POST["actualestudia"];

$Queestudia=$_POST["Queestudia"];

//Hijos

$hijo1=$_POST["hijo1"];

$edadhijo1=$_POST["edadhijo1"];

$estudia1=$_POST["estudiahijo1"];

$estudio1=$_POST["estudiohijo1"];

//hijo2

$hijo2=$_POST["hijo2"];

$edadhijo2=$_POST["edadhijo2"];

$estudia2=$_POST["estudiahijo2"];

$estudio2=$_POST["estudiohijo2"];

//hijo3

$hijo3=$_POST["hijo3"];

$edadhijo3=$_POST["edadhijo3"];

$estudia3=$_POST["estudiahijo3"];

$estudio3=$_POST["estudiohijo3"];

//hijo4

$hijo4=$_POST["hijo4"];

$edadhijo4=$_POST["edadhijo4"];

$estudia4=$_POST["estudiahijo4"];

$estudio4=$_POST["estudiohijo4"];

//hijo5

$hijo5=$_POST["hijo5"];

$edadhijo5=$_POST["edadhijo5"];

$estudia5=$_POST["estudiahijo5"];

$estudio5=$_POST["estudiohijo5"];

//conyugue 

$conyugue=$_POST["conyugue"];

$cedulaconyu=$_POST["cedula"];

$expeconyu=$_POST["expedicionconyugue"];

$teleconyu=$_POST["teleconyugue"];

//Padres

$padre=$_POST["nombrepadre"];

$vivepadre=$_POST["padre"];

$telepadre=$_POST["telepadre"];

$madre=$_POST["nombremadre"];

$vivemadre=$_POST["madre"];

$telemadre=$_POST["telemadre"];

$fecha=$_POST["Fechaela"];


$sql="insert into empleados (Identificacion,Fecha_expedicion_documento,Lugar_expedicion_documento
    ,Fecha_nacimiento,Lugar_nacimiento,Nombres,Apellidos,Tipo_Sangre,RH,Edad,Estatura,Estado_civil,
    Telefono,Direccion,Barrio_residencia,Ciudad_residencia,Libreta_militar,clase,Email,Vivienda,
    Sexo,Camisa,Pantalon,Botas,Lateralidad,PrimariaCompleta,Ultimoañoaprobado,BachillerCompleto,Ultimoañobachiller,Estudia,Queestudia,
    Nombres_apellidoshijo1,edadhijo1,estudiahijo1,queestudiahijo1,Nombres_apellidoshijo2,edadhijo2,
    estudiahijo2,queestudiahijo2,Nombres_apellidoshijo3,edadhijo3,estudiahijo3,queestudiahijo3,
    Nombres_apellidoshijo4,edadhijo4,estudiahijo4,queestudiahijo4,Nombres_apellidoshijo5,
    edadhijo5,estudiahijo5,queestudiahijo5,Nombreapellidosconyugue,Numerocedula,Expedicioncedula,Telefonoconyugue,Nombre_apellidos_padre,
    Vivepadre,Telefonopadre,Nombre_apellidos_madre,Vivemadre,Telefonomadre,Fecha_elaboracion) values
('$id','$fechaexpedidocumento','$lugarexpediciondocumento','$fechanaci','$lugarnaci','$Nombres','$Apellidos','$Tipos_Sangre','$RH','$Edad','$Estatura',
    '$Estadocivi','$Tele','$reside','$Barrio','$Ciudad','$numlibreta','$rango','$email','$casa','$sexo','$camisa','$panta','$botas','$lateral','$primaria','$ultimprimaria','$bachilller','$ultimnbachiller',
    '$estudioactual','$Queestudia','$hijo1','$edadhijo1','$estudia1','$estudio1','$hijo2','$edadhijo2','$estudia2','$estudio2','$hijo3','$edadhijo3','$estudia3','$estudio3','$hijo4'
    ,'$edadhijo4','$estudia4','$estudio4','$hijo5','$edadhijo5','$estudia5','$estudio5','$conyugue','$cedulaconyu','$expeconyu','$teleconyu',
    '$padre','$vivepadre','$telepadre','$madre','$vivemadre','$telemadre','$fecha')"
;

//echo $id,$fechaexpedidocumento,$lugarexpediciondocumento,$fechanaci,$lugarnaci,$Nombres;




$datos=mysqli_query($con,$sql);



}
  #4 (permalink)  
Antiguo 19/01/2013, 07:27
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: indice indefindo php

pobre tabla empleados.

Tienes que validar campo por campo, si está definido lo agregas así o sino le asignas un valor vacío o como lo manejes. Al final redireccionar con header para que no se vuelva a insertar cuando recargues la página.
__________________
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 19/01/2013, 07:40
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
Respuesta: indice indefindo php

Cita:
Iniciado por andresdzphp Ver Mensaje
pobre tabla empleados.

Tienes que validar campo por campo, si está definido lo agregas así o sino le asignas un valor vacío o como lo manejes. Al final redireccionar con header para que no se vuelva a insertar cuando recargues la página.
Gracias, pero podrias explicarme como hacer lo de definir campo o asignarle un valor vacio, y como redireccionar (estoy en proceso de aprendizaje )
  #6 (permalink)  
Antiguo 19/01/2013, 07:48
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: indice indefindo php

Por ejemplo:

Código PHP:
Ver original
  1. if (isset($_POST['nombre'])) {
  2.     $nombre = $_POST['nombre'];
  3. } else {
  4.     $nombre = '';
  5. }

para redireccionar después de insertar colocas:

Código PHP:
Ver original
  1. header('Location: paginadestino.php');

Tienes que validar todo o sino te van a meter hasta lo que no te imaginas en esa 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
  #7 (permalink)  
Antiguo 23/01/2013, 08:37
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
Exclamación Respuesta: indice indefindo php

Cita:
Iniciado por andresdzphp Ver Mensaje
Por ejemplo:

Código PHP:
Ver original
  1. if (isset($_POST['nombre'])) {
  2.     $nombre = $_POST['nombre'];
  3. } else {
  4.     $nombre = '';
  5. }

para redireccionar después de insertar colocas:

Código PHP:
Ver original
  1. header('Location: paginadestino.php');

Tienes que validar todo o sino te van a meter hasta lo que no te imaginas en esa base de datos.
Gracias compatriota pero no se si el isset esta bien, estuve leyendo y el isset siginifica "Si existe" entonces creo que seria asi:

Código PHP:
Ver original
  1. if (isset($_POST['nombre'])) {
  2.    echo "Ya existe";
  3. } else {
  4.     $nombre=$_POST['nombre'];
  5. }
  #8 (permalink)  
Antiguo 23/01/2013, 08:55
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 2 meses
Puntos: 397
Respuesta: indice indefindo php

Creo que estas confundido, isset sirve para ver si una variable existe, en un determinado momento

Código PHP:
Ver original
  1. if(isset($variable)){
  2.     echo "Existe";
  3. }else{
  4.     echo "No existe";
  5. }
  6. //resultado No existe
  7.  
  8.  
  9. $variable = '';
  10. if(isset($variable)){
  11.     echo "Existe";
  12. }else{
  13.     echo "No existe";
  14. }
  15. //resultado Existe

si los valores los traes desde un formulario te recomendaria usar en vez de isset empty

Código PHP:
Ver original
  1. if (!empty($_POST['nombre'])) {
  2.     $nombre = $_POST['nombre'];
  3. } else {
  4.     $nombre = '';
  5. }

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #9 (permalink)  
Antiguo 23/01/2013, 09:05
Avatar de JhonErick  
Fecha de Ingreso: noviembre-2012
Ubicación: colombia
Mensajes: 38
Antigüedad: 12 años
Puntos: 3
Respuesta: indice indefindo php

Cita:
Iniciado por andres_15_ Ver Mensaje
Gracias compatriota pero no se si el isset esta bien, estuve leyendo y el isset siginifica "Si existe" entonces creo que seria asi:

Código PHP:
Ver original
  1. if (isset($_POST['nombre'])) {
  2.    echo "Ya existe";
  3. } else {
  4.     $nombre=$_POST['nombre'];
  5. }
Estas algo confundido en la interpretación.
La anotación de jonni09lo es acertada en cuanto si existe $_POST['nombre'] entonces asignas este a la variable $nombre y si no existe $nombre vale por default '';

claro que también lo podrías hacer de la siguiente forma:
asignar primero el valor de $nombre='';
y despues el if condicional

if (isset($_POST['nombre'])) {
$nombre=$_POST['nombre']; así ya no manejarías un else y el resultado seria el mismo
}

Saludos
  #10 (permalink)  
Antiguo 23/01/2013, 16:08
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
Respuesta: indice indefindo php

Cita:
Iniciado por JhonErick Ver Mensaje
Estas algo confundido en la interpretación.
La anotación de jonni09lo es acertada en cuanto si existe $_POST['nombre'] entonces asignas este a la variable $nombre y si no existe $nombre vale por default '';

claro que también lo podrías hacer de la siguiente forma:
asignar primero el valor de $nombre='';
y despues el if condicional

if (isset($_POST['nombre'])) {
$nombre=$_POST['nombre']; así ya no manejarías un else y el resultado seria el mismo
}

Saludos
si lo entendi, pense que el isset hacia otra cosa, ahora entiendo que dice es que si la variable existe entonces la agregas, pero tengo una pregunta, es cierto o no que cuando en la base de datos se pone not null no deberia dejar ingresar ningun dato?, si es asi no se que pasa pero los inserta
  #11 (permalink)  
Antiguo 23/01/2013, 17:33
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: indice indefindo php

Eso último ya te lo contestaron: Acá
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: formulario, html, indice
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:12.