Foros del Web » Programando para Internet » PHP »

usuarios en php

Estas en el tema de usuarios en php en el foro de PHP en Foros del Web. Buenas, en mi web tengo un acceso por usuario y contraseña de esta manera: <?php // Define el usuario y la contraseña de acceso $username ...
  #1 (permalink)  
Antiguo 20/05/2011, 04:36
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
usuarios en php

Buenas, en mi web tengo un acceso por usuario y contraseña de esta manera:

<?php
// Define el usuario y la contraseña de acceso
$username = "usuario1";//Aqui el nombre de usuario
$password = "1111";// Aqui la contraseña
if ($_POST['txtUsername'] != $username || $_POST['txtPassword'] != $password) {

?>

<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p align="center"><label for="txtUsername">Usuario</label>
<input type="text" title="Introduce nombre de usuario" name="txtUsername">
<label for="txtpassword">Contraseña</label>
<input type="password" title="Introduce la contraseña" name="txtPassword">
<input type="submit" name="Submit" value="Entrar"></p>
</form>


si quiero introducir datos de mas usuarios y contraseñas para que se pueda entrar tambien con otro nombre de usuario y contraseña como lo haria?, yo habia pensado en algo asi...

// Define el usuario y la contraseña de acceso
$username = "usuario1";//Aqui el nombre de usuario
$username2 = "usuario2";//Aqui el nombre de usuario
$username3 = "usuario3";//Aqui el nombre de usuario
$password = "1111";// Aqui la contraseña
$password = "222";// Aqui la contraseña
$password = "333";// Aqui la contraseña
if ($_POST['txtUsername'] != $username or != $username2 or != $username3|| $_POST['txtPassword'] != $password or != $password2 or != $password3) {

...


Pero no se como tengo que poner ese "or" para que me acepte mas opciones, lo explico de otra manera:

- defino los tres usuarios y las tres contraseñas
-Si txtUsername = usuario1 o usuario2 o usuario3 y txtPassword = contaseña1 o contraseña2 o contraseña3

entonces entra.

espero que hayais captado la idea y podais ayudarme, Muchas gracias!
  #2 (permalink)  
Antiguo 20/05/2011, 05:21
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: usuarios en php

Cita:
Iniciado por websound Ver Mensaje

Código PHP:
if ($_POST['txtUsername'] != $username or != $username2 or != $username3 || $_POST['txtPassword'] != $password or != $password2 or != $password3) { 
PHP entiende tanto el or como el || igual que entiende un and o &&.
De hecho tienes un or como || después de la variable $username3

Tú problema es de sintáxis no tanto de no saber los operadores lógicos.

Esa línea te daría error. ¿Con que comparas tus or?
Aunque soy contrario a este tipo de if gigantesco, debería ser así:
Código PHP:
if ($_POST['txtUsername'] != $username || $_POST['txtUsername'] != $username2
 
|| $_POST['txtUsername'] != $username3 || $_POST['txtPassword'] != $password
 
|| $_POST['txtPassword'] != $password2 || $_POST['txtPassword'] != $password3) {
    
//... 
 

Conseeejo: No se pongan a hacer cosas en ningún lenguaje si no saben las bases porqué después vienen los errores y páginas web u otras aplicaciones con fallos catrastóficos en seguridad y demás.

Primero se lee, se aprende y luego se hace. No alrevés.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 20/05/2011, 05:57
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: usuarios en php

Gracias por contestar IEKK he probado como me has dicho pero no me entra con ningun nombre de usuario ni con ninguna contraseña, para ello le he tenio que quitar el ultimo } porque si no me daba error en el else cuando cierro el php:

<?php
}else {
?>

Gracias de antemano!
  #4 (permalink)  
Antiguo 24/05/2011, 08:42
 
Fecha de Ingreso: abril-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: usuarios en php

Alguien sabe a que se puede deber que no me funcione? muchas gracias
  #5 (permalink)  
Antiguo 24/05/2011, 09:38
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: usuarios en php

Amigo esto esta de locos, si tu colocas 70 usuarios y 70 contraseñas entonces imagínate como quedara esa comparación.

Adicional a esto la lógica esta mal planteada porque cada usuario debe tener su contraseña, si lo colocas como lo planteas el usuario1 podría entrar con la contraseña 222 y creo que eso no es lo que se busca.

De todas formas tratare de darte dos ejemplos, la primera es veridicando que el usuario1 exista y que este haya escrito la contraseña que le corresponde:
Código PHP:
Ver original
  1. $username = "usuario1";//Aqui el nombre de usuario
  2. $username2 = "usuario2";//Aqui el nombre de usuario
  3. $username3 = "usuario3";//Aqui el nombre de usuario
  4. $password = "1111";// Aqui la contraseña
  5. $password2 = "222";// Aqui la contraseña
  6. $password3 = "333";// Aqui la contraseña
  7.  
  8.  
  9. if (!isset($_POST['txtUsername']) OR !isset($_POST['txtPassword']))
  10. {
  11.     echo "Los campos no pueden estar vacios";
  12. }
  13. elseif ($_POST['txtUsername'] == $username && $_POST['txtPassword'] == $password)
  14. {
  15.     echo "Se logueo bien con el usuario numero 1";
  16.     endif;
  17. }
  18. elseif($_POST['txtUsername'] == $username2 && $_POST['txtPassword'] == $password2)
  19. {
  20.     echo "Se logueo bien con el usuario numero 2";
  21.     endif;
  22. }
  23. elseif($_POST['txtUsername'] == $username3 && $_POST['txtPassword'] == $password3)
  24. {
  25.     echo "Se logueo bien con el usuario numero 3";
  26.     endif;
  27. }
  28. else
  29. {
  30.     echo "Los campos no coinciden";
  31. }


Pero si los usuarios (CUALQUIERA DE ELLOS) pueden entrar con cualquier contraseña entonces seria diferente, utilizaríamos arrays para verificar los campos:

Código PHP:
Ver original
  1. $username = array ("usuario1", "usuario2", "usuario3");
  2. $password = array ("1111", "222", "333");
  3.  
  4. $usuario = $_POST['txtUsername'];
  5. $contrasena = $_POST['txtPassword'];
  6.  
  7. if (in_array($usuario, $username) && in_array($contrasena, $password))
  8. {
  9.     echo "Se logueo con uno de los usuarios y una de las contraseñas";
  10. }
  11. else
  12. {
  13.     echo "Los campos que escribiste no concuerdan o no existen";
  14. }

Pero te recomiendo ENORMEMENTE que empieces a leer sobre BASES DE DATOS porque esto que estas tratando de hacer es de LOCOS.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Última edición por jotaincubus; 24/05/2011 a las 10:34 Razón: Mejore el codigo

Etiquetas: usuarios
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 18:11.