Foro de elhacker.net

Programación => 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
  1. <?php require_once('Connections/freespace.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString")) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
  5. {
  6.  if (PHP_VERSION < 6) {
  7.    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  8.  }
  9.  
  10.  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  11.  
  12.  switch ($theType) {
  13.    case "text":
  14.      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  15.      break;    
  16.    case "long":
  17.    case "int":
  18.      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  19.      break;
  20.    case "double":
  21.      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
  22.      break;
  23.    case "date":
  24.      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  25.      break;
  26.    case "defined":
  27.      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  28.      break;
  29.  }
  30.  return $theValue;
  31. }
  32. }
  33.  
  34. $editFormAction = $_SERVER['PHP_SELF'];
  35. if (isset($_SERVER['QUERY_STRING'])) {
  36.  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  37. }
  38.  
  39. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
  40.  $insertSQL = sprintf("INSERT INTO usuarios (usuario, nombres, apellidos, contrasena, tipo, dia, mes, ano) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
  41.                       GetSQLValueString($_POST['Usuario'], "text"),
  42.                       GetSQLValueString($_POST['Nombre'], "text"),
  43.                       GetSQLValueString($_POST['Apellidos'], "text"),
  44.                       GetSQLValueString($_POST['Contrasena'], "text"),
  45.                       GetSQLValueString($_POST['tipo'], "text"),
  46.                       GetSQLValueString($_POST['dia'], "text"),
  47.                       GetSQLValueString($_POST['mes'], "text"),
  48.                       GetSQLValueString($_POST['ano'], "text"));
  49.  
  50.  mysql_select_db($database_freespace, $freespace);
  51.  $Result1 = mysql_query($insertSQL, $freespace) or die(mysql_error());
  52.  
  53.  $insertGoTo = "index.php";
  54.  if (isset($_SERVER['QUERY_STRING'])) {
  55.    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
  56.    $insertGoTo .= $_SERVER['QUERY_STRING'];
  57.  }
  58.  header(sprintf("Location: %s", $insertGoTo));
  59. }
  60. ?>
