Ver Mensaje Individual
  #12 (permalink)  
Antiguo 25/08/2011, 15:28
Avatar de jatg
jatg
 
Fecha de Ingreso: abril-2011
Ubicación: caracas
Mensajes: 152
Antigüedad: 13 años, 8 meses
Puntos: 15
Respuesta: Problema con localhost/phpmyadmin

Cita:
Iniciado por cender Ver Mensaje
Tras mucho leer he podido hacer mi tabla con los miembros, pero de lo que no tengo ni idea es de cómo conseguir que esta base de datos esté enlazada con mi web para poder controlar los accesos.

No sé si hay que exportar o importar la tabla. Es más, casi ya tengo todo el código de php, pero para esta parte de unión no se me ocurre nada, ni aún leyendo los manuales que me has dejado me ayudan a aclararme...
hola cender, te lo voy a explicar pasito a pasito , vamos a empezar presta atencion aqui vamos:

supongamos que tienes un registro de usuarios en tu web en el cual los usuarios que quieran navegar en una zona privada tengan que registrarse en tu web para poder navegar esa zona " valga la redundancia".

estemos para eso primero debes crear una base de datos en tu servidor en donde se guardaran los datos de dichos usuarios , dicha base puede ser algo como esto:

crea una base de datos y llamala users

copia y pega este codigo en tu base de datos :

Código MySQL:
Ver original
  1. CREATE TABLE `users` (
  2.   `ID` int(11) NOT NULL auto_increment,
  3.   `Username` varchar(255) NOT NULL,
  4.   `Password` varchar(255) NOT NULL,
  5.   `date_registered` int(11) NOT NULL,
  6.   `Temp_pass` varchar(55) default NULL,
  7.   `Temp_pass_active` tinyint(1) NOT NULL default '0',
  8.   `Email` varchar(255) NOT NULL,
  9.   `Active` int(11) NOT NULL default '0',
  10.   `Level_access` int(11) NOT NULL default '2',
  11.   `Random_key` varchar(32) default NULL,
  12.   PRIMARY KEY  (`ID`),
  13.   UNIQUE KEY `Username` (`Username`),
  14.   UNIQUE KEY `Email` (`Email`)
  15. ) ENGINE=MyISAM;

ok despues de esto vamos a crear los archivos necesarios para crear el formulario de registro

enpesariamos con un archivo llamado registrar.php
y seria este:

registrar.php

Código PHP:
Ver original
  1. <?php
  2.     require_once('settings.php');
  3.  
  4.     if ( array_key_exists ( '_submit_check', $_POST ) )
  5.     {
  6.         if ( $_POST['username'] != '' && $_POST['password'] != '' && $_POST['password'] == $_POST['password_confirmed'] && $_POST['email'] != '' && valid_email ( $_POST['email'] ) == TRUE )
  7.         {
  8.             if ( ! checkUnique ( 'Username', $_POST['username'] ) )
  9.             {
  10.                 $error = 'Username already taken. Please try again!';
  11.             }
  12.             elseif ( ! checkUnique ( 'Email', $_POST['email'] ) )
  13.             {
  14.                 $error = 'The email you used is associated with another user. Please try again or use the "forgot password" feature!';
  15.             }
  16.             else {     
  17.                 $query = $db->query ( "INSERT INTO " . DBPREFIX . "users (`Username` , `Password`, `date_registered`, `Email`, `Random_key`) VALUES (" . $db->qstr ( $_POST['username'] ) . ", " . $db->qstr ( md5 ( $_POST['password'] ) ).", '" . time () . "', " . $db->qstr ( $_POST['email'] ) . ", '" . random_string ( 'alnum', 32 ) . "')" );
  18.                
  19.                 $getUser = "SELECT ID, Username, Email, Random_key FROM " . DBPREFIX . "users WHERE Username = " . $db->qstr ( $_POST['username'] ) . "";
  20.        
  21.                 if ( $db->RecordCount ( $getUser ) == 1 )
  22.                 {          
  23.                     $row = $db->getRow ( $getUser );
  24.                    
  25.                     $subject = "Activation email from " . DOMAIN_NAME;
  26.  
  27.                     $message = "Dear ".$row->Username.", this is your activation link to join our website. In order to confirm your membership please click on the following link: <a href=\"" . APPLICATION_URL . "confirm.php?ID=" . $row->ID . "&key=" . $row->Random_key . "\">" . APPLICATION_URL . "confirm.php?ID=" . $row->ID . "&key=" . $row->Random_key . "</a> <br /><br />Thank you for joining";
  28.                    
  29.                     if ( send_email ( $subject, $row->Email, $message ) ) {
  30.                         $msg = 'Account registered. Please check your email for details on how to activate it.';
  31.                     }
  32.                     else {
  33.                         $error = 'I managed to register your membership but failed to send the validation email. Please contact the admin at ' . ADMIN_EMAIL;
  34.                     }
  35.                 }
  36.                 else {
  37.                     $error = 'User not found. Please contact the admin at ' . ADMIN_EMAIL;
  38.                 }
  39.             }                          
  40.         }
  41.         else {     
  42.             $error = 'There was an error in your data. Please make sure you filled in all the required data, you provided a valid email address and that the password fields match one another.';  
  43.         }
  44.     }
  45. ?>
  46. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  47. <html xmlns="http://www.w3.org/1999/xhtml">
  48. <head>
  49.     <title>roScripts.com - PHP Login System With Admin Features</title>
  50.     <link href="css/styles.css" rel="stylesheet" type="text/css" />
  51.  
  52. </head>
  53.  
  54. <body>
  55.     <div id="log">
  56. <?php   if ( isset ( $error ) ) { echo '            <p class="error">' . $error . '</p>' . "\n";    }   ?>
  57. <?php   if ( isset ( $msg ) )   { echo '            <p class="msg">' . $msg . '</p>' . "\n";    } else {//if we have a mesage we don't need this form again.?>
  58.     </div>
  59.  
  60.     <div id="container" style="width:230px;">
  61.     <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  62.         <input type="hidden" name="_submit_check" value="1"/>
  63.            
  64.         <label for="username">Username</label>
  65.         <input class="input" type="text" id="username" name="username" size="32" value="<?php if(isset($_POST['username'])){echo $_POST['username'];}?>" />
  66.        
  67.         <label for="password">Password</label>
  68.         <input class="input" type="password" id="password" name="password" size="32" value="" />
  69.        
  70.         <label for="password_confirmed">Re-Password</label>
  71.         <input class="input" type="password" id="password_confirmed" name="password_confirmed" size="32" value="" />
  72.        
  73.         <label for="email">Email</label>
  74.         <input class="input" type="text" id="email" name="email" size="32" value="<?php if(isset($_POST['email'])){echo $_POST['email'];}?>" />
  75.        
  76.         <input type="image" name="register" value="register"  class="submit-btn" src="images/btn.gif" alt="submit" title="submit" />
  77.         <div class="clear"></div>
  78.     </form>
  79.     </div>
  80. <? } ?>
  81. </body>
  82.  
  83. </html>

ok ahora creariamos 5 archivos de tipo .php que son los que van a realizar el trabajo de verificacion de datos , conexion a la base de datos, y la validacion de dichos datos . los archivos serian estos:

db.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. $hostname = "localhost";
  4. $database = "users";
  5. $username = "tu_username";
  6. $password = "tu_passwoord";
  7.  
  8. $login = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
  9. mysql_select_db($database);
  10. ?>

continuo en la proxima respuesta ...... continuara....
__________________
www.josealexis.net