Ver Mensaje Individual
  #6 (permalink)  
Antiguo 12/11/2011, 12:21
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: seguridad en formulario

<?php
include("conexion.php");
?>

<?php


// verificamos si se han enviado ya las variables necesarias.

$usuario = htmlentities(strip_tags(addslashes($_POST['usuario'])), ENT_QUOTES);
$contraseña= md5($_POST['contrasenna']);
$repcontrasenna= md5($_POST['repcontrasenna']);
$email= $_POST['email']; aqui debes verificar que es un email
$nombre= htmlentities(strip_tags(addslashes($_POST['nombre'])), ENT_QUOTES);
$nombreamo= htmlentities(strip_tags(addslashes($_POST['nombreamo'])), ENT_QUOTES);
$raza= htmlentities(strip_tags(addslashes($_POST['raza'])), ENT_QUOTES);
$telefono= (int)$_POST['telefono'];
$edad= (int)$_POST['edad'];
$sexo= htmlentities(strip_tags(addslashes($_POST['sexo'])), ENT_QUOTES);
$provincia= htmlentities(strip_tags(addslashes($_POST['provincia'])), ENT_QUOTES);
$capa= htmlentities(strip_tags(addslashes($_POST['capa'])), ENT_QUOTES);



// Hay campos en blanco

cambiando los input por los de este tipo nunca podran dejar campos en blanco
<input name="usuario" type="text" value="Usuario" size="20" maxlength="40" onfocus="this.value=(this.value=='Usuario') ? '' : this.value;" onblur="this.value=(this.value=='') ? 'Usuario' : this.value;"/>


if($usuario=="" || $contrasenna=="" || $repcontrasenna=="" || $email=="" || $nombre=="" || $nombreamo=="" || $raza=="" || $telefono=="" || $edad=="" || $sexo=="" || $provincia=="") {
echo "un campo está vacio.";

}else{

// ¿Coinciden las contraseñas?

if($contrasenna!=$repcontrasenna) {

echo "Las contraseñas no coinciden";

}else{

$sql_chk = mysql_query("SELECT usuario, email FROM usuarios ,$link) or die(mysql_error());
$row = mysql_fetch_array($sql_chk);


if($usuario == htmlentities(strip_tags(addslashes($row['usuario'])), ENT_QUOTES)){
echo "El nombre de usuario o la cuenta de correo estan ya en uso";

} elseif($contrasenna== htmlentities(strip_tags(addslashes($row['contrasenna'])), ENT_QUOTES));{{

echo "El nombre de usuario o la cuenta de correo estan ya en uso";

}else{

mysql_query("INSERT INTO usuarios (usuario, contrasenna, ciudad, email, nombreamo, telefono, provincia) VALUES ('$usuario','$contrasenna','$ciudad','$email','$no mbreamo','$telefono','$provincia')",$link);

mysql_query("INSERT INTO animal (usuario, nombre, raza, edad, sexo,capa, pedigri) VALUES ('$usuario','$nombre','$raza','$edad','$sexo','$ca pa','$pedigri')",$link);

mysql_query("INSERT INTO fotos (nombre,foto) VALUES ('$nombre','$foto')",$link);


echo 'El usuario '.$usuario.' ha sido registrado de manera satisfactoria.<br />';
echo 'Ahora puede entrar ingresando su usuario y su password<br />';

}}
?>

//Un formulario de login, que aparecera despues de el registro fue exitoso

<FORM ACTION="comprobar.php" METHOD="post">
Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20><br />
Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=10><br />
<INPUT TYPE="submit" VALUE="Ingresar">
</FORM>
<?php

}
}
}
al hacer el login debes comprobar la contrasenna por md5

$contrasenna=md5($_POST['contrasenna']);
if($contrasenna == 'la contraseña de la base de datos'){

son iguales

}else{

no lo son

}

para compararla con la de la base de datos de lo contrario dara error en comprobar.php action del formulario

?>

Última edición por webankenovi; 12/11/2011 a las 14:59