Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: freespace16 en 6 Diciembre 2015, 20:48 PM

Título: Impedir que se duplique informacion en mi base de datos sql
Publicado por: freespace16 en 6 Diciembre 2015, 20:48 PM
Hola, estoy trabajando en una pagina que esta vinculada a un software que en este caso es un juego en el que se loguean a traves de la pagina osea que si te registraste en la pagina como usuario ej: pepito y tu contraseña; al momento de entrar en el juego coloques lo mismo y entres. Pero para eso necesito que la informacion osea username no se pueda duplicar.

Lo que quiero es que si alguien coloca pepito y ya ese username existe salga "este usuario ya existe". Como lo hago?? aqui esta el codigo de la pagina de registro. registro.php

Código (php) [Seleccionar]
<?php require_once('Connections/freespace.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
  
$insertSQL sprintf("INSERT INTO usuarios (usuario, nombres, apellidos, contrasena, tipo, dia, mes, ano) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['Usuario'], "text"),
                       
GetSQLValueString($_POST['Nombre'], "text"),
                       
GetSQLValueString($_POST['Apellidos'], "text"),
                       
GetSQLValueString($_POST['Contrasena'], "text"),
                       
GetSQLValueString($_POST['tipo'], "text"),
                       
GetSQLValueString($_POST['dia'], "text"),
                       
GetSQLValueString($_POST['mes'], "text"),
                       
GetSQLValueString($_POST['ano'], "text"));

  
mysql_select_db($database_freespace$freespace);
  
$Result1 mysql_query($insertSQL$freespace) or die(mysql_error());

  
$insertGoTo "index.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}
?>

Código (html5) [Seleccionar]
<!DOCTYPE html>
<html lang="en" class="no-js">

   <head>

       <meta charset="utf-8">
       <title>Registrate Es Gratis!!</title>
       <meta name="viewport" content="width=device-width, initial-scale=1.0">
       <meta name="description" content="">
       <meta name="author" content="">

       <!-- CSS -->
       <link rel='stylesheet' href='http://fonts.googleapis.com/css?family=PT+Sans:400,700'>
       <link rel="stylesheet" href="assets/css/reset.css">
       <link rel="stylesheet" href="assets/css/supersized.css">
       <link rel="stylesheet" href="assets/css/style.css">

       <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
       <!--[if lt IE 9]>
           <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
       <![endif]-->

   <!-- Copyright 2001, 2002, 2003 Macromedia, Inc. All rights reserved. -->
   </head>

   <body bgcolor="#FFFFFF" text="#000000">

       <!-- MENU-LOCATION=NONE -->
<div class="page-container">
 <h1>Registrate!</h1>
         <h3>Preparate a entrar al mundo de FreeSpace</h3>
           <form name="form" action="<?php echo $editFormAction?>" method="POST">
               <input type="text" name="Nombre" class="nombre" placeholder="Nombre">
               <input type="text" name="Apellidos" class="apellidos" placeholder="Apellidos">
               <input type="text" name="Usuario" class="username" placeholder="Usuario">
               <input type="text" name="E-mail" class="username" placeholder="E-mail">
               <input type="password" name="Contrasena" class="password" placeholder="Contraseña">
               &nbsp;&nbsp;&nbsp;
               &nbsp;&nbsp;&nbsp;
               &nbsp;&nbsp;&nbsp;
               <p><select name="tipo">
                 <option>Sexo</option>
                 <option>Hombre</option>
                 <option>Mujer</option>
               </select></p>
               &nbsp;&nbsp;&nbsp;
               &nbsp;&nbsp;&nbsp;
               <h2>Fecha de nacimiento</h2>
               &nbsp;&nbsp;&nbsp;
               <p><select name="dia">
                 <option>Dia</option>
                 <option>1</option>
           <option>2</option>
           <option>3</option>
           <option>4</option>
           <option>5</option>
           <option>6</option>
           <option>7</option>
           <option>8</option>
           <option>9</option>
           <option>10</option>
           <option>11</option>
           <option>12</option>
           <option>13</option>
           <option>14</option>
           <option>15</option>
           <option>16</option>
           <option>17</option>
           <option>18</option>
           <option>19</option>
           <option>20</option>
           <option>21</option>
           <option>22</option>
           <option>23</option>
           <option>24</option>
           <option>25</option>
           <option>26</option>
           <option>27</option>
           <option>28</option>
           <option>29</option>
           <option>30</option>
           <option>31</option>
               </select>
                <select name="mes">
                  <option>Mes</option>
                  <option>Enero</option>
           <option>Febrero</option>
           <option>Marzo</option>
           <option>Abril</option>
           <option>Mayo</option>
           <option>Junio</option>
           <option>Julio</option>
           <option>Agosto</option>
           <option>Septiembre</option>
           <option>Octubre</option>
           <option>Noviembre</option>
           <option>Diciembre</option>
                </select>
                <select name="ano">
                  <option>Año</option>
                  <option value="1960"> 1960</option>
         <option value="1961"> 1961</option>
         <option value="1962"> 1962</option>
         <option value="1963"> 1963</option>
         <option value="1964"> 1964</option>
         <option value="1965"> 1965</option>
         <option value="1966"> 1966</option>
         <option value="1967"> 1967</option>
         <option value="1968"> 1968</option>
         <option value="1969"> 1969</option>
         <option value="1970"> 1970</option>
         <option value="1971"> 1971</option>
         <option value="1972"> 1972</option>
         <option value="1973"> 1973</option>
         <option value="1974"> 1974</option>
         <option value="1975"> 1975</option>
         <option value="1976"> 1976</option>
         <option value="1977"> 1977</option>
         <option value="1978"> 1978</option>
         <option value="1979"> 1979</option>
         <option value="1980"> 1980</option>
         <option value="1981"> 1981</option>
         <option value="1982"> 1982</option>
         <option value="1983"> 1983</option>
         <option value="1984"> 1984</option>
         <option value="1985"> 1985</option>
         <option value="1986"> 1986</option>
         <option value="1987"> 1987</option>
         <option value="1988"> 1988</option>
         <option value="1989"> 1989</option>
         <option value="1990"> 1990</option>
         <option value="1991"> 1991</option>
         <option value="1992"> 1992</option>
         <option value="1993"> 1993</option>
         <option value="1994"> 1994</option>
         <option value="1995"> 1995</option>
         <option value="1996"> 1996</option>
         <option value="1997"> 1997</option>
         <option value="1998"> 1998</option>
         <option value="1999"> 1999</option>
         <option value="2000"> 2000</option>
         <option value="2001"> 2001</option>
         <option value="2002"> 2002</option>
         <option value="2003"> 2003</option>
         <option value="2004"> 2004</option>
         <option value="2005"> 2005</option>
         <option value="2006"> 2006</option>
         <option value="2007"> 2007</option>
         <option value="2008"> 2008</option>
         <option value="2009"> 2009</option>
         <option value="2010"> 2010</option>
         <option value="2011"> 2011</option>
         <option value="2012"> 2012</option>
         <option value="2013"> 2013</option>
         <option value="2014"> 2014</option>
         <option value="2015"> 2015</option>
                </select></p>
             <button type="submit">Terminado!</button>
               <div class="error"><span>+</span></div>
               <input type="hidden" name="MM_insert" value="form">
           </form>
           <div class="connect">                
           </div>
       </div>

       <!-- javascript -->
       <script src="assets/js/jquery-1.8.2.min.js"></script>
       <script src="assets/js/supersized.3.2.7.min.js"></script>
       <script src="assets/js/supersized-init.js"></script>
       <script src="assets/js/scripts.js"></script>

   </body>

</html>


Mod: Obligatorio el uso de etiquetas GeSHi. Temas sobre PHP van al subforo de PHP. No escribir los títulos en mayúsculas (se considera gritar).
Título: Re: Impedir que se duplique informacion en mi base de datos sql
Publicado por: gAb1 en 6 Diciembre 2015, 22:01 PM
Es muy sencillo, primero tienes que comprobar si el nombre existe y devolver un mensaje de error. Para ello tienes que hacer un select a la tabla y buscar el nombre que ha introducido el usuario, si existe mandas un mensaje si no existe continua con el registro.
Siento no poner ningún ejemplo, estoy en el movil.