Foros del Web » Programando para Internet » PHP »

Problema PHP y MySql

Estas en el tema de Problema PHP y MySql en el foro de PHP en Foros del Web. Que tal amigos, Tengo el siguiente problema: Me aparece: Notice: Undefined index: imagen in C:\Program Files (x86)\EasyPHP-12.1\www\Unified Networks\Prueba\insertardb.php on line 64 Notice: Undefined index: imagen ...
  #1 (permalink)  
Antiguo 09/09/2012, 23:21
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Problema PHP y MySql

Que tal amigos, Tengo el siguiente problema:

Me aparece:

Notice: Undefined index: imagen in C:\Program Files (x86)\EasyPHP-12.1\www\Unified Networks\Prueba\insertardb.php on line 64

Notice: Undefined index: imagen in C:\Program Files (x86)\EasyPHP-12.1\www\Unified Networks\Prueba\insertardb.php on line 92

Notice: Undefined index: imagen in C:\Program Files (x86)\EasyPHP-12.1\www\Unified Networks\Prueba\insertardb.php on line 98

Estoy Harto de este error.

Si me servia el script hasta que le metí diseño fue cuando ya no quiso funcionar.

Lo que es: Un capturador de boletas de servicio, colocas la informacion y te permite subir la boleta escaneada en pdf. Ya habia validado el script y funciona de maravilla pero austero, sin diseño. Al momento de meterle css, y div's fue cuando no me reconoce la imagen que le envio.

Les dejo el codigo:

codigo formulario:

Código:
<?php
include('header.php');
include('calendario.php');

?>

<div id="info">
<p>Nueva Boleta</p>
</div>

<div id="listado">
<form style="width:792px;" id="frmdocumento" name="frmdocumento" method="post" action="insertardb.php">
  <div id="fm-submit">
  <div>
      Folio de Boleta:
		<input name="boleta" style="width: 234px" type="text" />
  </div>
  <div>
      Numero de Reporte: 		<input name="reporte" style="width: 234px" type="text" />
  </div>
  <div>
		Tipo de Servicio:
		<select name="servicio">
		<option>Servicio de Instalacion</option>
		<option>Mantenimiento Preventivo</option>
		<option>Mantenimiento Correctivo</option>
		<option>Servicio Con Cargo</option>
		<option>Otros</option>
		</select></div>
  <div>
      Estados de Servicio: 		<select name="estado">
		<option>Concluido</option>
		<option>Cancelado</option>
		<option>Reprogramado</option>
		<option>Inconcluso</option>
		<option>En Observacion</option>
		</select>
  </div>  
  <div>
      Cliente: 		<input name="cliente" style="width: 234px" type="text" />
  </div>  
  <div>
      Numero de Contrato: (Si tiene) 		<input type="text" name="contrato" value="No"/>
		</div>  
  <div>
      Boleta Escaneada: 			
      <input type="hidden" name="max_file_size" value="99999">
      <input type="file" name="imagen">
  </div>  
  <div align="center">
      Actividades Realizadas:<br>
      <textarea name="texto" style="width: 717px; height: 172px"></textarea>
	  </div>
  <div>
		<label for="fecha_publicacion">Fecha de Inicio:</label>
		<input readonly="readonly" type="text" name="fecha_inicio" id="fecha_publicacion" value="<?php echo date("Y-m-j")?>" />
		<a onclick="show_calendar()" style="cursor: pointer;">
		<img alt="calendario" title="calendario" src="../img/calendario.png" /></a></div>
		<div id="calendario" style="display:none;margin-top:5px;"><?php calendar_html() ?></div>
  <div>
      Hora de Inicio:&nbsp;
		Hora:<input name="hinicio" style="width: 35px" type="text" />
		Minutos:<input name="minicio" style="width: 35px" type="text" />
  </div>  
  <div>
      <label for="fecha_publicacion">Fecha de Fin:</label>         
      <input type="text" name="fecha_fin" id="fecha_fin" value="<?php echo date("Y-m-j")?>" /> </div>
  <div>
      Hora de Fin:&nbsp;
		Hora:<input name="hfin" style="width: 35px" type="text" />
		Minutos:<input name="mfin" style="width: 35px" type="text" /> <br> <br>
  </div>  
    <input type="submit" name="submit" id="button" value="Guardar" />
  </div>
</form>
</div>
<?php
include('footer.php');
?>
código insertarbd:

Código:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<?PHP

// Obtener valores introducidos en el formulario
$boleta = $_POST["boleta"];
$reporte = $_POST["reporte"];
$servicio = $_POST["servicio"];
$estado = $_POST["estado"];
$cliente = $_POST["cliente"];
$contrato = $_POST['contrato'];

$texto = nl2br($_POST['texto']);

$fecha_inicio = $_POST["fecha_inicio"];

