Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Yeshua en 28 Septiembre 2008, 19:14 pm



Título: Problema con php para web con usuer y password.
Publicado por: Yeshua en 28 Septiembre 2008, 19:14 pm
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
  1. <form action="control.php" method="POST">
  2. <table align="center" width="194" cellspacing="2" cellpadding="2" border="0">
  3. <tr>
  4. <td colspan="2" align="center"
  5. <?if ($_GET["errorusuario"]=="si"){?>
  6. bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
  7. <?}else{?>
  8. bgcolor=>Introduce tu clave<?}?></td>
  9. </tr>
  10. <tr>
  11. <td width="67" align="right">USER:</td>
  12. <td width="144"><input type="Text" name="usuario" size="8" maxlength="50"></td>
  13. </tr>
  14. <tr>
  15. <td align="right">PASSWD:</td>
  16. <td><input type="password" name="contrasena" size="8" maxlength="50"></td>
  17. </tr>
  18. <tr>
  19. <td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
  20. </tr>
  21. </table>
  22. </form>
  23.  

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
  1. <?
  2. //vemos si el usuario y contraseña es váildo
  3. if ($_POST["usuario"]=="carlosruiz" && $_POST["contrasena"]=="industriales"){
  4.    //usuario y contraseña válidos
  5.    //defino una sesion y guardo datos
  6.    session_start();
  7.    $_SESSION["autentificado"]= "SI";
  8.    header ("Location: asdas.html");
  9. }else {
  10.    //si no existe le mando otra vez a la portada
  11.    header("Location: asdas.php?errorusuario=si");
  12.  
  13. }
  14. ?>
  15.  

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
  1. <?
  2. if ($_POST["usuario"]=="carlos" && $_POST["contrasena"]=="xxxx") {
  3. //usuario y contraseña válidos
  4.    //defino una sesion y guardo datos
  5.    session_start();
  6.    $_SESSION["autentificado"]= "SI";
  7.    header ("Location: 312.html");
  8. }else {
  9.    //si no existe le mando otra vez a la portada
  10.    header("Location: asdas.php?errorusuario=si");
  11. };
  12. if ($_POST["usuario"]=="angel" && $_POST["contrasena"]=="atleti") {
  13. //usuario y contraseña válidos
  14.    //defino una sesion y guardo datos
  15.    session_start();
  16.    $_SESSION["autentificado"]= "SI";
  17.    header ("Location: 233.html");  
  18. }else {
  19.    //si no existe le mando otra vez a la portada
  20.    header("Location: asdas.php?errorusuario=si");
  21. };
  22. if ($_POST["usuario"]=="jluis" && $_POST["contrasena"]=="holaa") {
  23. //usuario y contraseña válidos
  24.    //defino una sesion y guardo datos
  25.    session_start();
  26.    $_SESSION["autentificado"]= "SI";
  27.    header ("Location: 234.html");  
  28. }else {
  29.    //si no existe le mando otra vez a la portada
  30.    header("Location: asdas.php?errorusuario=si");
  31. };
  32. ?>
  33.  

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


Título: Re: Problema con php para web con usuer y password.
Publicado por: WHK en 28 Septiembre 2008, 19:29 pm
Prueba con esto:
Código
  1. <?php
  2.  
  3. $user = $_POST["usuario"].":".$_POST["contraseña"];
  4.  
  5. switch($user){
  6. case "carlos:xxxx" :
  7.  $_SESSION["autentificado"]= "SI"; break;
  8. case "angel:atleti" :
  9.  $_SESSION["autentificado"]= "SI"; break;
  10. case "jluis:holaa" :
  11.  $_SESSION["autentificado"]= "SI"; break;  
  12. default :
  13.  $_SESSION["autentificado"]= "NO"; break;  
  14. }
  15.  
  16. if($_SESSION["autentificado"] == "SI"){
  17. header ("Location: 312.html");
  18. }else{
  19. header("Location: asdas.php?errorusuario=si");
  20. }
  21.  
  22. ?>

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.


Título: Re: Problema con php para web con usuer y password.
Publicado por: Yeshua en 28 Septiembre 2008, 19:42 pm
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
  1. <?
  2. if ($_POST["usuario"]=="carlos" && $_POST["contraseña"]=="xxxx") {
  3. //usuario y contraseña válidos    
  4. //defino una sesion y guardo datos    
  5.   $_SESSION["autentificado"]= "SI";  
  6.   header ("Location: 312.html");
  7. }else {    
  8. //si no existe le mando otra vez a la portada  
  9.   header("Location: asdas.php?errorusuario=si");
  10. };
  11. if ($_POST["usuario"]=="angel" && $_POST["contraseña"]=="atleti") {
  12. //usuario y contraseña válidos    
  13. //defino una sesion y guardo datos  
  14.  session_start();  
  15.   $_SESSION["autentificado"]= "SI";  
  16.  header ("Location: 233.html");
  17. }else {    
  18. //si no existe le mando otra vez a la portada  
  19.  header("Location: asdas.php?errorusuario=si");
  20. };
  21. if ($_POST["usuario"]=="jluis" && $_POST["contraseña"]=="holaa") {
  22. //usuario y contraseña válidos    
  23. //defino una sesion y guardo datos  
  24.    $_SESSION["autentificado"]= "SI";  
  25.   header ("Location: 234.html");
  26. }else {    
  27. //si no existe le mando otra vez a la portada  
  28.  header("Location: asdas.php?errorusuario=si");
  29. };
  30. ?>
  31.  


