Foros del Web » Programando para Internet » PHP »

Notice: Undefined index

Estas en el tema de Notice: Undefined index en el foro de PHP en Foros del Web. Buenos dias, tengo un problemilla con ese notice ya que al no reconocer el contenido de la variable que se le pasa no llega a ...
  #1 (permalink)  
Antiguo 31/01/2016, 05:23
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 11 años, 1 mes
Puntos: 1
Notice: Undefined index

Buenos dias,


tengo un problemilla con ese notice ya que al no reconocer el contenido de la variable que se le pasa no llega a formalizar un update en el programilla que estoy haciendo.

Trato de modificar un dato recogido en un <input text> y recogerlo por post e introducirlo en un update.

Estoy bastante seguro que la consulta esta bien definida porque no me da errores de Mysql y la base de datos esta con datos osea que la variable va inicializada.

Pego el codigo:


$registros=mysqli_query($conexion,"select * from usuarios")or
die("Problemas en el select:".mysqli_error($conexion));
while($reg=mysqli_fetch_array($registros))
{

$login=$reg['NombreUsuario'];
$Id=$reg['Id'];
$contrasenya=$reg['Password'];
$nombre=$reg['Nombre'];
$apellido1=$reg['Apellido1'];
$apellido2=$reg['Apellido2'];
$DNI=$reg['DNI'];
$privilegios=$reg['Privilegio'];



echo "<form method='post' action='BBDD_usuarios.php' enctype='multipart/form-data'>";
echo "<tr>";
echo "<input type='checkbox' name='borrados[]' value=".$Id." >&nbsp";
echo "<td>".$Id."</td>";
echo "<td><input type='text' size=8 name='nuevoLogin' value='<?php echo $login;?>'></td>";
echo "<td><input type='hidden' size=8 name='viejoLogin' value='<?php echo $login;?>'></td>";






y al recoger la variable:


$conexion=mysqli_connect("localhost","root","","us uarios")or die("Problemas con la conexión");

$nuevo = $_POST['nuevoLogin'];
$viejo = $_POST['viejoLogin'];


mysqli_query($conexion,"UPDATE usuarios SET NombreUsuario='".$nuevo."' WHERE NombreUsuario='".$viejo."' ")or
die("Problemas en el update:".mysqli_error($conexion));
echo "El mail fue modificado con exito";


Gracias por las contestaciones :)
  #2 (permalink)  
Antiguo 31/01/2016, 07:09
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: Notice: Undefined index

Hola saludos aqui haces un echo "<td><input type='hidden' size=8 name='viejoLogin' value='<?php echo $login;?>'></td>"; y dentro haces otro. deberia ser:

Código PHP:
Ver original
  1. echo "<td><input type='text' size=8 name='nuevoLogin' value='". $login."'></td>";
  2. echo "<td><input type='hidden' size=8 name='viejoLogin' value='".$login."'></td>";

Hay un error hay, y cuando recibas lo datos pregunta con isset() a ver si esta vacio o imprimela a ver que muestra

ejemplo:

Código PHP:
Ver original
  1. if(isset($_POST['nuevoLogin'])){
  2.     echo $_POST['nuevoLogin'];
  3.     }
  4.     // o
  5. if($_POST['nuevoLogin'] != ""){
  6.     echo $_POST['nuevoLogin'];
  7.     }
  #3 (permalink)  
Antiguo 31/01/2016, 12:44
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: Notice: Undefined index

Cita:
Iniciado por leonagelic Ver Mensaje
Código PHP:
Ver original
  1. if(isset($_POST['nuevoLogin'])){
  2.     echo $_POST['nuevoLogin'];
  3.     }
  4.     // o
  5. if($_POST['nuevoLogin'] != ""){
  6.     echo $_POST['nuevoLogin'];
  7.     }

No es lo mismo esto:

Código PHP:
Ver original
  1. if(isset($_POST['nuevoLogin'])){
  2.     echo $_POST['nuevoLogin'];
  3.     }

Que esto:

Código PHP:
Ver original
  1. if($_POST['nuevoLogin'] != ""){
  2.     echo $_POST['nuevoLogin'];
  3.     }

Una variable puede estar definida y estar vacía. Solo es un apunte... No es con intención de molestar...
  #4 (permalink)  
Antiguo 31/01/2016, 13:18
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: Notice: Undefined index

Cita:
Iniciado por rbczgz Ver Mensaje
No es lo mismo esto:

Código PHP:
Ver original
  1. if(isset($_POST['nuevoLogin'])){
  2.     echo $_POST['nuevoLogin'];
  3.     }

Que esto:

Código PHP:
Ver original
  1. if($_POST['nuevoLogin'] != ""){
  2.     echo $_POST['nuevoLogin'];
  3.     }

Una variable puede estar definida y estar vacía. Solo es un apunte... No es con intención de molestar...


