Ver Mensaje Individual
  #26 (permalink)  
Antiguo 15/06/2009, 01:11
bj4ever2009_foroweb
 
Fecha de Ingreso: mayo-2009
Mensajes: 27
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: error catastrófico en aplicación ajax

vamos al tema.

voy a poner los scripts de php que utilizo para comunicarme con la bd que es lo único que falta por poner, porque el resto de él código de ésta página ya está puesto.

en fin, éste es el contenido del script guardarDatosUsuario.php

Código:
<?php
include_once($_SERVER['DOCUMENT_ROOT'] . '/clinica/conf.php');

foreach($_COOKIE as $parametro => $valor)
	$$parametro=$valor;
foreach($_GET as $parametro => $valor)
	$$parametro=$valor;
foreach($_POST as $parametro => $valor)
	$$parametro=$valor;

if (!isset($_SESSION["autenticado"])) 
	$_SESSION["autenticado"] = false; 
if (!isset($_SESSION["IdUsuario"])) 
	$_SESSION["IdUsuario"] = -1; 

$txtLogin=eregi_replace("'","","$txtLogin");
$txtPassword=eregi_replace("'","","$txtPassword");



$IdUsuario=$_POST["txtIdUsuario"];
$login =$_POST["login"];
$password=$_POST["password"];
$nombre=$_POST["nombre"];
$apellidos=$_POST["apellidos"];
$mail=$_POST["mail"];
$dni=$_POST["dni"];
$movil=$_POST["movil"];
$fecha_alta=$_POST["fecha_alta"];
$fecha_baja=$_POST["fecha_baja"];
$permisos=asignarPermisos();
$identificador_area=$_POST["id_area"];

printf ("usuario número: %d         ",$IdUsuario);



//conecto con la base de datos
//llamo a la función bdConectar de mysql.php para conectarme a la base de datos que quiero
$conexion=bdConectar();



//cadena en la que almaceno la consulta sql que utilizo
//inicializo la variable consulta para no tener problemas con el ámbito


//bucle que realiza la consulta en función del parámetro que se le pasa
//deshabilitado hasta que consiga modificar las funciones de busqueda y hacer funcionar el grid
	if($txtOpc == 'alta'){
			
		//llamo a la función comprueba_login para comprobar que no se utiliza un login existente
			/*$comp_login=consultaLogin($login);

			if ($comp_login!="")
			{
				echo "Ese login ya existe";
			}
			else{*/

			
			$consulta="insert into usuarios (login,password,nombre,apellidos,email,dni,movil,fecha_alta,fecha_baja,permisos,id_area)values('".$login."','".$password."','".$nombre."','".$apellidos."','".$mail."','".$dni."','".$movil."','".$fecha_alta."','".$fecha_baja."','".$permisos."','".$identificador_area."')";
	
			//}		//fin alta	
	}
	elseif ($txtOpc == 'mod') {
	
		$consulta="UPDATE usuarios set login='".$login."', password='".$password."', nombre='".$nombre;
		$consulta=$consulta."', apellidos='".$apellidos."', email='".$mail."', dni='".$dni."', movil='".$movil."', fecha_alta=".$fecha_alta;
		$consulta=$consulta.", fecha_baja=".$fecha_baja.", permisos='".$permisos."', id_area='".$identificador_area."' WHERE id_usuario=".$IdUsuario;
printf ("consulta: %s   <br>\n      ",$consulta);
	}//fin modificación




//llamo a la función bdConsultar de mysql.php pasándo la cadena $consulta cómo parámetro
//almaceno el resultado en la variable $vconsulta
$vconsulta=bdConsultar($consulta);
bdLiberar($vconsulta);	
bdCerrar($conexion);


function asignarPermisos(){

	$cad_permisos="";
    $dir = $_POST["ch_direccion"];
    $admon = $_POST["ch_admon"];
	$cons= $_POST["ch_consultas"];
	$rec= $_POST["ch_rececion"];
	$pruebas= $_POST["ch_pruebas"];
	$ambulante= $_POST["ch_ambulante"];
	$estudiante= $_POST["ch_estudiante"];


$cad_permisos=$dir .$admon .$cons .$rec .$pruebas .$ambulante .$estudiante;
return $cad_permisos;
}

function consultaLogin($paramLogin){
	print " Estoy en consultalogin ";
	
	$log = "";
	
	$consulta = "SELECT login FROM usuarios WHERE login='".$paramLogin."'";

	$rs = bdConsultar($consulta);

	if($row = mysql_fetch_array($rs)){
		$log = $row['login'];
	}	

	bdLiberar($rs);	

	return $log;
}
?>
este script recibe por parámetro la variable $txtOpc. si el valor de esta variable es 'alta' el script debe realizar un insert para dar de alta un nuevo usuario, si es
'mod' deberá realizar un update para modificar los datos del usuario.

lo que nos interesa a nosotros es la opción de alta, puesto que el error aparece al dar de alta un nuevo usuario.

también te voy a poner el código de un script llamado 'Mysql.php' que es el script que utilizo siempre para hacer las consultas a la bd (así no tengo que hacer las funciones cada vez que haga una nueva página).

Código:
function bdConectar() {

	$conn = mysql_connect('localhost','usuario','contraseña') or die('Error de conexión : ' . mysql_error()); // DESARROLLO
	mysql_select_db('bdclinica') or die('Error de selección de BD'); // DESARROLLO
	mysql_query ("SET NAMES 'utf8'");
	//mysql_query ("SET NAMES 'ISO-8859-1'");
	return $conn;
}


function bdConsultar($sql) {
	$rs = mysql_query($sql) or die('La consulta fall&oacute;: ' . mysql_error());
	return $rs;
} 

function bdLiberar($rs) {
	// Liberar conjunto de resultados
	mysql_free_result($rs);
}
Ésto es lo que me falta, apart del xml, que no lo pondré en principio porque yo empiezo a pensar que el fallo está por aquí, (ojalá que esté)

bueno yo sigo peleandome con ésto, una vez más gracías por tu ayuda