Foros del Web » Programando para Internet » PHP »

if anidados

Estas en el tema de if anidados en el foro de PHP en Foros del Web. hola amigos tengo este codigo y me funciona bien Código PHP: <?php include  "conexion.php" ; $caracteres  =  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" ;  //posibles caracteres a usar $numerodeletras = 10 ;  //numero de letras para generar el texto ...
  #1 (permalink)  
Antiguo 07/04/2014, 09:04
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 2 meses
Puntos: 0
if anidados

hola amigos tengo este codigo y me funciona bien

Código PHP:
<?php
include "conexion.php";

$caracteres "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"//posibles caracteres a usar
$numerodeletras=10//numero de letras para generar el texto
$cadena ""//variable para almacenar la cadena generada
for($i=0;$i<$numerodeletras;$i++)
{
    
$cadena .= substr($caracteres,rand(0,strlen($caracteres)),1); /*Extraemos 1 caracter de los caracteres 
entre el rango 0 a Numero de letras que tiene la cadena */
}

if (isset(
$_POST["usuario"])) {    
        
$usuario mysql_real_escape_string($_POST['usuario']);
        
$nombre mysql_real_escape_string($_POST['nombre']); 
        
$cumple mysql_real_escape_string($_POST['fechanac']); 
        
        
$sql "SELECT id, usuario, nombre FROM bt_acandidatos WHERE usuario='".$usuario."' and nombre='".$nombre."'"
        
$result mysql_query($sql) or die("Imposible verificar al usuario por el error: " mysql_error());
        
mysql_query("SET NAMES 'utf8'");
        
$dato mysql_fetch_array($result);
        if(
mysql_num_rows($result) == 1){
        

        
$_SESSION["id"]= $dato['id'];
        
$usuario $_SESSION['id'];
        
        
$sql2 "SELECT cve_btac, FechaNac, email FROM bt_datos_generales WHERE cve_btac='".$usuario."' and FechaNac='".$cumple."'"
        
$result2 mysql_query($sql2) or die("Imposible verificar al usuario por el error: " mysql_error());
        
mysql_query("SET NAMES 'utf8'");
        
$dato2 mysql_fetch_array($result2);
        if(
mysql_num_rows($result2) == 1){
        
session_start();
        
//session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0); 
           //cambiamos la duración a la cookie de la sesión 
        // inicio la sesión 
        
$_SESSION["autentificado"]= "SI"
        
$_SESSION["cve_btac"]= $dato2['cve_btac'];
        
$_SESSION["email"]= $dato2['email'];
        
$email $_SESSION['email'];
        
        
mysql_query("UPDATE bt_acandidatos SET cambio='1' WHERE id='$usuario'");  
        
$para="$email";
        
        
$titulo 'Reestablecimiento de Password';    
        
$mensaje.= "Hola: " $_REQUEST['nombre'] ." con usuario " $_REQUEST['usuario'] ." \n"
        
$mensaje.= "Para recuperar su contraseña por favor visita el siguiente enlace \n";
        
$mensaje.= " http://www.midominio.com.mx/recupera/pass.php?usuario=".$usuario."".$cadena."\n";                 
        
$mensaje.= "Restablecimiento de password \n";
        
$cabeceras 'From: [email protected]"\r\n" //La direccion de correo desde donde supuestamente se envió
        
'Reply-To: [email protected]"\r\n" //La direccion de correo a donde se responderá (cuando el recepto haga click en RESPONDER)
        
        
'X-Mailer: PHP/' phpversion();  //información sobre el sistema de envio de correos, en este caso la version de PHP
        
mail($para$titulo$mensaje$cabeceras); 
        echo 
'<div class="exito mensajes">Se le ha enviado un email con las instrucciones para reestablecer su contraseña</div>';
        
        
mysql_close();
        } else { 
        
//si no existe le mando otra vez a la portada 
        
echo '<div class="alerta">Verifica que tus datos sean correctos</div>';

        }

        } else { 
        
//si no existe le mando otra vez a la portada     
        
echo '<div class="error">El usuario no coincide</div>';
        
        }
        }
?>
mi problema es que si el campo email, esta vacio, lo sigue enviando y necesito meter una condicon para qu haga esa parte solo que mis intentos han sido fallidos
si alguien me puede ayudar se los agradeceré mucho
  #2 (permalink)  
Antiguo 07/04/2014, 10:23
 
Fecha de Ingreso: noviembre-2011
Ubicación: Zulia/Maracaibo
Mensajes: 24
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: if anidados

Código PHP:
Ver original
  1. <?php
  2. include "conexion.php";
  3.  
  4. $caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; //posibles caracteres a usar
  5. $numerodeletras=10; //numero de letras para generar el texto
  6. $cadena = ""; //variable para almacenar la cadena generada
  7. for($i=0;$i<$numerodeletras;$i++)
  8. {
  9.     $cadena .= substr($caracteres,rand(0,strlen($caracteres)),1); /*Extraemos 1 caracter de los caracteres
  10. entre el rango 0 a Numero de letras que tiene la cadena */
  11. }
  12.  
  13. if (isset($_POST["usuario"])) {    
  14.     $usuario = mysql_real_escape_string($_POST['usuario']);
  15.     $nombre = mysql_real_escape_string($_POST['nombre']);
  16.     $cumple = mysql_real_escape_string($_POST['fechanac']);
  17.    
  18.     $sql = "SELECT id, usuario, nombre FROM bt_acandidatos WHERE usuario='".$usuario."' and nombre='".$nombre."'";
  19.     $result = mysql_query($sql) or die("Imposible verificar al usuario por el error: " . mysql_error());
  20.     mysql_query("SET NAMES 'utf8'");
  21.     $dato = mysql_fetch_array($result);
  22.     if(mysql_num_rows($result) == 1){
  23.        
  24.  
  25.         $_SESSION["id"]= $dato['id'];
  26.         $usuario = $_SESSION['id'];
  27.        
  28.         $sql2 = "SELECT cve_btac, FechaNac, email FROM bt_datos_generales WHERE cve_btac='".$usuario."' and FechaNac='".$cumple."'";
  29.         $result2 = mysql_query($sql2) or die("Imposible verificar al usuario por el error: " . mysql_error());
  30.         mysql_query("SET NAMES 'utf8'");
  31.         $dato2 = mysql_fetch_array($result2);
  32.        
  33.         if(mysql_num_rows($result2) == 1){
  34.             session_start();
  35.             //session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0);
  36.                //cambiamos la duración a la cookie de la sesión
  37.             // inicio la sesión
  38.             $_SESSION["autentificado"]= "SI";
  39.             $_SESSION["cve_btac"]= $dato2['cve_btac'];
  40.             $_SESSION["email"]= $dato2['email'];
  41.             $email = $_SESSION['email'];
  42.             /*AQUI VERIFICA SI ESTA VACIO, NO SE DESDE DONDE LO QUIERES VALIDAR, LO COLOQUE AQUI A MANERA DE EJEMPLO
  43.               SUPONGO QUE NO QUIERES MODIFICAR "bt_acandidatos" SI ESTÁ VACIA LA VARIABLE $mail
  44.               OTRA COSA: POR QUE CREAR SESSION PARA ESTE SCRIPT? SI SOLO ESTAS REESTABLECIENDO LA CONTRASEÑA DE USUARIO??
  45.              */
  46.             if($email !== NULL || $email !== ''){
  47.                 mysql_query("UPDATE bt_acandidatos SET cambio='1' WHERE id='$usuario'");  
  48.                 $para="$email";
  49.                
  50.                 $titulo = 'Reestablecimiento de Password';    
  51.                 $mensaje.= "Hola: " . $_REQUEST['nombre'] ." con usuario " . $_REQUEST['usuario'] ." \n";
  52.                 $mensaje.= "Para recuperar su contraseña por favor visita el siguiente enlace \n";
  53.                 $mensaje.= " http://www.midominio.com.mx/recupera/pass.php?usuario=".$usuario."".$cadena."\n";                
  54.                 $mensaje.= "Restablecimiento de password \n";
  55.                 $cabeceras = 'From: [email protected]' . "\r\n" . //La direccion de correo desde donde supuestamente se envió
  56.                 'Reply-To: [email protected]' . "\r\n" . //La direccion de correo a donde se responderá (cuando el recepto haga click en RESPONDER)
  57.                
  58.                 'X-Mailer: PHP/' . phpversion();  //información sobre el sistema de envio de correos, en este caso la version de PHP
  59.                 mail($para, $titulo, $mensaje, $cabeceras);
  60.                 echo '<div class="exito mensajes">Se le ha enviado un email con las instrucciones para reestablecer su contraseña</div>';
  61.             }// FIN DE LA COMPROBACIÓN DE LA VARIABLE "$mail"
  62.            
  63.             mysql_close();
  64.         } else {
  65.             //si no existe le mando otra vez a la portada
  66.             echo '<div class="alerta">Verifica que tus datos sean correctos</div>';
  67.         }
  68.  
  69.     } else {
  70.         //si no existe le mando otra vez a la portada    
  71.         echo '<div class="error">El usuario no coincide</div>';
  72.     }
  73. }
  74. ?>

Te recomiendo que uses identación de tu c&odigo para que sea más legible..
Saludos y espero te sirva.
  #3 (permalink)  
Antiguo 07/04/2014, 12:39
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 4 meses
Puntos: 21
Respuesta: if anidados

te recomiendo filter_var($email_a, FILTER_VALIDATE_EMAIL).. podes ver lo en http://www.php.net/manual/en/filter....validation.php

Etiquetas: anidados, fecha, mysql, select, sql, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:46.