Bueno por eso le coloque los dos ejemplos para que los use con sus variables y descarte su error.
  #5 (permalink)  
Antiguo 31/01/2016, 14:41
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: Notice: Undefined index

Gracias por responder :)

Disculpa pero el primer parrafo de tu mensaje no lo he llegado a entender cuando te refieres que hago un echo y dentro deberia haber otro. Esta incorrecto en mi codigo?

Y he probado el codigo que me has sugerido. Si pego:

if($_POST['nuevoLogin'] != ""){
echo $_POST['nuevoLogin'];
}

Me devuelve que el indice no esta definido

En cambio con:

if(isset($_POST['nuevoLogin'])){
echo $_POST['nuevoLogin'];
}

No me devuelve un notice, pero no me pinta nada por pantalla. Supongo que esta vacia la variable

No entiendo como no recoge la variable que se pasa del input(he probado con la de nuevo y viejo login ..)

Se agradecerian más ideas! :)
  #6 (permalink)  
Antiguo 01/02/2016, 00:34
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: Notice: Undefined index

Cita:
Iniciado por sentoki79 Ver Mensaje
Código PHP:
Ver original
  1. echo  "<td><input type='text' size=8 name='nuevoLogin' value='<?php echo $login;?>'></td>";
  2.                                 echo  "<td><input type='hidden' size=8 name='viejoLogin' value='<?php echo $login;?>'></td>";
En vez de hacerlo así, debes hacerlo de esta otra forma:

Código PHP:
Ver original
  1. echo  "<td><input type='text' size=8  name='nuevoLogin' value='". $login; ."'></td>";
  2.                                 echo  "<td><input type='hidden'  size=8 name='viejoLogin' value='".  $login; ."'></td>";

Espero que ahora te funcione.
  #7 (permalink)  
Antiguo 01/02/2016, 09:07
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: Notice: Undefined index

Te recomiendo a ver este a ver si te sirve y te adjunto un tutorial sobres las comillas que creo es lo que esta afectando ya que el error es porque no hasy nada en el POST:

http://php.net/manual/es/language.types.string.php

Código PHP:
Ver original
  1. <?php
  2. $registros=mysqli_query($conexion,"select * from usuarios")or
  3. die("Problemas en el select:".mysqli_error($conexion));
  4. while($reg=mysqli_fetch_array($registros))
  5. {
  6.  
  7. $login=$reg['NombreUsuario'];
  8. $Id=$reg['Id'];
  9. $contrasenya=$reg['Password'];
  10. $nombre=$reg['Nombre'];
  11. $apellido1=$reg['Apellido1'];
  12. $apellido2=$reg['Apellido2'];
  13. $DNI=$reg['DNI'];
  14. $privilegios=$reg['Privilegio'];
  15.  
  16.  
  17. /*
  18. puedes usar <?php echo $variable; ?>
  19. o
  20. <?=$variable;?>
  21. */
  22. ?>
  23.  
  24. <form method="post" action="BBDD_usuarios.php" enctype="multipart/form-data">
  25. <tr>
  26. <!-- Guarda otro input hidden para verificar si se envio el formulario -->
  27. <input type="checkbox" name="borrados[]" value="<?php echo $Id; ?>" >
  28. <td><?php echo $Id; ?></td>
  29. <td><input type="text" size=8 name="nuevoLogin" value="<?php echo $login;?>"></td>
  30. <td>
  31. <input type="hidden" size="8" name="viejoLogin" value="<?php echo $login;?>">
  32. <!-- Guarda otro input hidden para verificar si se envio el formulario -->
  33. <input type="hidden"  name="cambiar" value="cambiar">
  34.  
  35. </td>
  36.  
  37.  
  38. <?php
  39. }
  40. ?>

en BBDD_usuarios.php verifica si se envio el formulario:

Código PHP:
Ver original
  1. if(isset($_POST["cambiar"]) and $_POST["cambiar"] === "cambiar"){
  2. /*
  3. Aqui colocas tus validaciones, recoges variables, etc......
  4. */
  5. }

si te sirve me avisas y perdona si me comi una comilla o un ; ya que lo edite aqui mismo, saludos...
  #8 (permalink)  
Antiguo 02/02/2016, 12:17
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: Notice: Undefined index

Buenas!

al final he cogido un ejemplo que había por internet y lo he adaptado a mi aplicación.
Yo creo que el hecho de que estaba haciendo varios <input submit> para modificar (usaba un name='modificar[]') estaba en parte dando problemas.

Ha sido más rapido hacerlo así :)

Muchas gracias por vuestros consejos :) los probe pero seguian dando el notice como que pasaba la variable vacia.
Tambíen trate de pasarlos por get en la url pero seguia pasando una variable vacia.
Bueno ha sido mi primer update con php, es para el proyecto del ciclo de programación :)

Gracias de nuevo!

Etiquetas: index, mysql, notice, registro, select, sql, undefined, usuarios, 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 21:18.