Ver Mensaje Individual
  #94 (permalink)  
Antiguo 18/05/2010, 05:41
Avatar de Flow89
Flow89
 
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Seguridad en PHP [Importante];

Bueno, aporto una expresion regular (Dentro de la multitud de ellas que habrá) para validar "por encima" el email.

Código PHP:
function comprobar_mail($mail){
  if (!
ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail)){
      return 
FALSE;
  } else {
       return 
TRUE;
  }


Ahora esta el tema de aplicarle a la pagina.

Código PHP:
<?php  
//incluimos el archivo de conexion y el modulo de seguridad
  
include("conex.php");
  include(
"segu.php");

//recogemos las variables del formulario eliminando caracteres (Prevenir ataque SQL Inyection).
$nick mysql_real_escape_string($_POST[nick]);
$password mysql_real_escape_string($_POST[password]);
$nombre mysql_real_escape_string($_POST[nombre]);
$email $_POST[email];

//comprobamos que no hayan dejado los campos vacios
if(trim($nick) != "" && trim($password) != "" && trim($nombre) != "" && trim($email) != ""){

//buscamos el id del usuario con el nick que ha introducido
  
$sql "SELECT id FROM usuarios WHERE nick='$nick'";
  
$result mysql_query($sql);

//si sale algun resultado le mostramos el error de que ese nick ya existe
  
if($row mysql_fetch_array($result)){
  echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=fusuarios.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">Error, ese nick ya ha sido registrado. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  else
  {
//si no lo registra introduciendolo a la BBDD.
$sql "INSERT INTO usuarios (nick,password,nombre,email) VALUES('$nick', '$nombre ', '$password', '$email')";   
mysql_query($sql);

// y nos redirecciona a la pagina de administracion.
  
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=../loginpanel/administracion.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">El registro del usuario se ha efectuado correctamente. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  
mysql_free_result($result);

  function 
comprobar_mail($email){
  if (!
ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$email)){
      echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=../loginpanel/administracion.php\">";
  } else {
      echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">Ese email no es valido. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }


  }
  else
  {
//si en la comprobacion de que no esten vacios los campos, ve que alguno esta vacio muestra este error
  
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=fusuarios.php\">";
echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">Debes rellenar todos los campos. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
   }
  
mysql_close();
  
?>
Pero esta mal implementado.. porque no hace nada.. xD

Echadme una mano!

Gracias, y Un saludo.
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.