Código
  1. <!DOCTYPE html>
  2. <html lang="en" class="no-js">
  3.  
  4.    <head>
  5.  
  6.        <meta charset="utf-8">
  7.        <title>Registrate Es Gratis!!</title>
  8.        <meta name="viewport" content="width=device-width, initial-scale=1.0">
  9.        <meta name="description" content="">
  10.        <meta name="author" content="">
  11.  
  12.        <!-- CSS -->
  13.        <link rel='stylesheet' href='http://fonts.googleapis.com/css?family=PT+Sans:400,700'>
  14.        <link rel="stylesheet" href="assets/css/reset.css">
  15.        <link rel="stylesheet" href="assets/css/supersized.css">
  16.        <link rel="stylesheet" href="assets/css/style.css">
  17.  
  18.        <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
  19.        <!--[if lt IE 9]>
  20.            <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  21.        <![endif]-->
  22.  
  23.    <!-- Copyright 2001, 2002, 2003 Macromedia, Inc. All rights reserved. -->
  24.    </head>
  25.  
  26.    <body bgcolor="#FFFFFF" text="#000000">
  27.  
  28.        <!-- MENU-LOCATION=NONE -->
  29. <div class="page-container">
  30.  <h1>Registrate!</h1>
  31.          <h3>Preparate a entrar al mundo de FreeSpace</h3>
  32.            <form name="form" action="<?php echo $editFormAction; ?>" method="POST">
  33.                <input type="text" name="Nombre" class="nombre" placeholder="Nombre">
  34.                <input type="text" name="Apellidos" class="apellidos" placeholder="Apellidos">
  35.                <input type="text" name="Usuario" class="username" placeholder="Usuario">
  36.                <input type="text" name="E-mail" class="username" placeholder="E-mail">
  37.                <input type="password" name="Contrasena" class="password" placeholder="Contraseña">
  38.                &nbsp;&nbsp;&nbsp;
  39.                &nbsp;&nbsp;&nbsp;
  40.                &nbsp;&nbsp;&nbsp;
  41.                <p><select name="tipo">
  42.                  <option>Sexo</option>
  43.                  <option>Hombre</option>
  44.                  <option>Mujer</option>
  45.                </select></p>
  46.                &nbsp;&nbsp;&nbsp;
  47.                &nbsp;&nbsp;&nbsp;
  48.                <h2>Fecha de nacimiento</h2>
  49.                &nbsp;&nbsp;&nbsp;
  50.                <p><select name="dia">
  51.                  <option>Dia</option>
  52.                  <option>1</option>
  53.            <option>2</option>
  54.            <option>3</option>
  55.            <option>4</option>
  56.            <option>5</option>
  57.            <option>6</option>
  58.            <option>7</option>
  59.            <option>8</option>
  60.            <option>9</option>
  61.            <option>10</option>
  62.            <option>11</option>
  63.            <option>12</option>
  64.            <option>13</option>
  65.            <option>14</option>
  66.            <option>15</option>
  67.            <option>16</option>
  68.            <option>17</option>
  69.            <option>18</option>
  70.            <option>19</option>
  71.            <option>20</option>
  72.            <option>21</option>
  73.            <option>22</option>
  74.            <option>23</option>
  75.            <option>24</option>
  76.            <option>25</option>
  77.            <option>26</option>
  78.            <option>27</option>
  79.            <option>28</option>
  80.            <option>29</option>
  81.            <option>30</option>
  82.            <option>31</option>
  83.                </select>
  84.                 <select name="mes">
  85.                   <option>Mes</option>
  86.                   <option>Enero</option>
  87.            <option>Febrero</option>
  88.            <option>Marzo</option>
  89.            <option>Abril</option>
  90.            <option>Mayo</option>
  91.            <option>Junio</option>
  92.            <option>Julio</option>
  93.            <option>Agosto</option>
  94.            <option>Septiembre</option>
  95.            <option>Octubre</option>
  96.            <option>Noviembre</option>
  97.            <option>Diciembre</option>
  98.                 </select>
  99.                 <select name="ano">
  100.                   <option>Año</option>
  101.                   <option value="1960"> 1960</option>
  102.          <option value="1961"> 1961</option>
  103.          <option value="1962"> 1962</option>
  104.          <option value="1963"> 1963</option>
  105.          <option value="1964"> 1964</option>
  106.          <option value="1965"> 1965</option>
  107.          <option value="1966"> 1966</option>
  108.          <option value="1967"> 1967</option>
  109.          <option value="1968"> 1968</option>
  110.          <option value="1969"> 1969</option>
  111.          <option value="1970"> 1970</option>
  112.          <option value="1971"> 1971</option>
  113.          <option value="1972"> 1972</option>
  114.          <option value="1973"> 1973</option>
  115.          <option value="1974"> 1974</option>
  116.          <option value="1975"> 1975</option>
  117.          <option value="1976"> 1976</option>
  118.          <option value="1977"> 1977</option>
  119.          <option value="1978"> 1978</option>
  120.          <option value="1979"> 1979</option>
  121.          <option value="1980"> 1980</option>
  122.          <option value="1981"> 1981</option>
  123.          <option value="1982"> 1982</option>
  124.          <option value="1983"> 1983</option>
  125.          <option value="1984"> 1984</option>
  126.          <option value="1985"> 1985</option>
  127.          <option value="1986"> 1986</option>
  128.          <option value="1987"> 1987</option>
  129.          <option value="1988"> 1988</option>
  130.          <option value="1989"> 1989</option>
  131.          <option value="1990"> 1990</option>
  132.          <option value="1991"> 1991</option>
  133.          <option value="1992"> 1992</option>
  134.          <option value="1993"> 1993</option>
  135.          <option value="1994"> 1994</option>
  136.          <option value="1995"> 1995</option>
  137.          <option value="1996"> 1996</option>
  138.          <option value="1997"> 1997</option>
  139.          <option value="1998"> 1998</option>
  140.          <option value="1999"> 1999</option>
  141.          <option value="2000"> 2000</option>
  142.          <option value="2001"> 2001</option>
  143.          <option value="2002"> 2002</option>
  144.          <option value="2003"> 2003</option>
  145.          <option value="2004"> 2004</option>
  146.          <option value="2005"> 2005</option>
  147.          <option value="2006"> 2006</option>
  148.          <option value="2007"> 2007</option>
  149.          <option value="2008"> 2008</option>
  150.          <option value="2009"> 2009</option>
  151.          <option value="2010"> 2010</option>
  152.          <option value="2011"> 2011</option>
  153.          <option value="2012"> 2012</option>
  154.          <option value="2013"> 2013</option>
  155.          <option value="2014"> 2014</option>
  156.          <option value="2015"> 2015</option>
  157.                 </select></p>
  158.              <button type="submit">Terminado!</button>
  159.                <div class="error"><span>+</span></div>
  160.                <input type="hidden" name="MM_insert" value="form">
  161.            </form>
  162.            <div class="connect">                
  163.            </div>
  164.        </div>
  165.  
  166.        <!-- javascript -->
  167.        <script src="assets/js/jquery-1.8.2.min.js"></script>
  168.        <script src="assets/js/supersized.3.2.7.min.js"></script>
  169.        <script src="assets/js/supersized-init.js"></script>
  170.        <script src="assets/js/scripts.js"></script>
  171.  
  172.    </body>
  173.  
  174. </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.