Llevo varios días dándole vueltas al asunto y no consigo encontrar la solución.
En resumidas cuentas, necesito en mi aplicación, incluir en un afunción o archivo los datos de conexión a mi base de datos, para que cuando necesite modifcar algo, hacerlo en ese archivo, al que llamaré con include.
Luego, además, necesito, en base al usuario que se identifique, que "pase" por un código de validación, y según sea dicho usuario, comenzar un a session, y redirigirlo a una página u otra.
Los errores que me indican son:
Código:
Os pongo los códigos ...Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /Applications/MAMP/htdocs/sic/conex.php:27) in /Applications/MAMP/htdocs/sic/scontrol.php on line 39 Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/sic/conex.php:27) in /Applications/MAMP/htdocs/sic/scontrol.php on line 49
scontrol.php (es llamado después de solicitar usuario /clave, desde el index.html)
Tiene comentado el tema del include, porque me daba error ...
Código PHP:
<?php
//include('conex.php');
// $link=Conectarse();
//////////////////////////////////////////
// CONEXION CON LA BASE DE DATOS //
// sustituir por un a funcion //
$link = mysql_connect('localhost:8889', 'root', 'root') or die('Error conectando con el servidor.');
$db = mysql_select_db('sic', $link) or die ('No se puede conectar con la base de datos.');
//////////////////////////////////////////
$usuario = $_POST['usuario'];
$query = 'SELECT * FROM usuariossic WHERE UsuarioNombre="' . $usuario . '"';
//$result = mysql_query($query,$link);
$result = mysql_query($query);
//Resto de usuarios no adminsic ************************
if (mysql_num_rows($result)==0){
//si no coincide la clave le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
//header("Location: scontrolacceso.php?errorusuario=si");
} else{
while($row = mysql_fetch_assoc($result))
{
//echo $row['ClienteClave'] . "<br>";
if ($row['UsuarioClave'] == $_POST['contrasena']){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
$_SESSION['autentificado']= 'SI';
$_SESSION['usuario']=$_POST['usuario'];
$_SESSION['usuariotipo']=$row['UsuarioTipo'];
$_SESSION['usuarioID']=$row['UsuarioID'];
//$_SESSION["usuarioClienteID"] =$row['UsuarioClienteID'];
switch($row['UsuarioTipo']) {
case '1': // Administrador SIC
$_SESSION['autentificadoadmin']= 'SI';
header ('Location: admindex.php');
break;
case '2': // Editor SIC
$_SESSION['autentificadoeditor']= 'SI';
header ('Location: editorindex.php');
break;
default: // Cualquier Usuario-Cliente
$_SESSION['autentificado']= 'SI';
$_SESSION['usuarioClienteID'] = $row['UsuarioClienteID'];
header ('Location: clienteindex.php');
}
/*
if ($row['UsuarioTipo'] == 1){ // Administrador SIC
$_SESSION["autentificadoadmin"]= "SI";
header ("Location: admindex.php");
} else { // Resto de usuarios SIC - Cliente
$_SESSION["autentificado"]= "SI";
header ("Location: clienteindex.php");
}*/
}else {
//si no coincide la clave le mando otra vez a la portada
header('Location: scontrolacceso.php?errorusuario=si');
}
}
}
?>
Código PHP:
<?php
function Conectarse()
{
$db_host='localhost:8889'; // Host al que conectar, habitualmente es el ‘localhost’
$db_nombre='sic'; // Nombre de la Base de Datos que se desea utilizar
$db_user='root'; // Nombre del usuario con permisos para acceder
$db_pass='root'; // Contraseña de dicho usuario
// Ahora estamos realizando una conexión y la llamamos ‘$link’
$link=mysql_connect($db_host, $db_user, $db_pass) or die ("Error conectando a la base de datos.");
// Seleccionamos la base de datos que nos interesa
$db = mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");
// Devolvemos $link porque nos hará falta más adelante, cuando queramos hacer consultas.
return $link;
}
?>
Gracias por anticipado