$hinicio = $_POST["hinicio"];
$minicio = $_POST["minicio"];

$fecha_fin = $_POST["fecha_fin"];

$hfin = $_POST["hfin"];
$mfin = $_POST["mfin"];


// Comprobar que se han introducido todos los datos obligatorios
      $errores = "";
      
      if (trim($boleta) == "")
         $errores = $errores . "   <LI>Se requiere el Numero de Boleta\n";
      if (trim($reporte) == "")
         $errores = $errores . "   <LI>Se requiere el Numero de Reporte\n";
      if (trim($servicio) == "")
         $errores = $errores . "   <LI>Se requiere el Tipo de Servicio\n";
      if (trim($estado) == "")
         $errores = $errores . "   <LI>Se requiere el Estado de Servicio\n";
      if (trim($cliente) == "")
         $errores = $errores . "   <LI>Se requiere el Cliente\n";

      if (trim($texto) == "")
         $errores = $errores . "   <LI>Se requiere las Actividades Realizadas\n";

      if (trim($fecha_inicio) == "")
         $errores = $errores . "   <LI>Se requiere la Fecha Inicio\n";

      if (trim($minicio) == "")
         $errores = $errores . "   <LI>Se requiere los Minutos de Inicio\n";
      if (trim($hinicio) == "")
         $errores = $errores . "   <LI>Se requiere la Hora de Inicio\n";

      if (trim($fecha_fin) == "")
         $errores = $errores . "   <LI>Se requiere los Años de Termino\n";

      if (trim($mfin) == "")
         $errores = $errores . "   <LI>Se requiere los Minutos de Termino\n";
      if (trim($hfin) == "")
         $errores = $errores . "   <LI>Se requiere la Hora de Termino\n";

   // Subir fichero
      $copiarFichero = false;

   // Copiar fichero en directorio de ficheros subidos
   // Se renombra para evitar que sobreescriba un fichero existente
   // Para garantizar la unicidad del nombre se añade una marca de tiempo
      if (is_uploaded_file ($_FILES['imagen']['tmp_name']))
      {
      	$nombre_archivo = $_FILES['imagen']['name']; 
		$extension = explode('.',$nombre_archivo); 
		$extt= ".$extension[1]";

		if (!($extt== ".pdf"))
	 	{ 
    		$errores = $errores . "   <LI>El archivo tiene que ser PDF\n";
		}
		else
		{
         $nombreDirectorio = "img/";
         $nombreFichero = $boleta;
         $nombreFichero = "Boleta" . $nombreFichero . ".pdf";
         //$nombreFichero = $_FILES['imagen']['name'];
         $copiarFichero = true;

      // Si ya existe un fichero con el mismo nombre, renombrarlo
         $nombreCompleto = $nombreDirectorio . $nombreFichero;
         if (is_file($nombreCompleto))
         {
            $idUnico = time();
            $nombreFichero = $idUnico . "-" . $nombreFichero;
         }
        }
      }
   // El fichero introducido supera el lÃÂ*mite de tamaño permitido
      else if ($_FILES['imagen']['error'] == UPLOAD_ERR_FORM_SIZE)
      {
      	 $maxsize = $_REQUEST['MAX_FILE_SIZE'];
         $errores = $errores . "   <LI>El tamaño del fichero supera el li*mite permitido ($maxsize bytes)\n";
      }
   // No se ha introducido ningún fichero
      else if ($_FILES['imagen']['name'] == "")
      {
         $nombreFichero = '';
         //$errores = $errores . "   <LI>No se ha introducido ninguna Boleta Escaneada.\n";
      }
   // El fichero introducido no se ha podido subir
      else
         $errores = $errores . "   <LI>No se ha podido subir el fichero\n";

   // Mostrar errores encontrados
      if ($errores != "")
      {
         print ("<P>No se ha podido realizar la insercion debido a los siguientes errores:</P>\n");
         print ("<UL>");
         print ($errores);
         print ("</UL>");
         print ("<P>[ <A HREF='javascript:history.back()'>Volver</A> ]</P>\n");
      }
      else
      {

      // AquÃÂ* vendrÃÂ*a la inserción de la noticia en la Base de Datos
      
      $conexion = mysql_connect("localhost","cisco","cisco");

		if(!$conexion)
		{
			die('No he podido conectar: '.mysql_error());
		}

		mysql_select_db("horasing",$conexion);

         if ($nombreFichero)
         	{
	      		$instruccion = "INSERT INTO horasing1 (boleta,reporte,tservicio,eservicio,Cliente,contrato,fecha_inicio,hinicio,minicio,fecha_fin,hfin,mfin,boletae,actv) VALUES ('$boleta','$reporte','$servicio','$estado','$cliente','$contrato','$fecha_inicio','$hinicio','$minicio','$fecha_fin','$hfin','$mfin,'$nombreFichero','$texto')";
				mysql_query($instruccion,$conexion)
					or die ("Fallo en la consulta. Boleta Anteriormente Registrada");
				mysql_close ($conexion);
		    }
		else
			{
	      		$instruccion = "INSERT INTO horasing1 (boleta,reporte,tservicio,eservicio,Cliente,contrato,fecha_inicio,hinicio,minicio,fecha_fin,hfin,mfin,actv) VALUES ('$boleta','$reporte','$servicio','$estado','$cliente','$contrato','$fecha_inicio','$hinicio','$minicio','$fecha_fin','$hfin','$mfin','$texto')";
				mysql_query($instruccion,$conexion)
					or die ("Fallo en la consulta. No colocaste la boleta escaneada.");
				mysql_close ($conexion);
			}

      // Mover fichero de imagen a su ubicación definitiva
         if ($copiarFichero)
            move_uploaded_file ($_FILES['imagen']['tmp_name'],
            $nombreDirectorio . $nombreFichero);

      // Mostrar datos introducidos
         print ("<P>La Boleta ha sido recibida correctamente:</P>\n");
         print ("<UL>\n");
         
		 print ("El numero de boleta: ".$boleta."<Br>Con el Numero de Reporte: ".$reporte."<Br><Br>Ha sido insertado Correctamente.<Br><Br>");
		
         if ($copiarFichero)
            print ("   <LI>Boleta: <A TARGET='_blank' HREF='" . $nombreDirectorio . $nombreFichero . "'>" . $nombreFichero . "</A>\n");
         else
            print ("   <LI>Boleta: (no hay)\n");
         print ("</UL>\n");

         print ("<P>[ <A HREF='index.php'>Insertar otra Boleta</A> ]</P>\n");
         
}?>
Espero me puedan echar la mano, Muchas Gracias!
  #2 (permalink)  
