Ver Mensaje Individual
  #12 (permalink)  
Antiguo 29/07/2009, 10:17
jonatanc
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 2 meses
Puntos: 14
Respuesta: Error! Notice: Undefined index

mmm puede ser que no te entienda o tu no me entiedas , vuelvo a explicarte:

Cuando vos intentas acceder a un indice no declarado en un arreglo te dara undefined index bla bla bla , hasta ahi todo bien , ahora el trucho es ver como podemos evitar que nos de este error , ya que como tu me dices haces la consulta y el listado en la misma pagina.

La idea que te mostre , se pasa en que controlamos mediante isset si esta declarado el arreglo $_POST , si no esta declarado no ejecuto la sección de codigo donde haces la consulta , si esta declarado , quiere decir que vos mandaste datos via el formulario , ya que el areglo post no es como una sesion , no permanece en lugares a donde vos no mandaste información , solo existe en la pagina que defines en tu method como encargada de procesar los datos que enviaras con ese formulario.Por ende , la idea vuelvo a repetir es ver si esta declarado ese arreglo , si no esta declarado no ejecutas nada que intente acceder a $_POST['el indice que sea'] , xq si lo haces te dara error , entonces la unica manera de saber esto es mediante un if con isset o sino ver si en un arreglo se paso el nombre del formulario o existe algun campo con valor submit ,pero a mi me gustaria hacerlo mas de otro modo.

Si queres , pasame el codigo php de tu pagina y te muestro como hacerlo , pero de todas formas te hago un ejemplo sencillo.

formulario.php

Código php:
Ver original
  1. <?php
  2. <html>
  3. <head>
  4. <title>Formulario</title>
  5. </head>
  6. <body>
  7. <form id='form' name='formulario' method='post' action='procesa.php'>
  8. <input type='text' name='nombre'/>
  9. <input type='submit' name='envio' value='Enviar' />
  10. </form>
  11. </body>
  12. </html>
  13. ?>

procesa.php

Código php:
Ver original
  1. <?php
  2. if(isset($_POST)){
  3. echo "Mi nombre es : <b>".$_POST['nombre']."</b>";
  4. }else{
  5. echo "No puedo acceder al indice nombre del arreglo post debido a que no mande los datos , usted esta accediendo en forma directa a este fichero";
  6. }
  7. ?>

Si no entiendes algo me decis y te ayudo :).

Saludos