elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Insertar tablas de BD en mi web. (Estancado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Insertar tablas de BD en mi web. (Estancado)  (Leído 2,394 veces)
WiseHidden

Desconectado Desconectado

Mensajes: 225


La curiosidad es la semilla de la genialidad.


Ver Perfil WWW
Insertar tablas de BD en mi web. (Estancado)
« en: 22 Diciembre 2012, 13:29 pm »

La verdad que no se muy bien por donde empezar para enfocar bien el tema pues es un poco largo. Pero intentaré ser lo mas breve posible.

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

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)

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.
    ?>

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.";
    }
    ?>

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>

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.";
    }
    ?>

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&iacute;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&iacute;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


 


« Última modificación: 22 Diciembre 2012, 13:35 pm por WiseHidden » En línea

Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
yovaninu


Desconectado Desconectado

Mensajes: 349



Ver Perfil
Re: Insertar tablas de BD en mi web. (Estancado)
« Respuesta #1 en: 23 Diciembre 2012, 15:25 pm »

El error:
Citar
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
Se refiere a que un a inicio de sesion (session_start) no debe precederle instruccion alguna excepto la propia etiqueta de apertura del php, es decir, en el codigo que muestras:
Código:
<title>DonApuestas | Config</title>    <?php
    session_start(); // Iniciamos la session, es muy importante esto.
session_start(); deberia estar al inicio de dicho archivo, algo asi como:
Código:
<?php
session_start();

En el segundo error, esta claro que los datos de Usuario y Password no coinciden y por eso no puede conectarse a la base de datos.


En línea

WiseHidden

Desconectado Desconectado

Mensajes: 225


La curiosidad es la semilla de la genialidad.


Ver Perfil WWW
Re: Insertar tablas de BD en mi web. (Estancado)
« Respuesta #2 en: 23 Diciembre 2012, 19:33 pm »

Exacato. Problema resuelto, el "fallo" estaba en el inicio de la sesion, que tenia lo del titulo por delante y el problema de la bd no estaba en que no coincidian si no que:

Parte del Código config.php
Citar
$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());

deberia quedar tal que así

Citar
$conexion=mysql_connect($conexion_dat['localhost'],$conexion_dat['usuario'],$conexion_daton['clave']) 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['bd'],$conexion) or die(mysql_error());

Una vez resuelto los errores, me sucede lo siguiente.

Cuanto entro en: (config.php) Sale en blanco como supongo que ha de salir, por hay no problem.

entrar.php (Cuando entro en aqui sin haberme registrado aun me dice)

Cita:
"Se a logeado correctamente como"
Por lo que es super curioso y aún no me he logueado ni registrado.

login.html (Me sale perfectamente y cuando escribo un usuario o clave incorrecto me salta una pantalla que dice: Datos inconrrectos. Intente denuevo.) Como ha de ser.

registrar.php

Cita:
Usuario ya existente.
¬¬ este es el que me deja superdesconcertado :)

registro.html: Este me sale tambien visiblemente bien, pero cuando le doy al botón de registar me dice usuario ya existente ya que me manda a registrar.php (y no puede existir usuario existente pues no hay ningun usuario registrado)

salir.php

Cita:
include('config.php'); // Incluimos la conexion a la bd y la session unset($_SESSION['usuario']); // Borramos la session echo "Chau!";
Por lo que veo son los archivos .php los que dan "fallos"

Alguien sabe cual es el motivo, le estaria enormemente agradecido, estoy tan cerca de hacer mi primer (registro y login de usuario) seria una lástima quedarme aqui :( jajaja

Un saludo y abrazo a todos
Y que pasen unas grandisimas navidades

Atentamente
WH


En línea

Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Alguien sabe insertar tablas en un post?
Sugerencias y dudas sobre el Foro
soplo 8 3,066 Último mensaje 5 Julio 2004, 10:13 am
por Firos
insertar en 2 tablas distintas
PHP
basickdagger 5 3,031 Último mensaje 30 Mayo 2014, 22:22 pm
por basickdagger
insertar datos de diferentes tablas con left join
Bases de Datos
gAb1 2 3,588 Último mensaje 31 Julio 2015, 20:55 pm
por fran800m
insertar en 1 sql solo varios datos relacionado con varias tablas
Bases de Datos
tecasoft 4 3,933 Último mensaje 22 Octubre 2015, 20:08 pm
por 0roch1
insertar en varias tablas fk y pk
Bases de Datos
bash 7 6,773 Último mensaje 29 Diciembre 2016, 13:40 pm
por crisoof
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines