(http://www.aniei.org.mx/imagenes/concurso.jpg)
UnderC0de - Sección de PHP - Moderador: Alexander1712
Gestión 27/10/12
Presentan los resultados de este concurso
(http://i49.tinypic.com/2dkg8jm.png)(http://i42.tinypic.com/351z7ub.png)(http://i46.tinypic.com/2aaeu8g.png)(http://i46.tinypic.com/2edto3q.png)
y el ganador es...
Roodakacon su código optimizado:
<?php
// Verificamos que la clave que necesitamos del arreglo $_POST este y seguimos.
if(isset($_POST['nombre']))
{
// Conectamos a la base de datos o salimos.
$conn = mysqli_connect('localhost', 'root', '', 'rdk') or exit('No se ha podido conectar a la base de datos.');
// Validamos la variable quitandole un posible XSS y agregamos las comillas
// que necesitaremos para las consultas.
$target = '\''.mysqli_real_escape_string($conn, htmlspecialchars($_POST['nombre'])).'\'';
// Chequeamos si nuestro nombre esta en la base de datos.
$query = mysqli_query($conn, 'SELECT id FROM usuarios WHERE nombre = '.$target.' LIMIT 1');
// Por medio de la cantidad de filas sabremos si hubo resultados o no
if($query->num_rows >= 1)
{
echo 'Tu nombre ya está en nuestra base de datos.';
}
else
{
$insert = mysqli_query($conn, 'INSERT INTO usuarios ( nombre ) VALUES ('.$target.')');
// Chequeamos que haya sido exitosa basandonos en el numero de consultas afectadas
if($insert->affected_rows($conn) >= 1)
{
echo 'Ahora tu nombre ha sido ingresado en nuestra base de datos';
}
else
{
echo 'Ha habido un error mientras se registraba su nombre, por favor intente más tarde.';
}
}
// Cerramos la conexion
mysqli_close($conn);
}
else
{
// mostramos un formulario improvisado para testear este scripcito
echo '<form method="post" action=""><label for="nombre">Nombre:</label><input name="nombre" type="text" /><input value="Enviar" name="enviar" type="submit" /></form>';
}
Cambios destacados:* Comentarios agregados
* utilización correcta de " y '
* mysql por mysqli
* agregados filtros de seguridad
* identación correcta
* mensajes de errores agregados
Comentarios de mejoras del moderador:Ninguno
Felicidades, y gracias a todos por participar...
quien quiera puede pedir que se publique su código en éste post.
Saludos! Atte. Alexander1712 - Moderador
Felicidades al ganador y gracias a los demás por participar.