Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Bases de Datos => Mensaje iniciado por: z3nth10n en 13 Noviembre 2012, 18:19 PM

Título: Empezando de 0 con MySQL
Publicado por: z3nth10n en 13 Noviembre 2012, 18:19 PM
Hola amigos, pues bien no se nada de MySQL y necesito algo de información a ver como puedo usar MySQL para poder algunas cosas que tengo que hacer, como por ejemplo en PHP un formulario que envie a la base de datos algo que luego lo lea otro PHP y lo identificque, exactamente algo así como lo  lista de juegos de Minijuegos.com yo quiero hacerlo pero claro no se nada, y como todo necesito algo de informacion de como hacer edso especifico, no me quiero ir a por las ramas, si tengo alguna duda os pregunta´re pero ahora l oque quiero saber es:

¿Cómo puedo hacer un sistema de posteo (formulario) que haga una descripcion y un titulo y todo eso que vaya a una base de datos y luego otro PHP lo lea?

AH! y ademas, uso xampp y tengo una base de datos que creo que se llama smf y sus tablas smf_ pero claro ya nose como crear tablas mysql con php (creo que lo vi por ahi, pero ya no recuerdo) y todo eso.

Así que bueno, si e pueden hacer un mini tutoiral de los codigos que tengo que hacer, (y todo eso lo pusieran con // (comentarios) para explicar todo me vendria de pm, ya que no se mucho PHP, ya que lo mucho que se es algunas variables para hacer pro ejemplo index.php?id=x y que se meuestre algun texto, y los echos''; y poca cosa más.

Aparte también cuando le de al enlace del juego que se abra otra ventana o una pestaña y que salga eso index.php?id= y que se abra el juego cno esa id, algo asi a lo Minijuegos.com

que es lo que voy a hacer.
Gracias y un saludo.

PD: Si no me lei los tutoriales, necesito algo sencillo y entendible.
Título: Re: Empezando de 0 con MySQL
Publicado por: Zume-Zero en 15 Noviembre 2012, 00:17 AM
Algo sencillo y entendible es crear formularios, yo uso el mysql de un vps y bueno aprendí el uso de MySQL (no completo, aún soy un newbie) creando formularios, aquí te dejo una guía:

1)Primero Debemos Crear Una Base En Mysql Y Ejecutar La Siguiente Consulta


CREATE TABLE `miembros` (
`ID` INT NOT NULL AUTO_INCREMENT ,
`user` VARCHAR( 32 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL ,
`email` TEXT NOT NULL,
`activada` BOOL NOT NULL ,
`cod_act` VARCHAR( 32 ) NOT NULL ,
PRIMARY KEY ( `ID` )
) ENGINE = MYISAM ;


Para ingresar a phpmyadmin debes tener activo el MySQL de xampp ingresar como por ejemplo: localhost/phpmyadmin ó 127.0.0.1/phpmyadmin etc..

2)Ahora Pasamos A Los Archivos En Si.

Conexion.php


<?php 
//aca iniciamos la conexion dando los parametros server,user,password 
mysql_connect("TU SERVER","TU USER","TU PASS"); 

//aca seleccionamos la base creada 
mysql_select_db("NOMBRE DE LA BASE CREADA"); 


