Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2015, 06:50
eslomao
 
Fecha de Ingreso: noviembre-2014
Mensajes: 60
Antigüedad: 9 años, 5 meses
Puntos: 0
undefine index

hola chicos, de vuelta a la rutina, logre solucionar el acceder a localhost desde gmail, pero ahora me dice undefine index, esta claro , no escuentra los datos, pero no si si es al venir desde gmail, en cuestion se trata de una recuperacion de contraseña, con varios archivos php, dejo los codigos a ver si hay suerte

index.php aqui recoge el email de acceso para recuperar contraseña
Código PHP:
Ver original
  1. <?php require_once('../Connections/conexion.php'); ?>
  2. <div class="sidebar1"></div>    
  3.       <div class="content">
  4.         <form id="frmRestablecer" action="validaremail.php" method="post">
  5.          
  6.             <div class="panel-heading"> Restaurar contraseña </div>
  7.             <div class="panel-body">
  8.               <p></p>
  9.               <div class="form-group">
  10.                 <label for="email"> Escribe el email asociado a tu cuenta para recuperar tu contraseña </label>
  11.           <input type="email" id="email" class="alta1" name="email" required>
  12.          
  13.                  
  14.      <input type="hidden" id="asunto"  name="asunto" value="Recuperar password">        
  15.               </div>
  16.               <div class="form-group">
  17.                 <input type="submit" class="boton" value="Recuperar datos" >
  18.               </div>
  19.          
  20.          
  21.         </form>
  22.         <div id="mensaje">
  23.          
  24.         </div>
  25.       </div>
  26.      
  27.  
  28.      <!-- /container --></div>
  29.  
  30.     <script src="js/jquery-1.11.1.min.js"></script>
  31.     <script src="js/bootstrap.min.js"></script>
  32.     <script>
  33.       $(document).ready(function(){
  34.         $("frmRestablecer").submit(function(event){
  35.           event.preventDefault();
  36.           $.ajax({
  37.             url:'validaremail.php',
  38.             type:'post',
  39.             dataType:'json',
  40.             data:$("frmRestablecer").serializeArray()
  41.           }).done(function(respuesta){
  42.             $("mensaje").html(respuesta.mensaje);
  43.             $("email").val('');
  44.           });
  45.         });
  46.       });
  47.     </script>
  48.   </body>