Antiguo 09/09/2012, 23:26
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: Problema PHP y MySql

Seguro que funcionaba antes y que sólo modificaste el diseño?

En la etiqueta <form> te falta especificar que el contenido incluye archivos: enctype="multipart/form-data" y con eso desaparece "el molesto error".
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 09/09/2012, 23:46
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 18 años, 1 mes
Puntos: 22
Respuesta: Problema PHP y MySql

el error se produce porque hay alguna variable o dato no definido en este caso puede revisar todos los datos con un if(isset())

Por ejemplo en lugar de:
Código PHP:
Ver original
  1. $boleta = $_POST["boleta"];

Validas que la variable este definida:
Código PHP:
Ver original
  1. $boleta = "";
  2. if(isset($_POST["boleta"])) {
  3.      $boleta = $_POST["boleta"];
  4. }

Tambien puedes revisar si la variable esta vacia o no:
Código PHP:
Ver original
  1. $boleta = "";
  2. if(isset($_POST["boleta"]) && !empty($_POST["boleta"])) {
  3.      $boleta = $_POST["boleta"];
  4. }
  #4 (permalink)  
Antiguo 10/09/2012, 07:53
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema PHP y MySql

Cita:
Iniciado por Triby Ver Mensaje
Seguro que funcionaba antes y que sólo modificaste el diseño?

En la etiqueta <form> te falta especificar que el contenido incluye archivos: enctype="multipart/form-data" y con eso desaparece "el molesto error".
Zaz Muchas Gracias Hermano En este momento lo pruebo...
  #5 (permalink)  
Antiguo 10/09/2012, 07:54
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema PHP y MySql

Cita:
Iniciado por kalvinman Ver Mensaje
el error se produce porque hay alguna variable o dato no definido en este caso puede revisar todos los datos con un if(isset())

Por ejemplo en lugar de:
Código PHP:
Ver original
  1. $boleta = $_POST["boleta"];

Validas que la variable este definida:
Código PHP:
Ver original
  1. $boleta = "";
  2. if(isset($_POST["boleta"])) {
  3.      $boleta = $_POST["boleta"];
  4. }

Tambien puedes revisar si la variable esta vacia o no:
Código PHP:
Ver original
  1. $boleta = "";
  2. if(isset($_POST["boleta"]) && !empty($_POST["boleta"])) {
  3.      $boleta = $_POST["boleta"];
  4. }
El problema Bro, es de que al momento de enviar la boleta escaneada, digamos que el campo si se ultilize el formulario no envía ese campo.

No envía la info al insertardb.php por eso no lo reconoce. Pero gracias me sirvio en otro problema que tenia el script.
  #6 (permalink)  
Antiguo 10/09/2012, 21:26
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema PHP y MySql

Ya quedo El problema era que al momento de poner el formulario

Código:
faltaba:enctype="multipart/form-data"
Muchas Gracias Amigos Inges...

Etiquetas: formulario, mysql+db, mysql.php, php+basedatos
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:16.