Estoy empezando en php y bases de datos.
La base de datos ya se como crearlas mi problema está en "insertalas" en mi web.
Estoy haciendo una serie de ejercicios para aprender y en este estoy bastante atascado.
Os expongo aqui el ejercicio en si:
Citar
PORRA FUTBOLERA ONLINE (version basica).
Desarrollar una aplicación PHP que permita gestionar una clásica "Porra futbolera".
La aplicación utilizará una BD MySQL llamada "porra" con las siguientes tablas :
CREATE TABLE `porra` (
`usuario` VARCHAR( 40 ) NOT NULL ,
`equipo1` TINYINT NOT NULL ,
`equipo2` TINYINT NOT NULL ,
`pagado` VARCHAR( 2 ) NOT NULL ,
PRIMARY KEY ( `equipo1` , `equipo2` )
) ENGINE = MYISAM ;
CREATE TABLE `partido` (
`local` VARCHAR( 40 ) NOT NULL ,
`visitante` VARCHAR( 40 ) NOT NULL ,
PRIMARY KEY ( `local` , `visitante` )
) ENGINE = MYISAM ;
CREATE TABLE `usuarios` (
`usuario` VARCHAR( 40 ) NOT NULL ,
`clave` VARCHAR( 40 ) NOT NULL ,
`nombre` VARCHAR( 40 ) NOT NULL ,
`correo` VARCHAR( 40 ) NOT NULL ,
PRIMARY KEY ( `usuario` )
) ENGINE = MYISAM ;
La página inicial porra.php tendrá un aspecto parecido al siguiente :
El enlace registrarme llevará a la página registroporra.php con un aspecto parecido al siguiente :
El botón Registrar llamará a la propia página registroporra.php, que comprobará si el usuario existe ya en la tabla. Si es así mostrará un mensaje apropiado y terminará. Comprobará a continuación si vienen datos en los campos Clave, Nombre y Correo. Si falta alguno de ellos dar un mensaje y acabar. Si vienen todos los datos, insertar un registro en la tabla usuarios de la BD, codificando la Clave en MD5. Informar si el resultado de la inserción ha sido correcto o no.
El botón Enviar de la pagina porra.php llamará a la propia página, que comprobará si el usuario y clave están en la tabla de usuarios de la BD. Si es así activará una variable de sesión donde guardará el usuario. El aspecto de porra.php con sesión abierta será el siguiente :
El botón Desconectar eliminará la sesión, y volverá la página porra.php a su aspecto inicial. El botón Apostar enviará la apuesta a la BD. Informar del resultado de la inserción mediante un script alert . Inicialmente el campo pagado tendrá el valor 'NO', seria misión del Administrador de la BD el cambiar su valor cuando reciba el pago de la apuesta
Desarrollar una aplicación PHP que permita gestionar una clásica "Porra futbolera".
La aplicación utilizará una BD MySQL llamada "porra" con las siguientes tablas :
CREATE TABLE `porra` (
`usuario` VARCHAR( 40 ) NOT NULL ,
`equipo1` TINYINT NOT NULL ,
`equipo2` TINYINT NOT NULL ,
`pagado` VARCHAR( 2 ) NOT NULL ,
PRIMARY KEY ( `equipo1` , `equipo2` )
) ENGINE = MYISAM ;
CREATE TABLE `partido` (
`local` VARCHAR( 40 ) NOT NULL ,
`visitante` VARCHAR( 40 ) NOT NULL ,
PRIMARY KEY ( `local` , `visitante` )
) ENGINE = MYISAM ;
CREATE TABLE `usuarios` (
`usuario` VARCHAR( 40 ) NOT NULL ,
`clave` VARCHAR( 40 ) NOT NULL ,
`nombre` VARCHAR( 40 ) NOT NULL ,
`correo` VARCHAR( 40 ) NOT NULL ,
PRIMARY KEY ( `usuario` )
) ENGINE = MYISAM ;
La página inicial porra.php tendrá un aspecto parecido al siguiente :
El enlace registrarme llevará a la página registroporra.php con un aspecto parecido al siguiente :
El botón Registrar llamará a la propia página registroporra.php, que comprobará si el usuario existe ya en la tabla. Si es así mostrará un mensaje apropiado y terminará. Comprobará a continuación si vienen datos en los campos Clave, Nombre y Correo. Si falta alguno de ellos dar un mensaje y acabar. Si vienen todos los datos, insertar un registro en la tabla usuarios de la BD, codificando la Clave en MD5. Informar si el resultado de la inserción ha sido correcto o no.
El botón Enviar de la pagina porra.php llamará a la propia página, que comprobará si el usuario y clave están en la tabla de usuarios de la BD. Si es así activará una variable de sesión donde guardará el usuario. El aspecto de porra.php con sesión abierta será el siguiente :
El botón Desconectar eliminará la sesión, y volverá la página porra.php a su aspecto inicial. El botón Apostar enviará la apuesta a la BD. Informar del resultado de la inserción mediante un script alert . Inicialmente el campo pagado tendrá el valor 'NO', seria misión del Administrador de la BD el cambiar su valor cuando reciba el pago de la apuesta
He creado una base de datos y su respectivas tablas.
Pero el siguiente paso que es empezar por el tema del registro de usuarios e (insertarlo en mi web) estoy un poco estancado. He creado el formulario en html. y los correspondientes archivos en .php y he estado mirando en google, tutoriales, youtube, como realizar el registro y login de usuarios por ejemplo y me da los siguientes fallos cuando "entro" en los enlaces.
Citar
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/ciudadan/public_html/Registro/CBD/config.php:1) in /home/ciudadan/public_html/LaboratorioPHP/Registro/CBD/config.php on line 2
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: NO) in /home/ciudadan/public_html/Registro/CBD/config.php on line 9
Access denied for user 'root'@'localhost' (using password: NO)
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: NO) in /home/ciudadan/public_html/Registro/CBD/config.php on line 9
Access denied for user 'root'@'localhost' (using password: NO)
Para que sea mas fácil encontrar el posible "fallo" os mostraré además los códigos de los diferentes archivos tanto en .php como en .html.
Código config.php
Citar
<title>DonApuestas | Config</title> <?php
session_start(); // Iniciamos la session, es muy importante esto.
// Aqui definiremos los datos de conexion, en un array.
$conexion_dat['localhost'] = "localhost"; // Aqui pondremos el ip o host de la bd
$conexion_dat['usuario'] = "ciudadan_da"; // Aqui ponemos el usuario de la bd
$conexion_dat['clave'] = "032FV034560"; // Aqui ponemos la clave de la bd
$conexion_dat['bd'] = "ciudadan_donapuestas"; // Aqui ponemos la bd
$conexion=mysql_connect($conexion_dat['localhost'],$conexion_dat['ciudadan_da'],$conexion_daton['032FV034560']) or die(mysql_error()); // Aqui conectamos a la bd, si falla ( or die ), mostramos el error que nos da mysql_error()
$bd_conect=mysql_select_db($conexion_dat['ciudadan_donapuestas'],$conexion) or die(mysql_error()); // Aqui nos conectamos a la bd, lo mismo que arriba si falla.
?>
session_start(); // Iniciamos la session, es muy importante esto.
// Aqui definiremos los datos de conexion, en un array.
$conexion_dat['localhost'] = "localhost"; // Aqui pondremos el ip o host de la bd
$conexion_dat['usuario'] = "ciudadan_da"; // Aqui ponemos el usuario de la bd
$conexion_dat['clave'] = "032FV034560"; // Aqui ponemos la clave de la bd
$conexion_dat['bd'] = "ciudadan_donapuestas"; // Aqui ponemos la bd
$conexion=mysql_connect($conexion_dat['localhost'],$conexion_dat['ciudadan_da'],$conexion_daton['032FV034560']) or die(mysql_error()); // Aqui conectamos a la bd, si falla ( or die ), mostramos el error que nos da mysql_error()
$bd_conect=mysql_select_db($conexion_dat['ciudadan_donapuestas'],$conexion) or die(mysql_error()); // Aqui nos conectamos a la bd, lo mismo que arriba si falla.
?>
entrar.php
Citar
<title>DonApuestas | Entrar</title> <?php
include('config.php'); // Incluimos la conexion a la bd y la session
$user=$_POST['usuario'];
$clave=$_POST['clave'];
$consulta="SELECT * FROM users WHERE nick='".$user."' AND clave='".$clave."'"; // Selecionamos el nick y la clave
$consultar=mysql_query($consulta,$conexion) or die(mysql_error()); // En el primer parametro ponemos la consulta, y en el segundo ponemos la conexion a la bd
if(mysql_num_rows($consultar)==1){ // mysql_num_rows sirve para saber cuantos resultados devolvio la consulta
// Si devolvio 1 resultado, es que los datos del usuario estan bien, porque selecionamos de la bd el nick y la clave.
// es casi imposible que devuelva mas de 1, porque deben aver 2 personas que se registren con el mismo nick y clave, pero ya
// vamos a evitar eso en el registro
$_SESSION['usuario']=$user; // Creamos la session y le damos un dato para que lo guarde, con esta session identificamos al usuario en cualquier parate de la web.
echo "Se a logeado correctamente como ".$user;
}else{ // Sino devolvio 1 resultado
echo "Datos inconrrectos. Intente denuevo.";
}
?>
include('config.php'); // Incluimos la conexion a la bd y la session
$user=$_POST['usuario'];
$clave=$_POST['clave'];
$consulta="SELECT * FROM users WHERE nick='".$user."' AND clave='".$clave."'"; // Selecionamos el nick y la clave
$consultar=mysql_query($consulta,$conexion) or die(mysql_error()); // En el primer parametro ponemos la consulta, y en el segundo ponemos la conexion a la bd
if(mysql_num_rows($consultar)==1){ // mysql_num_rows sirve para saber cuantos resultados devolvio la consulta
// Si devolvio 1 resultado, es que los datos del usuario estan bien, porque selecionamos de la bd el nick y la clave.
// es casi imposible que devuelva mas de 1, porque deben aver 2 personas que se registren con el mismo nick y clave, pero ya
// vamos a evitar eso en el registro
$_SESSION['usuario']=$user; // Creamos la session y le damos un dato para que lo guarde, con esta session identificamos al usuario en cualquier parate de la web.
echo "Se a logeado correctamente como ".$user;
}else{ // Sino devolvio 1 resultado
echo "Datos inconrrectos. Intente denuevo.";
}
?>
login.html
Citar
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>DonApuestas | Login</title>
</head>
<body>
<form name="login_form" method="post" action="entrar.php">
<label> Usuario:
<input type="text" name="usuario" id="usuario"></label>
<br>
<label> Clave:
<input type="password" name="clave" id="clave">
</label>
<br>
<label>
<input type="submit" name="button" id="button" value="Entrar">
</label>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>DonApuestas | Login</title>
</head>
<body>
<form name="login_form" method="post" action="entrar.php">
<label> Usuario:
<input type="text" name="usuario" id="usuario"></label>
<br>
<label> Clave:
<input type="password" name="clave" id="clave">
</label>
<br>
<label>
<input type="submit" name="button" id="button" value="Entrar">
</label>
</form>
</body>
</html>
registrar.php
Citar
<?php
include('config.php'); // Incluimos la conexion a la bd y la session
$user=$_POST['usuario'];
$clave=$_POST['clave'];
$email=$_POST['email'];
$consulta="SELECT * FROM users WHERE nick='".$user."'"; // Selecionamos el nick, para comprobar si existe
$consultar=mysql_query($consulta,$conexion) or die(mysql_error()); // Consultamos
if(mysql_num_rows($consultar)==1){ // Si devuelve 1 registro, ya existe el usuario
echo "Usuario ya existente.";
}else{ // Si no...
$consulta_reg="INSERT INTO users (nick,clave,email) VALUES ('".$user."','".$clave."','".$email."')";
$consultar_reg=mysql_query($consulta_reg,$conexion) or die(mysql_error()); // Creamos el usuario
echo "Usuario registrado correctamente.";
}
?>
include('config.php'); // Incluimos la conexion a la bd y la session
$user=$_POST['usuario'];
$clave=$_POST['clave'];
$email=$_POST['email'];
$consulta="SELECT * FROM users WHERE nick='".$user."'"; // Selecionamos el nick, para comprobar si existe
$consultar=mysql_query($consulta,$conexion) or die(mysql_error()); // Consultamos
if(mysql_num_rows($consultar)==1){ // Si devuelve 1 registro, ya existe el usuario
echo "Usuario ya existente.";
}else{ // Si no...
$consulta_reg="INSERT INTO users (nick,clave,email) VALUES ('".$user."','".$clave."','".$email."')";
$consultar_reg=mysql_query($consulta_reg,$conexion) or die(mysql_error()); // Creamos el usuario
echo "Usuario registrado correctamente.";
}
?>
registro.html
Citar
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form name="register_form" method="post" action="registrar.php">
<label> Usuario:
<input type="text" name="user" id="user"></label>
<br>
<label> Clave:
<input type="password" name="clave" id="clave"></label>
<br>
<label> Email:
<input name="email" type="text" id="email"></label>
<br>
<label>
<input type="submit" name="entra" id="button" value="Registrar">
</label>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form name="register_form" method="post" action="registrar.php">
<label> Usuario:
<input type="text" name="user" id="user"></label>
<br>
<label> Clave:
<input type="password" name="clave" id="clave"></label>
<br>
<label> Email:
<input name="email" type="text" id="email"></label>
<br>
<label>
<input type="submit" name="entra" id="button" value="Registrar">
</label>
</form>
</body>
</html>
salir.php
Citar
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
include('config.php'); // Incluimos la conexion a la bd y la session
unset($_SESSION['usuario']); // Borramos la session
echo "Chau!";
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
include('config.php'); // Incluimos la conexion a la bd y la session
unset($_SESSION['usuario']); // Borramos la session
echo "Chau!";
</body>
</html>
Bueno antes de nada disculparme por el "tochaco" de post escrito, pero queria dejar todo bien puesto y claro, pues entiendo de que hasta cualquier punto de nada puede significar un castastrofico error en este mundo de la programación.
Tambien quería dejaros ver que he hecho todo lo posible antes de postear este post.
Asi pues os agradeceria enormemente que pudieran orientarme y ayudarme.
Un cordial saludo
Atentamente.
WH