validaremail.php recoge datos y los manda por email con phpmailer
Código PHP:
Ver original
  1. <?php
  2. include_once('../phpmailer/class.phpmailer.php');
  3. include_once('../phpmailer/class.smtp.php');
  4. $idusuario="idusuario";
  5. $token="token";
  6. function generarLinkTemporal($idusuario, $username){
  7.    // Se genera una cadena para validar el cambio de contraseña
  8.    $cadena = $idusuario.$username.rand(1,9999999).date('Y-m-d');
  9.    $token = md5($cadena);
  10.  
  11.    $conexion = new mysqli('localhost', 'root', 'xxx', 'carritocompras');
  12.    // Se inserta el registro en la tabla pass
  13.    $sql = "INSERT INTO pass (idusuario, username, token, creado) VALUES($idusuario,'$username','$token',NOW());";
  14.    $resultado = $conexion->query($sql);
  15.    if($resultado){
  16.       $enlace = $_SERVER["SERVER_NAME"]. '/pass/http://localhost/tienda cachemira/nueva carpeta/restablecer.php?idusuario='.md5($idusuario).'&token='.$token;
  17.       return $enlace;
  18.    }
  19.    else
  20.       return FALSE;
  21. }
  22.  
  23. $para = $_POST['email'];
  24. $asunto = $_POST['asunto'];
  25. //$Usuario = $_POST['Usuario'];
  26. //$mensaje = $_POST['mensaje'];
  27.  
  28. $mail = new PHPMailer();
  29. $mail->IsSMTP();
  30. $mail->SMTPAuth = true;
  31. $mail->SMTPSecure = "ssl";
  32. $mail->Host = "smtp.gmail.com";
  33. $mail->Port = 465;
  34.  
  35. $mail->Username ='[email protected]';
  36. $mail->Password = 'xxxx';
  37.  
  38. $mail->AddCC("[email protected]","datos cliente");
  39. $mail->AddAddress($para);
  40. $mail->Subject = $asunto;
  41. $mail->Body =  '?><html>
  42.     <head>
  43.        <title>Restablece tu contraseña</title>
  44.     </head>
  45.     <body>
  46.       <p>Hemos recibido una petición para restablecer la contraseña de tu cuenta.</p>
  47.       <p>Si hiciste esta petición, haz clic en el siguiente enlace, si no hiciste esta petición puedes ignorar este correo.</p>
  48.       <p>
  49.         <strong>Enlace para restablecer tu contraseña</strong><br>
  50.          <a href=http://localhost/tienda%20cachemira/nueva%20carpeta/restablecer.php>Restablecer contraseña</a>
  51.       </p>
  52.     </body>
  53.    </html>';
  54.  $enlace ='/pass/http://localhost/tienda%20cachemira/nueva%20carpeta/restablecer.php?idusuario='.md5($idusuario).'&token='.$token  
  55.     ;
  56.  
  57. $mail->IsHTML(true);
  58.  
  59. if($mail->Send())
  60. {
  61.     echo'<script type="text/javascript">
  62.            alert("Enviado Correctamente");
  63.            window.location="index.php"
  64.         </script>';
  65. }
  66. else{
  67.     echo'<script type="text/javascript">
  68.            alert("NO ENVIADO, intentar de nuevo");
  69.            window.location="index.php"
  70.         </script>';
  71.  
  72. }?>
crea un link en gmail, que al clicar lo lleva a esta pagina restablecer.php
Código PHP:
Ver original
  1. <?php
  2. include_once('../phpmailer/class.phpmailer.php');
  3. include_once('../phpmailer/class.smtp.php');
  4.  
  5.     $token = $_GET['token'];
  6.     $idusuario = $_GET['idusuario'];
  7.    
  8.     $conexion = new mysqli('localhost', 'root', 'sarat0ga76', 'carritocompras');
  9.  
  10.     $sql = "SELECT * FROM pass WHERE token = '$token'";
  11.     $resultado = $conexion->query($sql);
  12.    
  13.     if( $resultado->num_rows > 0 ){
  14.         $usuario = $resultado->fetch_assoc();
  15.  
  16.         if( md5($usuario['idusuario']) == $idusuario ){
  17. ?>
  18.  <div class="container" role="main">
  19.       <div class="col-md-4"></div>
  20.       <div class="col-md-4">
  21.         <form action="cambiarpassword.php" method="post">
  22.           <div class="panel panel-default">
  23.             <div class="panel-heading"> Restaurar contraseña </div>
  24.             <div class="panel-body">
  25.               <p></p>
  26.               <div class="form-group">
  27.                 <label for="password"> Nueva contraseña </label>
  28.                 <input type="password" class="form-control" name="password1" required>
  29.               </div>
  30.               <div class="form-group">
  31.                 <label for="password2"> Confirmar contraseña </label>
  32.                 <input type="password" class="form-control" name="password2" required>
  33.               </div>
  34.               <input type="hidden" name="token" value="<?php echo $token ?>">
  35.               <input type="hidden" name="idusuario" value="<?php echo $idusuario ?>">
  36.               <div class="form-group">
  37.                 <input type="submit" class="btn btn-primary" value="Recuperar contraseña" >
  38.               </div>
  39.             </div>
  40.           </div>
  41.         </form>  
  42.       </div>
  43.       <div class="col-md-4"></div>
  44.  
  45.     </div> <!-- /container -->
  46.  
  47.     <script src="js/jquery-1.11.1.js"></script>
  48.     <script src="js/bootstrap.min.js"></script>
  49.   </body>
  50. </html>
  51. <?php
  52.        
  53.         }}?>
gracias