Problema con php para web con usuer y password.

Iniciado por Yeshua, 28 Septiembre 2008, 19:14 PM

0 Miembros y 1 Visitante están viendo este tema.

Yeshua

Hola estoy empezandon con php. Tengo algunos conocimientos de html, y tambien hice algun programita con vb.
Tengo una web creada ahora y necesito lo siguiente:

Que cada usuario tenga una contraseña asignada y esto le direccione a su pagina  personal (muy simpre). He leido bastante sobre esto, hacerla con scripts, con bases de datos, o con php. Los scrips no me parece buena idea. Lo de la base de datos, he leido pero no me queda muy calaro, tengo creada una tabla y eso pero estoy algo perdido. Y lo de php es donde estoy metido, espero que se pueda mediante este metodo. Mi web es en .php donde le tengo metido este codigo

Código (php) [Seleccionar]
<form action="control.php" method="POST">
<table align="center" width="194" cellspacing="2" cellpadding="2" border="0">
<tr>
<td colspan="2" align="center"
<?if ($_GET["errorusuario"]=="si"){?>
bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
<?}else{?>
bgcolor=>Introduce tu clave<?}?></td>
</tr>
<tr>
<td width="67" align="right">USER:</td>
<td width="144"><input type="Text" name="usuario" size="8" maxlength="50"></td>
</tr>
<tr>
<td align="right">PASSWD:</td>
<td><input type="password" name="contrasena" size="8" maxlength="50"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
</tr>
</table>
</form>
 


Con el original (este de mas abajo), situado en control.php me direcciona a una sola web con clave, que si me fuinciona a la perfección, lo que pasa es que yo necesito usuarios y páginas personaizadas.

Código (php) [Seleccionar]

<?
//vemos si el usuario y contraseña es váildo
if ($_POST["usuario"]=="carlosruiz" && $_POST["contrasena"]=="industriales"){
    //usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: asdas.html");
}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");

}
?>


Por lo que le he intentado hacer unos arreglillos para conseguir mi proposito, lo que ocurre es que el unico usuario y contraseña que me funciona es el último que pongo. Resultandome si pongo algunos de los primero el error que tengo programado "asdas.php?errorusuario=si".

Código (php) [Seleccionar]

<?
if ($_POST["usuario"]=="carlos" && $_POST["contrasena"]=="xxxx") {
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: 312.html");
}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");
};
if ($_POST["usuario"]=="angel" && $_POST["contrasena"]=="atleti") {
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: 233.html"); 
}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");
};
if ($_POST["usuario"]=="jluis" && $_POST["contrasena"]=="holaa") {
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: 234.html"); 
}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");
};
?>


Espero que me duedan orientar sobre este tema. Gracias de antemano.


WHK

Prueba con esto:
Código (php) [Seleccionar]
<?php

session_start
(); 
$user $_POST["usuario"].":".$_POST["contraseña"];

switch(
$user){
 case 
"carlos:xxxx" 
  
$_SESSION["autentificado"]= "SI"; break;
 case 
"angel:atleti" 
  
$_SESSION["autentificado"]= "SI"; break;
 case 
"jluis:holaa" 
  
$_SESSION["autentificado"]= "SI"; break;   
 default :
  
$_SESSION["autentificado"]= "NO"; break;   
}

if(
$_SESSION["autentificado"] == "SI"){
 
header ("Location: 312.html");
}else{
 
header("Location: asdas.php?errorusuario=si");
}

?>


De todas formas te recomiendo no usar la variable "contraseña" debido a la letra "ñ" ya que es un carácter especial y a veces da problemas al momento de programar.

Yeshua

#2
joo muchas gracias por tu rapidez y eficacia. ahora mismo lo veo.

--

Me acabo de dar cuenta... esto me manda solo a una página 312.html. Esto es lo que hace mi primer codigo pero sin ponerle usuarios y contraseñas distintos, es decir, con el primero lo hago con una contraseña y normbre global.

