Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Undexfined

Estas en el tema de Undexfined en el foro de PHP en Foros del Web. Hola, muy buenas. Dispongo de este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php include "../src/config.php" ; ?> <?php   $email = $_GET [ 'email' ...
  #1 (permalink)  
Antiguo 17/11/2013, 05:05
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Undexfined

Hola, muy buenas.

Dispongo de este código:

Código PHP:
Ver original
  1. <?php include "../src/config.php"; ?>
  2. <?php
  3.  
  4. $email = $_GET['email'];
  5. $key = $_GET['key'];
  6.  
  7. $selecg = mysqli_query($conexion, "SELECT codenr FROM sendes")or die(mysqli_error());
  8. $debugg = mysqli_fetch_assoc($selecg);
  9. $de1 = mysqli_query($conexion, "SELECT * FROM sendes WHERE email = '".$email."'")or die(mysqli_error());
  10. $de2 = mysqli_query($conexion, "SELECT * FROM sendes WHERE codenr = '".$key."'")or die(mysqli_error());
  11.  
  12. if(mysqli_num_rows($de1) < 1){
  13.             echo "Lo sentimos pero el mail seleccionado no está registrado en sends.";
  14.         }
  15.         else if(mysqli_num_rows($de2) < 1){
  16.             echo "<meta http-equiv='Refresh' content='0;http://localhost'>";
  17.         }
  18. ?>
  19. <!DOCTYPE html>
  20. <html lang="es" />
  21.     <head>
  22.         <title>  Nueva contraseña</title>
  23.         <link href="../src/style.css" rel="stylesheet" />
  24.         <meta charset="UTF-8" />
  25.     </head>
  26.     <body>
  27.    
  28.     <!-- Header (logo lugarfecha) -->
  29.     <div class="header">
  30.     <div class="headerizq">
  31.  
  32.     <div class="logo"></div>
  33.  
  34.     </div>
  35.     <div class="headerder">
  36.  
  37.     <div class="lugarfecha"><center> <?php $luguenfecha = date("d-m-Y"); echo "<font color='0378b4'>Hoy es: ".$luguenfecha."</font>"; ?> </center> </div>
  38.  
  39.     </div>
  40.     </div>
  41.     <!-- Fin header -->
  42.     <!-- Empezando el fondo del login -->
  43.     <div class="fondmar1"></div>
  44.     <div class="fondmar2">
  45.  
  46.     <div class="logo2"></div>
  47.  
  48.     <center> <form action="" method="POST">
  49.     <input type="password" name="password" placeholder="Nueva clave"><br><br>
  50.     <input type="password" name="repassword" placeholder="Repita la nueva clave"><br><br>
  51.     <input type="text" name="preguntasegura" placeholder="Escriba: Sends"><br><br>
  52.     <input type="submit" name="nuevaclave" value="Guardar Cambios">
  53.  
  54.     <?php
  55.  
  56.     if(isset($_POST['nuevaclave'])){
  57.         $lanewclavelink = mysqli_query($conexion, "SELECT * FROM sendes WHERE email = '".$email."' AND codenr = '".$key."'")or die(mysqli_error());
  58.         $nuevaclave = utf8_decode(mysqli_real_escape_string($conexion, $_POST['password']));
  59.         $nuevaclave2 = utf8_decode(mysqli_real_escape_string($conexion, $_POST['repassword']));
  60.         $clavve = md5($nuevaclave);
  61.         $codenr2 = rand(1, 9999999);
  62.         $codenr1 = md5($codenr2);
  63.         $preguntasegura = "Sends";
  64.         if($_POST['password'] == '' or $_POST['repassword'] == '' or $_POST['preguntasegura'] == ''){
  65.             echo "Lo sentimos pero no puede quedar ningún campo en blanco.";
  66.         }
  67.         else if($_POST['password'] != $_POST['repassword']){
  68.             echo "Las contraseñas no coinciden.";
  69.         }
  70.         else if($_POST['preguntasegura'] != $preguntasegura){
  71.             echo "Lo sentimos pero has escrito mal la pregunta de seguridad. Escriba: Sends";
  72.         }
  73.         else{
  74.             $duda = mysqli_fetch_assoc($lanewclavelink);
  75.             $ya = mysqli_query($conexion, "UPDATE sendes SET password = '".$clavve."' WHERE email = '".$email."' AND codenr = '".$key."'")or die(mysqli_error());
  76.             $ya2 = mysqli_query($conexion, "UPDATE sendes SET codenr = '".$codenr1."' WHERE email = '".$email."'")or die(mysqli_error());
  77.             echo "Guardado correctamente. Ya dispones de tu nueva contraseña para acceder a Sends.";
  78.         }
  79.     }
  80.  
  81.     ?>
  82.  
  83.     </div>
  84.     <div class="fondmar3"></div>
  85.     <!-- Fin del fondo del login -->
  86.  
  87.     <div class="footer"> <a href="#">Información</a> - All rights reserved (2014/2015) - Www.Sends.Eu </div>
  88.  
  89.     <div class="public"></div>
  90.     <div class="public2">
  91.         Publicidad
  92.     </div>
  93.     <div class="public3"></div>
  94.  
  95.     </body>
  96. </html>


Y si entro asín al archivo:

Código:
[email protected]&key=0557961c2b32511050515fe2970cf802
De lujo.

Pero si en la url no pongo

Código:
[email protected]&key=0557961c2b32511050515fe2970cf802
Quiero que me redireccione a otro lugar.
Pero me da el siguiente error:

Código:
Notice: Undefined index: email in C:\myxampp\htdocs\9e05b4e4ac8darestor2ad4feb6823938e3ac4\index.php on line 4

Notice: Undefined index: key in C:\myxampp\htdocs\9e05b4e4ac8darestor2ad4feb6823938e3ac4\index.php on line 5
Lo sentimos pero el mail seleccionado no está registrado en la db.
Y la línea 4 y 5 son estas:

Código PHP:
Ver original
  1. $email = $_GET['email'];
  2. $key = $_GET['key'];

Y cómo pueden ver están definidas.
¿Qué puede ocurrir?.
  #2 (permalink)  
Antiguo 17/11/2013, 05:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Undexfined

Cita:
Iniciado por TSG Ver Mensaje

Pero si en la url no pongo

Código:
[email protected]&key=0557961c2b32511050515fe2970cf802
Quiero que me redireccione a otro lugar.


Ahora bien, ¿te das cuenta que si no se ingresan esos dos parámetros, entonces esos index no existirán, no?
Es decir, lo primero que deberías validar es que estén entrando algún tipo de parámentros.
Luego que esos parámetros tengan sus identificadores correctos ("email" y "key"), y recién entonces puedes tomarlos para usarlos. Pues si no entran, pues simplemente no están definidos.

Yo empezaría por allí...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/11/2013, 05:40
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Respuesta: Undexfined

Exactamente lo que quiero haces es que si esos parámetros cómo tu dices:

Código:
[email protected]&key=0557961c2b32511050515fe2970cf802
No está escrito en la url, quiero que redireccione.
Pero que se quite ese error que me da.

¿Cómo podría solucionarlo?
  #4 (permalink)  
Antiguo 17/11/2013, 06:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Undexfined

Pues creo que lo que te dije es claro: debes verificar si están llegando algún tipo de parámetros y cuales. Valida lo que llega en $_POST. Razonalo...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 17/11/2013, 07:22
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Respuesta: Undexfined

¿Y cómo puedo razonarlo en $_POST?

Si estoy usando $_GET...
y los datos que contenga los get no deseo que se muestren.
  #6 (permalink)  
Antiguo 17/11/2013, 08:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Undexfined

$_POST, $_GET... esencialmente no ha diferencias en el casos. Debes validar si está llegando ALGO.
Ahora no puedo ejemplificar porque estoy escribiendo en un móvil, no en mi pc. Pero podrías razonalo, y usar el MANUAL DE REFERENCIA. ¿No te parece?
¿isset() te suena?
¿Algo semejante tal vez?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 17/11/2013, 09:24
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Respuesta: Undexfined

Listo creo que lo solucioné,

Definí las variables de la siguiente manera:

Código PHP:
Ver original
  1. $email=((isset($_GET['email']) && !empty($_GET['email']))?$_GET['email']:false);
  2. $key=((isset($_GET['key']) && !empty($_GET['key']))?$_GET['key']:false);

Y no me dan ningún problema.
Gracias, por tu ayuda me sirvió.

Solucionado.

Etiquetas: fecha, html, mysql, select, sql
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 07:10.