Foros del Web » Programando para Internet » PHP »

undefine index

Estas en el tema de undefine index en el foro de PHP en Foros del Web. hola chicos, de vuelta a la rutina, logre solucionar el acceder a localhost desde gmail, pero ahora me dice undefine index, esta claro , no ...
  #1 (permalink)  
Antiguo 08/02/2015, 06:50
 
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
  #2 (permalink)  
Antiguo 08/02/2015, 09:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: undefine index

Me imagino que debemos ejecutar el código mentalmente para adivinar exactamente el error que recibes ¿verdad?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/02/2015, 11:34
 
Fecha de Ingreso: noviembre-2014
Mensajes: 60
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: undefine index

lo que me sale es que no esta definido el usuario y el token

Undefined índice: token en C: \ wamp \ www \ tienda cachemira \ Nueva folder \ restablecer.php en la línea 5
no se que se tiene que poner para que salga exactamente que error es
  #4 (permalink)  
Antiguo 09/02/2015, 05:07
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: undefine index

El error es muy específico.

En concreto, te dice que el índice "token" no existe. Y que lo usas en la línea 5.

Es decir, que
Código PHP:
$token $_GET['token']; 
No está obteniendo ningún valor.

Revisa el "cómo" creas ese enlace... q algo te está fallando (por ejemplo, que lo estás poniendo sin parámetros y tal...)
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 09/02/2015, 12:40
 
Fecha de Ingreso: noviembre-2014
Mensajes: 60
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: undefine index

le he dado mil vueltas y nada, llega el correo bien, pero cuando le doy al enlace para que me mande a la pagina de cambiar la contraseña me aparece ese error, no se de que manera arreglarlo
  #6 (permalink)  
Antiguo 09/02/2015, 15:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: undefine index

Cita:
Iniciado por eslomao Ver Mensaje
le he dado mil vueltas y nada, llega el correo bien, pero cuando le doy al enlace para que me mande a la pagina de cambiar la contraseña me aparece ese error, no se de que manera arreglarlo
Dicho error se da si la dirección del enlace que abres no contiene nada en la URL, ¿cómo advinar lo que estás abriendo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 10/02/2015, 01:30
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: undefine index

Vamos a ver....

Tu envías este email:

Código PHP:
$mail->Body =  '?><html>
     <head>
        <title>Restablece tu contraseña</title>
     </head>
     <body>
       <p>Hemos recibido una petición para restablecer la contraseña de tu cuenta.</p>
       <p>Si hiciste esta petición, haz clic en el siguiente enlace, si no hiciste esta petición puedes ignorar este correo.</p>
       <p>
         <strong>Enlace para restablecer tu contraseña</strong><br>
          <a href=http://localhost/tienda%20cachemira/nueva%20carpeta/restablecer.php>Restablecer contraseña</a>
       </p>
     </body>
    </html>'

No veo los parámetros en la url
__________________
>> Eleazan's Source
>> @Eleazan
  #8 (permalink)  
Antiguo 10/02/2015, 09:08
 
Fecha de Ingreso: noviembre-2014
Mensajes: 60
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: undefine index

lo he probado asi
Código PHP:
Ver original
  1. $mail->AddCC("[email protected]","datos cliente");
  2. $mail->AddAddress($para);
  3. $mail->Subject = $asunto;
  4. $mail->Body =  '<html>
  5.     <head>
  6.        <title>Restablece tu contraseña</title>
  7.     </head>
  8.     <body>
  9.       <p>Hemos recibido una petición para restablecer la contraseña de tu cuenta.</p>
  10.       <p>Si hiciste esta petición, haz clic en el siguiente enlace, si no hiciste esta petición puedes ignorar este correo.</p>
  11.       <p>
  12.         <strong>Enlace para restablecer tu contraseña</strong><br>
  13. <a href=http://localhost/tienda%20cachemira/nueva%20carpeta/restablecer.php?'.$Usuario =$_GET['idusuario'].''.$token= $_GET['token'].'>Restablecer contraseña</a>
  14.                      
  15.       </p>
  16.     </body>';
  17.      $Usuario = $_POST['idusuario'];
  18.      $token= $_POST['token'];
  19.    ' </html>';
pero nada, el problema es que eso va a gmail, y con un enlace en gmail abro la otra ventana donde se tiene que cambiar la contraseña, al ponerlo asi tambien ma de ese error, y al ponerlo todo por GET me sale esto http://localhost/tienda%20cachemira/...stablecer.php?eslomao , el nombre de usuario , pero no se va el error

Última edición por eslomao; 10/02/2015 a las 09:37
  #9 (permalink)  
Antiguo 10/02/2015, 10:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: undefine index

Creo que tienes serios problemas, observa:
Código PHP:
Ver original
  1. // MAL
  2. $url = 'script.php?' . $variable = $valor;

¿Sabes cómo funcionan los enlaces?

Las variables se pasan así:
Código PHP:
Ver original
  1. // BIEN
  2. $url = 'script.php?variable=' . $valor;

¿Entiendes las diferencias?

Por favor lee el siguiente manual: http://www.php.net/variables.external
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: html, index, mysql, registro, select, sql, tabla
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 13:09.