Yo lo que intento con mi último codigo es que cada usuario tenga una página diferente. No se si me explico. Este código solo reconoce el último de los usuarios por lo que necesito arreglarlo para que funcionen todos.

Gracias.

--

Por favor ayuda con este código, solo necesito esto para publicar la web y darla a conocer.

Código (php) [Seleccionar]

<?
if ($_POST["usuario"]=="carlos" && $_POST["contraseña"]=="xxxx") {
//usuario y contraseña válidos     
//defino una sesion y guardo datos     
session_start(); 
   $_SESSION["autentificado"]= "SI"; 
   header ("Location: 312.html");
}else {   
//si no existe le mando otra vez a la portada 
   header("Location: asdas.php?errorusuario=si");
};
if ($_POST["usuario"]=="angel" && $_POST["contraseña"]=="atleti") {
//usuario y contraseña válidos     
//defino una sesion y guardo datos   
  session_start(); 
   $_SESSION["autentificado"]= "SI";   
  header ("Location: 233.html");
}else {   
//si no existe le mando otra vez a la portada   
  header("Location: asdas.php?errorusuario=si");
};
if ($_POST["usuario"]=="jluis" && $_POST["contraseña"]=="holaa") {
//usuario y contraseña válidos   
//defino una sesion y guardo datos 
   session_start();
    $_SESSION["autentificado"]= "SI"; 
   header ("Location: 234.html");
}else {   
//si no existe le mando otra vez a la portada   
  header("Location: asdas.php?errorusuario=si");
};
?>


luisag

primero crea formulario
segundo crea base de datos
tercero depues tu codigo

por lo que veo no tiens base de dato y es mejor usar una base datos ya que  es mas seguro y eficaz

Yeshua

#4
Gracias, ahora estoy leyendo sobre esto. La verdad que no me queria meter ahora en base de datos, de momento, ya que me corria prisa y no es tan fácil.
Por lo que intenté hacerla solo mediante página donde se introducen los datos, archivo de control y página privada con seguridad . Ahora como la tengo funciona perfecta, lo que pasa que solo me acepta un user y pass hacia una web privada, tambien lo hice con varios usuarios y contraseñas hacia una sola web privada, pero no encuentro la forma de mandarlos a diferentes páginas privadas personales.
La web es de un club de atletismo por lo que tampoco creo que nadie le interese la zona restringida. jeje.

Saludos

------


TEMA RESUELTO!!!

Esta noche duermo como un tronco jajaja, aquí está las solución:

Una web con usuarios y contraseñas asignados con su propia pagina personal


<?
//vemos si el usuario y contraseña es váildo
if ($_POST["usuario"]=="carlosruiz" && $_POST["contraseña"]=="ssss"){
    //usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: asdas.html");


}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");



if ($_POST["usuario"]=="1111" && $_POST["contraseña"]=="xxxx"){
    //usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: asdas.html");


}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");

if ($_POST["usuario"]=="jesus" && $_POST["contraseña"]=="4444"){
    //usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: asdas.html");


}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");

}

}

}

?>



Espero que esto le sirva también a alguien que estubiese como yo, pues aqui tiene el codigo. Yo por mas que busque no encontre nada para esto.

Saludos


JammDesigner

Cita de: Yeshua en 30 Septiembre 2008, 01:46 AM
Gracias, ahora estoy leyendo sobre esto. La verdad que no me queria meter ahora en base de datos, de momento, ya que me corria prisa y no es tan fácil.
Por lo que intenté hacerla solo mediante página donde se introducen los datos, archivo de control y página privada con seguridad . Ahora como la tengo funciona perfecta, lo que pasa que solo me acepta un user y pass hacia una web privada, tambien lo hice con varios usuarios y contraseñas hacia una sola web privada, pero no encuentro la forma de mandarlos a diferentes páginas privadas personales.
La web es de un club de atletismo por lo que tampoco creo que nadie le interese la zona restringida. jeje.

Saludos

------


