Este es el codigo para coger los datos de un formulario y procesarlos. Esta mas o menos explicado con los comentariospero si necesitais algo estare mirando. A ver, en el formulario tengo 5 campos de texto, despues dos combos anidados con los que selecciono los cursos y los meto en una clase carrito y despues tengo un formulario con radiobuttons. Como veis para utilizar los combos llamo a esta pagina y vuelvo a la otra(Diagnostico1.php) mandandole la categoria para que ponga los cursos de esa categoria. Me da un error y creo q es por las sesiones pero no lo se bien. El error que me da es el siguiente:
Fatal error: Call to a member function on a non-object
Código PHP:
<?php
//Empezamos la sesion
session_start();
header("Cache-control:private");
$enviar=$_POST['Enviar'];
//Si no le hemos dado l boton de enviar
if(!isset($enviar)){
//Si la categoria de los combos anidados cambia
if ($catant!=$categoria) {
//Guardamos las variables en la sesion
$_SESSION['nombre']=$_POST['nombre'];
$_SESSION['apellido1']=$_POST['apellido1'];
$_SESSION['apellido2']=$_POST['apellido2'];
$_SESSION['dni']=$_POST['dni'];
$_SESSION['email']=$_POST['email'];
//Volvemos a la pagina anterior mandando la categoria
header("location:Diagnostico1.php?categoria=$categoria");
}
}
//Si le hemos dado a Enviar
else{
//Cogemos el DNI y comprobamos si esta en la base de datos
$dni=$_POST['dni'];
$link = mysql_connect("localhost","desarrollo","desarrollo");
mysql_select_db("COIIE-DESA",$link);
mysql_query("SELECT * FROM t_coi_colegiados WHERE DNI=".$dni,$link);
$num=mysql_affected_rows($link);
//Si no esta
if($num==0){
//Guardamos en variables de sesion todo lo seleccionado
$_SESSION['duracion']=$_POST['duracion'];
$_SESSION['tiempo']=$_POST['tiempo'];
$_SESSION['metodo']=$_POST['metodo'];
$_SESSION['causas']=$_POST['causas'];
$_SESSION['situacion']=$_POST['situacion'];
$_SESSION['cuenta']=$_POST['cuenta'];
$_SESSION['empresa']=$_POST['empresa'];
$_SESSION['sector']=$_POST['sector'];
$_SESSION['inversion']=$_POST['inversion'];
$_SESSION['subvencion']=$_POST['subvencion'];
//Volvemos enviando el error de DNI incorrecto
header("Location: Diagnostico1.php?error1=error1");
}
//Cogemos la fila del colegiado con sus datos
$resul=mysql_query("SELECT * FROM t_coi_colegiados WHERE DNI=".$dni, $link);
$fila=mysql_fetch_array($resul);
$numcol=$fila['NCOLEGIADO'];
//Guardamos los valores de la encuesta en un array llamado encuesta
$encuesta[0]=$_POST['duracion'];
$encuesta[1]=$_POST['tiempo'];
$encuesta[2]=$_POST['metodo'];
$encuesta[3]=$_POST['causas'];
$encuesta[4]=$_POST['situacion'];
$encuesta[5]=$_POST['cuenta'];
$encuesta[6]=$_POST['empresa'];
$encuesta[7]=$_POST['sector'];
$encuesta[8]=$_POST['inversion'];
$encuesta[9]=$_POST['subvencion'];
$resul=mysql_query("SELECT * FROM tblenc",$link);
$i=0;
//Mientras no se acabe la tabla tblenc
while($res=mysql_fetch_array($resul)){
//Incrementamos el valor del total
$total=$res['total']+1;
//Miramos que respuesta hemos elegido y la incrementamos
if($encuesta[$i]=$res['respuesta1']){
$valor=$res['valor1']+1;
mysql_query("UPDATE tblenc SET `valor1`='$valor',`total`='$total'",$link);
}
elseif($encuesta[$i]=$res['respuesta2']){
$valor=$res['valor2']+1;
mysql_query("UPDATE tblenc SET `valor2`='$valor',`total`='$total'",$link);
}
elseif($encuesta[$i]=$res['respuesta3']){
$valor=$res['valor3']+1;
mysql_query("UPDATE tblenc SET `valor3`='$valor',`total`='$total'",$link);
}
elseif($encuesta[$i]=$res['respuesta4']){
$valor=$res['valor4']+1;
mysql_query("UPDATE tblenc SET `valor4`='$valor',`total`='$total'",$link);
}
$i++;
}
//Cogemos als observaciones y las metemos en la base de datos
$observaciones=$_POST['observaciones'];
if(!empty($observaciones)){
mysql_query("INSERT INTO Observaciones(Observacion,NCOLEGIADO) VALUES ('$observaciones','$numcol')",$link);
}
$carrito=$_POST['carrito'];
[COLOR="Red"]//esta es la linea que da error
$total = $carrito->saca_total();[/COLOR]?>
<a href="ver_carrito.php"><font size="2" face="Arial, Helvetica, sans-serif">Ver cursos seleccionados</font></a>
<?
}
?>