//creamos una funcion para cifrar en md5 valores como pueden ser el password,etc 
function cifrar($valor){ 
    
$cifrado md5($valor); 
    return 
$cifrado



//creamos una funcion para facilitar el envio por mail del link de la validacion de cuenta. 
function enviar_mail($email,$user,$cod_act

$destinatario $email
$asunto "Validación De Cuenta En **********"
$cuerpo 
Para Completar Su Registro Debe Acceder Al Siguiente Enlace. 
http://localhost/validar.php?user=
$user&cod=$cod_act"
mail($destinatario,$asunto,$cuerpo,$headers); 


?>



Index.php

<?php 
//aca incluimos el archivo conexión.php para establecer la conexion y poder tener acceso a las funciones antes creadas.
include('Conexion.php'); 

//iniciamos la informacion de sesion. 
session_start(); 

//si $_SESSION['usuario'] esta definido, por lo que estara logueado lo redirigimos a main.php 
if(isset($_SESSION['usuario'])){ 
    
header("Location: main.php"); 


//creamos el formulario de login y registro 
echo'<div id="loginbar"><form method="POST" action="Login.php"> 
Usuario: <input type="text" name="userlog" id="userlog"> 
Contraseña: <input type="text" name="passwordlog" id="passwordlog"> 
<input type="submit" value="Login"></form><div id="resultadologin" style="display: inline; margin-left: 5px;color:red;"></div> 

<form method="POST" action="Registrar.php" style="float:right;"> 
Usuario: <input type="text" name="user" id="user"> 
Contraseña: <input type="text" name="password" id="pass"> 
Email: <input type="text" name="email" id="email"> 
<input type="submit" value="Registrarse"> 
<div id="resultadoregistrar" style="display: inline; margin-left: 5px;color:red;"></div></form></div>'

?>



Registrar.php

<?php 
//incluimos el archivo conexion.php para establecer la conexion y tener acceso a todas las funciones declaradas
include('Conexion.php'); 

//recogemos mediante POST los datos de user,password y email y los almacenamos en variables 
$user $_POST['user']; 
$pass $_POST['password']; 
$email $_POST['email']; 

//si la variable del user,password o email se encuentran vacias damos mensaje que se deben completar todos los campos y detenemos la ejecucion del script.
if(empty($user) || empty($pass) || empty($email)){ 
    echo
'Debe Completar Todos Los Campos'
    die(); 
} else { 

//si la condicion anterior es falsa, ciframos el user y pass con MD5, y generamos un codigo al azar de 16 digitos el cual sera usado para la activacion de la cuenta
    
$user=cifrar($user); 
    
$pass=cifrar($pass); 
    
$cod_act substr(md5(rand()),0,16); 


//selecionamos de la tabla miembors donde user sea igual a la variable user 
$comprobacion mysql_query("SELECT user FROM miembros WHERE user = '$user'"); 

//si el numero de columnas devueltos es mayor de 0, significa que ya existe el usuario,entonces le informamos que elija otro nick
if(mysql_num_rows($comprobacion) > 0){ 
    echo
'Nick En Uso elige Otro'

//si lo anterior es falso, hacemos la misma comprobacion pero esta vez con el email y en caso de ser verdadera se lo informamos.
} elseif(mysql_num_rows(mysql_query("SELECT user FROM miembros WHERE email = '$email'")) > 0){ 
    echo
'Email En Uso elige Otro'
    } else { 

//si todo lo anterior es falso, significa que podemos registrar el user, insertamos en la tabla miembros, en los campos user:variable user, pass:variable pass, email:variable email,activada:0, ya que la cuenta no esta activada ( perdon la redundacia), y en cod_act el codigo generado para la activacion.
    
$agregar=mysql_query("INSERT INTO miembros (user,pass,email,activada,cod_act) VALUES ('$user','$pass','$email',0,'$cod_act')");
    if(
$agregar){ 
//si se agrega correctamente damos un mensaje de que se registro con exito y llamamos a la funcion enviar_email definida en conexion.php con los parametros email,usuario, y codigo de activacion
        
echo'Te Has Registrado Con Exito, Activa Tu Cuenta Para Jugar'
        
//echo"http://localhost/validar.php?user=$user&cod=$cod_act"; 
        
enviar_mail($email,$user,$cod_act); 
    }else{ 
//en caso de no poder insertar el nuevo usuario dejamos un codigo de error. 
        
echo'Hubo Un Error Al Intentar Registrarte, Intentalo De Nuevo'
    } 

?>



Validar.php


<?php 
//incluimos conexion para establecer la conexion con la base y usar las funciones antes declaradas. 
include('Conexion.php'); 

//recogemos mediante GET el valor MD% del user y el codigo de activacion y lo almacenamos en variables 
$user $_GET['user']; 
$cod $_GET['cod']; 

//consultamos a la base los campos user,cod_act de la tabla miembros donde user sea igual a la variable user, cod_act sea igual a la variable cod_act y activada sea igual a 0
$validar mysql_query("SELECT user,cod_act FROM miembros WHERE user='$user' AND cod_act = '$cod' AND activada = 0");

//si el numero devuelto de columnas es 0 significa que ya valido la cuenta, entonces damos mensaje de esto.
if(mysql_num_rows($validar) == 0){ 
    echo
'Ya Validaste Tu Cuenta'
}else{ 

//en caso de ser falso lo anterior, cambiamos el valor activada a 1 donde user sea igual a la variable user de la tabla miembros
    
$activar mysql_query("UPDATE miembros SET activada=1 WHERE user = '$user'"); 
     
    if(
$activar){ 
        echo
'Cuenta Activada Con Exito, Ya Puedes Jugar'
// si se cambia con exito, se muestra un mensaje informandolo 
    
}else{ 
//de no ser asi tambien se lo informa 
        
echo'Error Al Intentar Activar La Cuenta'
    } 

?>



Login.php


<?php 
//incluimos conexion.php y almacenamos en variables los datos pasados por POST que son user y pass 
include('conexión.php'); 
$user=$_POST['userlog']; 
$pass=$_POST['passwordlog']; 

//si la variable user esta vacia le informamos que debe completar el campo. 
if(empty($user)){ 
    echo
'Debe Colocar El User'
    die(); 


//al igual lo hacemos con la pass. 
if(empty($pass)){ 
    echo
'Debe Colocar La Contraseña'
    die(); 


//ciframos el user y la pass para poder hacer la comprobacion en la base y almacenamos en la variable usermostrar el nombre del user actual.
$usermostrar=$user
$user=cifrar($_POST['userlog']); 
$pass=cifrar($_POST['passwordlog']); 

//seleccionamos activada de la tabal miembros donde user sea igual a la variable user y pass sea igual a la variable dada
$loguear mysql_query("SELECT activada FROM miembros WHERE user = '$user' AND pass = '$pass'"); 

if(
mysql_num_rows($loguear) == 0){ 
//si devuelve 0 columnas significa que el user o el pass son incorrectos asi que se lo informamos y detenemos el script
    
echo'Usario O Clave Invalida'
    die(); 


//almacenamos en un array loguear2 el valor de los campos devueltos por la consulta loguear. 
$loguear2 mysql_fetch_assoc($loguear); 

if(
$loguear2['activada'] == 0){ 
    echo
'Debe Activar Su Cuenta Para Poder Jugar'
//si activada, que es el campo que seleccionamos es 0, informamos que debe activar su cuenta para poder usarla
}else{ 

//en caso de no ser asi, iniciamos los datos de sesion y almacenamos en ella el nombre del user actual y su valor en MD5,luego redirigimos al main.php y asi seria como el user estaria logueado.
    
session_start(); 
    
$_SESSION['usuario'] = $usermostrar
    
$_SESSION['usuariomd5'] = $user
        
header("Location: main.php");     

?>



Main.php

<?php 
//iniciamos datos de sesion y comprobamos que este definida la variable usuario, en caso de no estarlo dirigimos al index, pero en caso de estarlo, "imprimimos" un boton de deslogueo y una imagen con texto a modo ilustrativo.
session_start(); 
if(!isset(
$_SESSION['usuario'])){ 
    
header("Location: index.php"); 
     
}else{ 
include(
'Incluir.php'); 
    echo 
'<a href="salir.php" title="Cerrar Sesión"><img src="/Images/close.png" align="right"></a> 
    <img src="Images/money.png"><b>100</b> 
    Mis Lugares'




?>



Salir.php


<?php 
//iniciamos datos de sesion 
session_start(); 

//si no esta definido la variable usuario dirigimos al index 
if(!isset($_SESSION['usuario'])){ 
    
header("Location: index.php"); 
}else{ 

//en caso de estar definida destruimos todos los datos de sesion y dirigimos al index 
    
session_destroy(); 
    
header("Location: index.php"); 

?>
Título: Re: Empezando de 0 con MySQL
Publicado por: z3nth10n en 18 Noviembre 2012, 20:15 PM
Si tengo ya una base de datos creada (ya que uso Spirate) el prefijo es "smf_" que se supone que tengo que hacer?

PD: Esto no es para hacer un registro, yo quiero hacer un sistema de posteo con IDs y todo eso, a lo tipo minijuegos.com, ya sabes una lista de juegos, con flash, descripcion, titulo, thumbail, controles, etc....
Título: Re: Empezando de 0 con MySQL
Publicado por: Shell Root en 19 Noviembre 2012, 06:04 AM
Con lo del prefijo, supongo que sera una variable estatica, que se antepone a cada tabla, o no?
Título: Re: Empezando de 0 con MySQL
Publicado por: z3nth10n en 19 Noviembre 2012, 21:24 PM
Ehm, exactamente no se que es, pero me parece que es como se llama la tabla, usa Spirate instalalo en xampp y mira lo que te digo, gracias, :P