Título: Re: Problema con php para web con usuer y password.
Publicado por: luisag en 30 Septiembre 2008, 01:35 am
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


Título: Re: Problema con php para web con usuer y password.
Publicado por: 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


Título: Re: Problema con php para web con usuer y password.
Publicado por: JammDesigner en 3 Octubre 2008, 12:11 pm
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?


Título: Re: Problema con php para web con usuer y password.
Publicado por: 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.


Título: Re: Problema con php para web con usuer y password.
Publicado por: JammDesigner en 3 Octubre 2008, 14:34 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


Título: Re: Problema con php para web con usuer y password.
Publicado por: 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.


Título: Re: Problema con php para web con usuer y password.
Publicado por: alone-in-the-chat en 3 Octubre 2008, 17:22 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
  1. AddHandler application/x-httpd-php5 .php .htm .html
  2.  

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
  1. CURLOPT_REFERER   El contenido de la cabecera "Referer: " empleada en la peticion HTTP.
  2.  


Saludos¡¡


Título: Re: Problema con php para web con usuer y password.
Publicado por: JammDesigner en 6 Octubre 2008, 13:14 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.
0k, ahora les he cambiado las extensiones a los archivos HTML a PHP con el codigo añadido y cuando accedo con las claves correspondientes me sale el comentario que pongo en ECHO "Área restringida"

<?php
if(!($_SERVER["HTTP_REFERER"]==" index.php")){
echo "Área restringida";
exit();
}
?>


Título: Re: Problema con php para web con usuer y password.
Publicado por: Yeshua en 7 Octubre 2008, 02:44 am
Explicate algo más porque sino no te voy a poder echar una  mano. El código ese lo tienes que poner arearestringida.php, por ejemplo. Y para acceder a esta página, la págian de ingreso, donde se pone user y pass debe llamarse en tu caso index.php Como no se llame index.php no funcionará y te aparecerá ese mensaje.

Eso si, te aconsejo que te crees una página aparte, más escondida para ingresar el pass y name y con algun nombre mas raro :p

Dime si es eso.

Saludos.


Título: Re: Problema con php para web con usuer y password.
Publicado por: JammDesigner en 7 Octubre 2008, 16:29 pm
Te explico lo que tengo:


Al acceder a la WEB > www.tupagina.com, o sea, INDEX.HTML> salta una POPUP pidiéndote el usuario y contraseña, VALIDACION.PHP, tengo un LOGIN.PHP donde tengo guardado los usuarios/contraseña, cuando pongo el usuario y contraseña si no tiene el código: <?php
if(!($_SERVER["HTTP_REFERER"]==" index.php")){
echo "Área restringida";
exit();
}
?>Me deja entrar, pero si lo pongo como de la siguiente forma, no me deja acceder porque me aparece "Área restringida";

Código:
<?php 
if(!($_SERVER["HTTP_REFERER"]==" index.php")){
echo "Área restringida";
exit();
}
?>
<html>
<head>
<META NAME = "ROBOTS" CONTENT = "NOARCHIVE">
<SCRIPT LANGUAGE="javascript">
<!-- Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=300,left = 690,top = 375');");
}
// End -->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Majadahonda</title>
<style type="text/css">
<!--
body,td,th {
font-family: Verdana, Arial, Helvetica, sans-serif;
}
a:link {
text-decoration: none;
color: #FF0000;
}
a:visited {
text-decoration: none;
color: #FF0000;
}
a:hover {
text-decoration: underline;
color: #0000CC;
}
a:active {
text-decoration: none;
}
-->
</style></head>

<body>
<table width="821" height="141" border="0" align="center" cellpadding="0" cellspacing="5">
 
  <tr>
    <td colspan="2" bgcolor="#FFFF00"><div align="center"><strong>Seleccione, por favor: </strong></div></td>
  </tr>
  <tr>
    <td><div align="center">Loteria Nacional </div></td>
    <td width="351"><div align="center">Quiniela Pal&eacute; </div></td>
  </tr>
  <tr>
    <td width="50%"><div align="center"><a href="loteria_nacional/numeroln.html" target="_blank" onClick="window.open(this.href, this.target, 'width=350,height=300'); return false;"><strong>N&uacute;mero</strong></a> o <a href="loteria_nacional/paleln.html" target="_blank" onClick="window.open(this.href, this.target, 'width=350,height=300'); return false;"><strong>Pal&eacute;</strong></a> </div>
    <div align="left"></div></td>
    <td width="351"><div align="center"><a href="quiniela_pale/numeroqp.html" target="_blank" onClick="window.open(this.href, this.target, 'width=350,height=300'); return false;"><strong>N&uacute;mero</strong></a> o <a href="quiniela_pale/paleqp.html" target="_blank" onClick="window.open(this.href, this.target, 'width=350,height=300'); return false;"><strong>Pal&eacute;</strong></a> </div>
    <div align="left"></div></td>
  </tr>
  <tr>
    <td colspan="2" bgcolor="#FFFF00"><div align="center"><strong>M&aacute;s vendidos:</strong>
      <script type="text/javascript">
