Ver Mensaje Individual
  #10 (permalink)  
Antiguo 21/02/2012, 17:02
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Respuesta: Problema con uploadify PHP+AJAX+MySQL

ok esperare tu respuesta, ahora tratare de explicar lo más breve y detalladamente posible como funciona mi aplicación para que veas porque no recibo la sesión (pondré solo el código relevante):

tengo publicar_opinion.php

Código HTML:
<!--al inicio-->
session_start();
<!--entre el head-->
<script type="text/javascript">
// <![CDATA[
$(document).ready(function() {
	$('#file_upload').uploadify({
    	        'uploader'  	: '../images/images_opiniones/uploadify.swf',
		'buttonText'  	:'Examinar...',
		'cancelImg' 	: '../images/images_opiniones/cancel.png',
    	        'script'    	: 'uploadify.php',
        	'folder'    	: '../images/images_opiniones/uploads',
        	'auto'      	: false,
		'fileDesc'    	: 'Tipo de imágenes permitidas (.JPG, .GIF, .PNG)',
		'fileExt'     	: '*.jpg;*.jpeg;*.gif;*.png',
		'sizeLimit'   	: 2097152, //default bytes *2MB* --1MB 1048576---
		'method'    	: 'post',
		'multi'       	: true,
  	});
});
// ]]>
</script>
<!--entre el body-->
<table align="center">
                        	<tr>
                                <td>Su nombre</td>
                                <td><input class="input_type_text" type="text" id="autor_opinion" name="autor_opinion" maxlength="100" onkeypress="return letras(event)" /><div id="error_autor_op" class="error" style="display:none"></div></td>
                            </tr>
                            <tr>
                                <td>*Su email</td>
                                <td><input class="input_type_text" type="text" id="email_opinion" name="email_opinion" maxlength="100" /><div id="error_email_op" class="error" style="display:none"></div></td>
                            </tr>
                            <!--mas campos-->
                            <tr>
                            	<td colspan="2" align="center"><input type="button" id="enviar" value="Enviar" onclick="procesar_opinion()" /></td>
                            </tr>
     </table> 
ahora el botón llama la función ajax procesar_opinion(), esta función valida los campos y los envía a procesar_opinion.php:

Código PHP:
session_start();
include(
'../conexion_mysql/conecta_db.php');
$conn_mysql conecta_db();

//recibo variables
$autor_opinion=trim($_GET['autor_opinion']);
//...demas variables

//inserto a la bd
$sql_insert="Insert into opiniones (autor_op, x, x, x, x, x, x, x) values ('$autor_opinion', '$x', '$x', '$x', '$x', '$x', '$x', '$x')";
mysql_query($sql_insert) or die('Error en la inserci&oacuten: '.mysql_error());
//aca saco el id que se acaba de generar y lo guardo en la sesion, es la unica variable que me interesa pasar
$id_opinion mysql_insert_id();
$_SESSION['id_op']=$id_opinion;
echo 
$_SESSION['id_op'];//le hago un echo para comprobar que esta guardando el valor y si lo hace 
una vez que la funcion ajax regresa a publicar_opinion.php, le pregunto al usuario si desea agregar fotos, entonces en publicar_opinion.php, despues del formulario tengo esto:

Código HTML:
<input id="file_upload" type="file" name="file_upload" />
<input type="button" class="fin_add_img" id="upload" value="Subir" onclick="$('#file_upload').uploadifyUpload();"/> 
aca llama todo el rollo del uploadify que envia a uploadify.php, donde estoy tratando de recuperar la variable de sesion:

Código PHP:
session_start();

include(
'../conexion_mysql/conecta_db.php');
$conn_mysql conecta_db();

$id_opinion=$_SESSION['id_op']; echo "recibi id: ".$id_opinion//echo vacio
    
$root $_SERVER['DOCUMENT_ROOT'];
$tempFile $_FILES['Filedata']['tmp_name'];
$targetPath $root.'/images/images_opiniones/uploads/';
$fileName $_FILES['Filedata']['name'];
    
$targetFile $targetPath.$fileName;
move_uploaded_file($tempFile,$targetFile);
    
$sql_insert="Insert into imagenes (nombre_img, ruta_img, id_opinion) values ('$fileName', '$targetFile', '$id_opinion')";
mysql_query($sql_insert) or die('Error en la inserci&oacuten: '.mysql_error());
        
echo 
"ok";
exit(); 
Pues el motivo de querer recuperar el id_opinion es que las imágenes deben estar relacionas con la opinión, entonces en mi tabla imágenes tengo de llave foránea el id_opinion

El uploadify.php me devuelve error, dice undefine index id_op

pues así esta mi relajo

Gracias infinitamente por tu ayuda

Última edición por catpaw; 21/02/2012 a las 17:19