Foros del Web » Programando para Internet » PHP »

duda con este codigo

Estas en el tema de duda con este codigo en el foro de PHP en Foros del Web. lo que hace este codigo recoge los datos desde tres campos password password2 y un campo de texto de validacion de imagen.. hasta ahi esta ...
  #1 (permalink)  
Antiguo 05/12/2008, 08:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
duda con este codigo

lo que hace este codigo recoge los datos desde tres campos password password2 y un campo de texto de validacion de imagen.. hasta ahi esta todo bien el problema esta en el envio del mail.. cuando intento enviar el mail al usuario de la base de datos no me lo envia.. y cuando pongo mi direccion si.. y con mi direccion envia el mail pero los datos como son usuario y mail no los pone en el cuerpo del mensaje... si alguien me brinda su ayuda agradecido
Código php:
Ver original
  1. <?php
  2. session_start(); //abrimos la sesion para poder despues pasar variables de una pagina a otra
  3.  
  4. //datos para establecer la conexion con la base de mysql.
  5. $conexion=mysql_connect('localhost','igaco_root','cibernet77')or die ('Ha fallado la conexión: '.mysql_error());
  6. mysql_select_db('igaco_sitioweb')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  7.  
  8.  
  9.  
  10. function quitar($mensaje) //funcion para quitar caracteres no permitidos
  11. {
  12.     $nopermitidos = array("'",'\\','<','>',"\"",";","$","%","&","/","|","{","}","[","]","+","#");
  13.     $mensaje = str_replace($nopermitidos, "", $mensaje);
  14.     return $mensaje;
  15. }
  16. function mysql_escape($cadena) {
  17.     if(get_magic_quotes_gpc() != 0) {
  18.         $cadena = stripslashes($cadena);
  19.     }
  20.     return mysql_real_escape_string($cadena);
  21. }  
  22.  
  23. if (isset($_POST["password"])) {
  24.      
  25.     $password = quitar($_POST["password"]); //variable que viene del campo del form pasword
  26.     $password2 = quitar($_POST["password2"]);//variable que viene del campo del form pasword2
  27.                 $password = mysql_escape($password);  //aplico la funcion mysql_escape
  28.                 $password2 = mysql_escape($password2);
  29.  
  30.     $password = md5($password); // codificamos los password con md5
  31.     $password2 = md5($password2);
  32.     $email = $_SESSION['email']; // recogemos la variable email y username que guardamos en la sesion en el script anterior
  33.                 $username = $_SESSION['username'];  
  34.  
  35.  
  36.      
  37.      
  38.     // Hay campos en blanco
  39.     if($password==NULL|$password2==NULL) {
  40.         echo "un campo está vacio.";
  41.      
  42.         }else{
  43.                               // si coiciden los codigos de seguridad
  44.             if (quitar($_SESSION['tmptxt_seg']) !== quitar($_POST['tmptxt_seg'])) {  
  45.                     echo "Introdujo mal el codigo de seguridad.";
  46.                  
  47.         } else {  
  48.          
  49.      
  50.         // ¿Coinciden las contraseñas?
  51.         if($password!=$password2) {
  52.             echo "Las contraseñas no coinciden";
  53.             formRegistro();
  54.         }else{
  55.          
  56.          
  57.         $query = "UPDATE alumnos
  58.            SET password = '$password' WHERE   username = '$username' OR email ='$email' " ;
  59.                 mysql_query($query) or die(mysql_error());    
  60.                  
  61.             //obtengo los datos del usuario para mandar el email    
  62.             $result = "SELECT * FROM alumnos WHERE password = '$password'";
  63.                      
  64.              $result = mysql_query($result) or die ( mysql_error() );        
  65.          
  66.             $row = mysql_fetch_array($result);  
  67.                  
  68.         echo "La activacion de su nuevo password  tuvo exito.";
  69.          
  70.              
  71.  
  72.      
  73.          
  74.  
  75.                  
  76.                           // Datos del email
  77.  
  78. $nombre_origen    = "Lo que sea";
  79. $email_origen     = "[email protected]";
  80. $email_copia      = "[email protected]";
  81. $email_ocultos    = "[email protected]";
  82. $email_destino    = "".$row['email']."";  
  83. //$email_destino    = "[email protected]";  //cambiar esta linea por la de encima cuando se termine la aplicacion para pruebas pon tu email
  84.  
  85.  
  86. $asunto           = "Activacion del Usuario Tuvo exito, guarde este email.";
  87.  
  88. $mensaje          = '<table width="629" border="0" cellspacing="1" cellpadding="2">
  89.  <tr>
  90.    <td width="623" align="left"></td>
  91.  </tr>
  92.  <tr>
  93.    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos  '.$row['username'].'</strong></div></td>
  94.  </tr>
  95.  <tr>
  96.    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '.$row['username'].'</strong><br><br><br>
  97.          
  98.          <strong>SU EMAIL : </strong>'.$row['email'].'</strong><br><br><br>
  99.          <strong>REACTIVO SU NUEVA CONTRASEÑA SIN NINGUN INCIDENTE.</strong><br><br>
  100.          <strong>GRACIAS POR CONFIAR EN CEVIT.</strong><br>
  101.          <strong>PRONTO ACTUALIZAREMOS CONTENIDOS, ESTATE ATENTA/O.</strong><br>
  102.    </div>
  103.    </td>
  104.  </tr>
  105. </table>';
  106.  
  107.                  
  108.  
  109.  
  110. $formato          = "html";
  111.  
  112. //*****************************************************************//
  113. $headers  = "From: $nombre_origen <$email_origen> \r\n";
  114. $headers .= "Return-Path: <$email_origen> \r\n";
  115. $headers .= "Reply-To: $email_origen \r\n";
  116. $headers .= "X-Sender: $email_origen \r\n";
  117. $headers .= "X-Priority: 3 \r\n";
  118. $headers .= "MIME-Version: 1.0 \r\n";
  119. $headers .= "Content-Transfer-Encoding: 7bit \r\n";
  120.  
  121. //*****************************************************************//
  122.  
  123.  
  124. if (@mail($email_destino, $asunto, $mensaje,"MIME-Version: 1.0
  125. Content-type: text/html; charset=iso-8859-1"))
  126.  { }
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133. }
  134. }
  135. }
  136. }
  137. else{
  138. formRegistro();
  139. }    
  140.  
  141.  
  142.  
  143. ?>

Última edición por GatorV; 05/12/2008 a las 10:02
  #2 (permalink)  
Antiguo 05/12/2008, 10:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con este codigo

Prueba hacer un var_dump($row) para que veas si la consulta te esta regresando datos.

Saludos.
  #3 (permalink)  
Antiguo 05/12/2008, 13:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: duda con este codigo

.bool(false)

ES LO QUE ME DA EL $ROW
  #4 (permalink)  
Antiguo 05/12/2008, 13:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con este codigo

En ese caso no encuentra resultados, verifica que exista un record, y de ser necesario imprime tu consulta y pegala en tu gestor de base de datos para verificar que te da datos.

Saludos.
  #5 (permalink)  
Antiguo 05/12/2008, 13:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: duda con este codigo

gracias pero no se estoy perdido no me da datos pero para mi esta bien
  #6 (permalink)  
Antiguo 05/12/2008, 13:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con este codigo

Como te comento si copias y pegas la consulta en tu gestor de BDD te debe de dar datos, si no te los da tu problema es la consulta.

Saludos.
  #7 (permalink)  
Antiguo 05/12/2008, 13:34
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: duda con este codigo

no me devuelve nada como hago?
  #8 (permalink)  
Antiguo 05/12/2008, 13:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con este codigo

Entonces como te comente tu consulta SQL esta mal, verifica que tengas un usuario con ese password.

Saludos.
  #9 (permalink)  
Antiguo 05/12/2008, 14:01
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: duda con este codigo

$result = "SELECT * FROM alumnos WHERE password = '$password'";

lo cambien por

$result = "SELECT * FROM alumnos WHERE username = '$username' OR email ='$email' " ;
y sigue sin funcionar
  #10 (permalink)  
Antiguo 05/12/2008, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con este codigo

Pues sin yo saber tus datos ni nada, es dificil que te pueda decir porque falla, lo que si te puedo decir es que debes de buscar la consulta correcta que te de los datos correctos.

Por eso mi recomendación de que ejecutes la consulta en tu gestor de bases de datos para que veas el output directo y luego lo implementes en PHP.

Saludos.
  #11 (permalink)  
Antiguo 05/12/2008, 14:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: duda con este codigo

tengo una tabla llamada alumnos con los campos username password email y lña consulta no me devuelve nada desde el gestor que tengo una variable que tomo con el metodo post de un formulario anterior por eso no puede provar
  #12 (permalink)  
Antiguo 05/12/2008, 14:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con este codigo

Pues haz un echo a las variables para que veas si se imprimen correctamente, pero te adelanto que si en tu gestor de BDD no te devuelve datos entonces tu problema no esta en PHP si no en tu SQL.

Saludos.
  #13 (permalink)  
Antiguo 07/12/2008, 19:17
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: duda con este codigo

aun no me puedo hacer andar este codigo.. debe ser algo chico que esta haciendo que me de vueltas en la cabeza pero no se..
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 10:18.