var ahora = new Date()
ahora.setFullYear("2008");
document.write(ahora.getDate())
document.write(".")
document.write(ahora.getMonth() + 1)
document.write(".")
document.write(ahora.getFullYear())
</script>
    </div></td>
  </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2" bgcolor="#FFFF00"><div align="center"><span style="font-weight:bolder;">Resultados Sorteos de LEIDSA</span>
    </div></td>
  </tr>
  <tr>
    <td colspan="2"><div align="center">
      <table width="100%" border="0" align="center" cellpadding="0" cellspacing="2">
       
        <tr align="center" valign="middle" bgcolor="#FFCC00" class="textonoticias">
          <td width="25%">Fecha</td>
          <td width="13%">Sorteo No.</td>
          <td width="30%">Juego </td>
          <td width="32%">Numeros Ganadores </td>
        </tr>
        <tr bgcolor="#CCCCCC" onMouseOver="this.bgColor='#FFFFCC'" onMouseOut="this.bgColor='#CCCCCC'">
          <td align="center" valign="middle"  class="textonoticias">28/9/2008</td>
          <td align="center" valign="middle"  class="textonoticias">2446</td>
          <td align="center" valign="middle"  class="textonoticias">Loteria Nacional</td>
          <td align="center" valign="middle"  >57 26 30 </td>
        </tr>


        <tr bgcolor="#EEEEEE" onMouseOver="this.bgColor='#FFFFCC'" onMouseOut="this.bgColor='#EEEEEE'">
          <td align="center" valign="middle"  class="textonoticias">28/9/2008</td>
          <td align="center" valign="middle"  class="textonoticias">3252</td>
          <td align="center" valign="middle"  class="textonoticias">Quiniela Palé Electr&oacute;nico</td>
          <td align="center" valign="middle"  >71 90 66 </td>
        </tr>
      </table>
    </div></td>
  </tr>
</table>
</body>
</html>
Que esta mal? porque esta guardado en .PHP


Título: Re: Problema con php para web con usuer y password.
Publicado por: Yeshua en 7 Octubre 2008, 16:56 pm
Hola de nuevo, bien tu  me dices esto:
Código:
Al acceder a la WEB > www.tupagina.com, o sea, INDEX.HTML> salta una POPUP pidiéndote el usuario y contraseña, VALIDACION.PHP, tengo un LOGIN.PHP donde tengo guardado los usuarios/contraseña, cuando pongo el usuario y contraseña si no tiene el código:
<?php
if(!($_SERVER["HTTP_REFERER"]==" index.php")){
echo "Área restringida";
exit();
}
?>
Me deja entrar, pero si lo pongo como de la siguiente forma, no me deja acceder porque me aparece "Área restringida";


Claro que no te va a dejar entrar, no tienes nada de tu codígo mal, solo que accedes desde una popup (como tambien es mi caso), por lo que no accedes desde index.php, sino desde VALIDACION.php , que es como se llama el popup, así claro que no te dejará. Tienes que poner este code:
Código
  1. <?php
  2. if(!($_SERVER["HTTP_REFERER"]==" VALIDACION.PHP")){
  3. echo "Área restringida";
  4. exit();
  5. }
  6. ?>

VALIDACION.PHP debe de conincidir exactamente con la direccion original, conservando mayusculas o minusculas.

Así creo que está solucionado, dime si es así.

Saludos.


Título: Re: Problema con php para web con usuer y password.
Publicado por: JammDesigner en 10 Octubre 2008, 14:27 pm
Pues no...no me funciona

index.html > llama a login_popup.php comprueba en login.php si el usuario y contraseña esta correcto, teniendo el codigo en la pagina correspondiente para cada usuario :

<?php
if(!($_SERVER["HTTP_REFERER"]==" login_popup.php")){
echo "Área restringida";
exit();
}
?>
No accede, sino que me envia al Área restringida
Sino lo tiene si que accede


Título: Re: Problema con php para web con usuer y password.
Publicado por: Yeshua en 10 Octubre 2008, 21:47 pm
No se asi como me cuentas... se me ocurre que login_popup.php esté alojada en otra carpeta a la de las demas, por eso no te lo lee. Prueba poniendolo si esta dentro de la carpeta así: privado/login_popup.php o poniendo la dirección completa de donde se encuentre ubicada.

Lo de que si no lo tiene si accede es normal, ya que de eso se trata, tampoco da errores en la sintaxis por lo que debe ser algo de lo que te comento.

A ver si ahora sí. Sino postea todos los codigos y su ubicación a ver si lo resuelves.

Saludos