Empezando de 0 con MySQL

Iniciado por z3nth10n, 13 Noviembre 2012, 18:19 PM

0 Miembros y 1 Visitante están viendo este tema.

z3nth10n

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.

Interesados hablad por Discord.

Zume-Zero

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"); 

?>

z3nth10n

#2
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....

Interesados hablad por Discord.

Shell Root

Con lo del prefijo, supongo que sera una variable estatica, que se antepone a cada tabla, o no?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

z3nth10n

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

Interesados hablad por Discord.