Foros del Web » Programando para Internet » PHP »

PHP OO Error en login

Estas en el tema de Error en login en el foro de PHP en Foros del Web. Buenas tardes, espero vaya aquí este error; pongo en contexto, tengo un sistema de inscripción de niños de kinder pequeño, por lo que decidi no ...
  #1 (permalink)  
Antiguo 05/08/2016, 11:23
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Error en login

Buenas tardes, espero vaya aquí este error; pongo en contexto, tengo un sistema de inscripción de niños de kinder pequeño, por lo que decidi no crear un login que se conecte a base de datos por no considerarlo pertinente; pero, al querer modificar el login para que me conecte a maestras y directora, me sale el siguiente error:

Notice: Undefined index: $usuario in C:\wamp\www\inscripcion_kinder\autenticacion.php on line 10

Y mi codigo está de la siguiente manera:

Código PHP:
[CODE]<?php
    session_start
();

if (
$_POST["usuario"]=="Josefina" && $_POST["contrasena"]=="Direccion"){
    echo 
"<html><script>alert(\"Bienvenida Hermana Josefina.\"); window.location='kinder.php';</script></html>";
    
$_SESSION['$usuario'] = $_POST['$usuario'];
}else if
    (
$_POST["usuario"]=="Maestra" && $_POST["contrasena"]=="Kinder"){
"<html><script>alert(\"Bienvenida Hermana Josefina.\"); window.location='maestras.php';</script></html>";
    
$_SESSION['$usuario'] = $_POST['$usuario'];
}else{
    echo 
"<html><script>alert(\"El usuario y/o la contraseña son incorrectos.\"); window.location='index.php';</script></html>";
}
?>[/CODE]
Donde la linea 10 es:

Código:
	$_SESSION['$usuario'] = $_POST['$usuario'];
¿Qué puedo hacer para corregirlo?

Saludos y gracias por su atención.
  #2 (permalink)  
Antiguo 05/08/2016, 12:24
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: Error en login

seguro que es así ? :

Código PHP:
Ver original
  1. $_SESSION['$usuario'] = $_POST['$usuario'];

no debería ser sin los $ ?
  #3 (permalink)  
Antiguo 05/08/2016, 13:00
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error en login

Cita:
Iniciado por sonystar_17 Ver Mensaje
seguro que es así ? :

Código PHP:
Ver original
  1. $_SESSION['$usuario'] = $_POST['$usuario'];

no debería ser sin los $ ?
Es que, curiosamente los primeros $usuario si me los acepta, los segundos no, es donde me marca el error.
  #4 (permalink)  
Antiguo 05/08/2016, 13:06
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error en login

Cita:
Iniciado por sonystar_17 Ver Mensaje
seguro que es así ? :

Código PHP:
Ver original
  1. $_SESSION['$usuario'] = $_POST['$usuario'];

no debería ser sin los $ ?
Es que, curiosamente los primeros $usuario si me los acepta, los segundos no, es donde me marca el error.
  #5 (permalink)  
Antiguo 05/08/2016, 13:44
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Error en login

Los primeros te los coje y no te marca error porque están dentro de comillas dobles " ", donde las variables se expanden dentro, y en las otras no y te da error: porque se trata de comillas simples ' ', donde las variables no se expanden dentro

Ejemplo de expandir
Código PHP:
Ver original
  1. $string = "Pepito";
  2.  
  3. echo "Mi nombre es $string";
  4. //imprime: Mi nombre es Pepito
  5.  
  6. echo 'Mi nombre es $string';
  7. //imprime Mi nombre es $string

Quitaselos a ambos como te han dicho, quitando los $. El nombre al venir desde un formulario es un string, por lo que tienes que recogerlo de esta forma:

Código PHP:
Ver original
  1. $_SESSION["usuario"] = $_POST["usuario"];
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Última edición por rodrypaladin; 05/08/2016 a las 13:58
  #6 (permalink)  
Antiguo 06/08/2016, 13:28
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error en login

Cita:
Iniciado por rodrypaladin Ver Mensaje
Los primeros te los coje y no te marca error porque están dentro de comillas dobles " ", donde las variables se expanden dentro, y en las otras no y te da error: porque se trata de comillas simples ' ', donde las variables no se expanden dentro

Ejemplo de expandir
Código PHP:
Ver original
  1. $string = "Pepito";
  2.  
  3. echo "Mi nombre es $string";
  4. //imprime: Mi nombre es Pepito
  5.  
  6. echo 'Mi nombre es $string';
  7. //imprime Mi nombre es $string

Quitaselos a ambos como te han dicho, quitando los $. El nombre al venir desde un formulario es un string, por lo que tienes que recogerlo de esta forma:

Código PHP:
Ver original
  1. $_SESSION["usuario"] = $_POST["usuario"];
Ya hice la corrección, quedando de la siguiente manera:

Código PHP:
<?php
    session_start
();

if (
$_POST["usuario"]=="Josefina" && $_POST["contrasena"]=="Direccion"){
    echo 
"<html><script>alert(\"Bienvenida Hermana Josefina.\"); window.location='kinder.php';</script></html>";
    
$_SESSION["usuario"] = $_POST["usuario"];
}else if
    (
$_POST["usuario"]=="Maestra" && $_POST["contrasena"]=="Kinder"){
"<html><script>alert(\"Bienvenida Hermana Josefina.\"); window.location='maestras.php';</script></html>";
    
$_SESSION["usuario"] = $_POST["usuario"];
}else{
    echo 
"<html><script>alert(\"El usuario y/o la contraseña son incorrectos.\"); window.location='index.php';</script></html>";
}
?>
Pero ahora no pasa de autenticación ¿que puedo hacer ahí?
  #7 (permalink)  
Antiguo 07/08/2016, 20:22
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Error en login

Solo una correccion, te falta el echo en el else if.

Lo que escribiste esta bien. Si las variables post llegan deberian pasar.

Comentanos como te fue con la correccion.
Saludos y Suerte.

Última edición por binagol; 07/08/2016 a las 20:36

Etiquetas: html, login
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 11:37.