TEMA RESUELTO!!!

Esta noche duermo como un tronco jajaja, aquí está las solución:

Una web con usuarios y contraseñas asignados con su propia pagina personal


<?
//vemos si el usuario y contraseña es váildo
if ($_POST["usuario"]=="carlosruiz" && $_POST["contraseña"]=="ssss"){
    //usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: asdas.html");


}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");



if ($_POST["usuario"]=="1111" && $_POST["contraseña"]=="xxxx"){
    //usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: asdas.html");


}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");

if ($_POST["usuario"]=="jesus" && $_POST["contraseña"]=="4444"){
    //usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    $_SESSION["autentificado"]= "SI";
    header ("Location: asdas.html");


}else {
    //si no existe le mando otra vez a la portada
    header("Location: asdas.php?errorusuario=si");

}

}

}

?>



Espero que esto le sirva también a alguien que estubiese como yo, pues aqui tiene el codigo. Yo por mas que busque no encontre nada para esto.

Saludos
Hola una cosilla, yo necesito algo asi...
Pero tengo una duda ¿si pongo la URL directa de la pagina HTML donde me REDIRECCIONA me deja entrar o me OBLIGA  a meter las claves?
"Empty Your Mind Be Forms Shapples, Like Water, You Put Water Into A Bottle And Becomes The Bottle, You Put In A Teapot And Becomes The Teapot, Water Can Flow Or It Can Crash, Be Water My Friend"

Yeshua

Hola, primero he de decirte que con html no se puede hacer. Respecto a lo de poner la pagina directamente en el buscador, no, no se puede, te obliga a pasar necesariamente por la página de ingreso como medida de seguridad. Dos temas mas abajo de esté aparece un tutorial que yo hice con todo explicado

http://foro.elhacker.net/php/tutorial_crear_area_restringida_con_php_en_nuestra_web-t229893.0.html

Saludos y Suerte.


JammDesigner

Cita de: Yeshua en  3 Octubre 2008, 13:15 PM
Hola, primero he de decirte que con html no se puede hacer. Respecto a lo de poner la pagina directamente en el buscador, no, no se puede, te obliga a pasar necesariamente por la página de ingreso como medida de seguridad. Dos temas mas abajo de esté aparece un tutorial que yo hice con todo explicado

http://foro.elhacker.net/php/tutorial_crear_area_restringida_con_php_en_nuestra_web-t229893.0.html

Saludos y Suerte.
Lo vi tu tema pero este código no me funciona:

<?php 
if(!($_SERVER["HTTP_REFERER"]==" ingreso.php")){ 
echo 
"No puedes entrar, debes registrarte"
exit(); 
}
?>


Lo pongo en las paginas HTML donde me envía cuando pongo las claves pero puedo acceder si escribo la URL completa
"Empty Your Mind Be Forms Shapples, Like Water, You Put Water Into A Bottle And Becomes The Bottle, You Put In A Teapot And Becomes The Teapot, Water Can Flow Or It Can Crash, Be Water My Friend"

Yeshua

Si lo pones en páginas html claro qe no te va a funcionar, ese código es php. Por lo que cambiale la extrensio y ya debe de ir.


alone-in-the-chat

Cita de: Yeshua en  3 Octubre 2008, 15:51 PM
Si lo pones en páginas html claro qe no te va a funcionar, ese código es php. Por lo que cambiale la extrensio y ya debe de ir.


Si colocas en el archivo .htaccess estas lineas , si que las paginas con extension html interpretarian ese codigo.

Código (apache) [Seleccionar]

AddHandler application/x-httpd-php5 .php .htm .html


Por otro lado confiar en la variable $_SERVER["HTTP_REFERER"] no es muy seguro ese valor puede ser falseado facilmente.


http://www.php.net/manual/es/function.curl-setopt.php
Código (apache) [Seleccionar]

CURLOPT_REFERER  El contenido de la cabecera "Referer: " empleada en la peticion HTTP.



Saludos¡¡
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b