Foros del Web » Programando para Internet » PHP »

pekeño problemilla con un pekeño codigo php

Estas en el tema de pekeño problemilla con un pekeño codigo php en el foro de PHP en Foros del Web. bueno .. alguien puede decirme porque no me funciona este codigo: <?php // Manual de PHP de WebEstilo.com if (($PHP_AUTH_USER!="Joe") || ($PHP_AUTH_PW!="123")) { header('WWW-Authenticate: Basic ...
  #1 (permalink)  
Antiguo 05/01/2009, 03:44
 
Fecha de Ingreso: julio-2008
Mensajes: 258
Antigüedad: 15 años, 9 meses
Puntos: 9
pekeño problemilla con un pekeño codigo php

bueno .. alguien puede decirme porque no me funciona este codigo:

<?php // Manual de PHP de WebEstilo.com
if (($PHP_AUTH_USER!="Joe") || ($PHP_AUTH_PW!="123")) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}
?>
<!-- Manual de PHP de WebEstilo.com -->
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Ha conseguido el acceso a la <B>zona restringida</B>.
</body>
</html>


Lo que hago es subir la pagina al servidor Web, luego intento entrar y me sale el formulario de usuario y pass, marco usser Joe y pass 123, pero me salta de nuevo el formulario, y asi una y otra vez.
Otra pregunta. ¿es seguro ese codigo?
  #2 (permalink)  
Antiguo 05/01/2009, 04:52
 
Fecha de Ingreso: noviembre-2008
Mensajes: 85
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: pekeño problemilla con un pekeño codigo php

Supongo que lo que quieres es iniciar una sesión y que con el password y nick correspondiente tengas acceso restringido. Este código es bastante útil, te hace lo que quieres, con sólo susutituir el password y nick a los que quieres dar acceso.

http://www.rincondelcodigo.com/ver.php?var=241&num=127
  #3 (permalink)  
Antiguo 05/01/2009, 05:43
 
Fecha de Ingreso: julio-2008
Mensajes: 258
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: pekeño problemilla con un pekeño codigo php

Si, pero no podrias poner el codigo directamente aqui para que cualquier socio de "Foros del web" lo pudiera ver. Es que para verlo hay que registrarse en el rincon del vago.
  #4 (permalink)  
Antiguo 05/01/2009, 05:49
Avatar de Jofsen  
Fecha de Ingreso: diciembre-2008
Ubicación: Alicante - España
Mensajes: 56
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: pekeño problemilla con un pekeño codigo php

Ese código sólo te funcionará si PHP está instalado como módulo de apache. Seguramente en el server que dices no es el caso.

"The HTTP Authentication hooks in PHP are only available when it is running as an Apache module and is hence not available in the CGI version."(http://www.php.net/manual/en/features.http-auth.php)
  #5 (permalink)  
Antiguo 05/01/2009, 05:49
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: pekeño problemilla con un pekeño codigo php

No te funciona porque requiere register_globals a ON. Y eso es mala idea, mas info en www.php.net/register_globals .

Para que funcione con register_globals a Off tienes que cambiar $PHP_AUTH_USER y $PHP_AUTH_PW por su correspondiente array superglobal.
  #6 (permalink)  
Antiguo 05/01/2009, 05:53
 
Fecha de Ingreso: julio-2008
Mensajes: 258
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: pekeño problemilla con un pekeño codigo php

Hola amigos en cuanto a la respuesta de que mi server no tiene php, si tiene php incluido, es decir yo tengo en mi panel de control myPhpadmin etc.
y en cuanto a lo de cabiar registers_globals, nose ni lo que es...
  #7 (permalink)  
Antiguo 05/01/2009, 06:21
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: pekeño problemilla con un pekeño codigo php

Como ya han dicho, la autentificación HTTP solo funciona si PHP está configurado como módulo de Apache.
Por si es así, para que te funcione esté como esté el register_globals, el código sería:
Código PHP:
// En lugar de:
// $PHP_AUTH_USER
// deberías usar
$_SERVER['PHP_AUTH_USER']
// y en lugar de
// $PHP_AUTH_PW
$_SERVER['PHP_AUTH_PW'
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!
  #8 (permalink)  
Antiguo 05/01/2009, 06:36
 
Fecha de Ingreso: julio-2008
Mensajes: 258
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: pekeño problemilla con un pekeño codigo php

Cita:
Iniciado por santhy Ver Mensaje
Como ya han dicho, la autentificación HTTP solo funciona si PHP está configurado como módulo de Apache.
Por si es así, para que te funcione esté como esté el register_globals, el código sería:
Código PHP:
// En lugar de:
// $PHP_AUTH_USER
// deberías usar
$_SERVER['PHP_AUTH_USER']
// y en lugar de
// $PHP_AUTH_PW
$_SERVER['PHP_AUTH_PW'
Entonces es lo mismo que yo puse arriba del todo con mi pregunta... por lo que no se lo que tengo mal y elporque de k no funciona y lo mas importante como pueo resolverlo.
  #9 (permalink)  
Antiguo 05/01/2009, 07:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 85
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: pekeño problemilla con un pekeño codigo php

Código PHP:
session_start();
include(
"conexion_base_datos.php"); 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>rincondelcodigo.com</title>
</head>
<body>

Código PHP:
if (($_POST['nick']!="") && ($_POST['password']!="")){
$registros=mysql_query("select xxx_elnick,xxx_elpassword from   
                        xxx_los_registrados"
,$conexion) or
die(
"Problemas en el select:".mysql_error());  
$verificacion=1;
while (
$reg=mysql_fetch_array($registros)){
if ((
$reg['xxx_elnick']==$_POST['nick']) && ($reg['xxx_elpassword']==$_POST['password'])){
$verificacion=$verificacion+1;
$nick=$_POST['nick']; 
$_SESSION['estado']="$nick";
echo 
"bienvenido"
}}}  if  (
$verificacion==1){ 
<form action="1.php" id="thisform" method="post">
<?php echo "Datos no validos<br>"; ?>
usuario:
<input type="text" name="nick" size="25" tabindex="1" id="name" value="
Código PHP:
 if (isset($_POST['nick'])) echo $_POST['nick']; 
" /><br>
clave:
<input type="password" name="password" id="password" size="25" tabindex="2" value="
Código PHP:
 if (isset($_POST['password'])) echo $_POST['password']; 
"/><br>
<input type="submit" value="login" class="button" tabindex="4" />
</form>
Código PHP:
 } if (($_POST['nick']=='') || ($_POST['password']=='')){ 
<form action="1.php" id="thisform" method="post">
<?php echo "Rellena los 2 campos<br>"; ?>
usuario:
<input type="text" name="nick" size="25" tabindex="1" id="name" value="
Código PHP:
 if (isset($_POST['nick'])) echo $_POST['nick']; 
" /><br>
clave:
<input type="password" name="password" id="password" size="25" tabindex="2" value="
Código PHP:
 if (isset($_POST['password'])) echo $_POST['password']; 
"/><br>
<input type="submit" value="login" class="button" tabindex="4" />
</form><?php } ?>
</body></html>
  #10 (permalink)  
Antiguo 09/01/2009, 08:44
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: pekeño problemilla con un pekeño codigo php

Cita:
Iniciado por winjose Ver Mensaje
Entonces es lo mismo que yo puse arriba del todo con mi pregunta... por lo que no se lo que tengo mal y elporque de k no funciona y lo mas importante como pueo resolverlo.
NO es lo mismo.
En mi ejemplo (todo lo que empieza por // son comentarios) se utiliza la variable superglobal $_SERVER, que es el lugar en donde está el valor de PHP_AUTH_USER y PHP_AUTH_PW.
$PHP_AUTH_USER y $PHP_AUTH_PW solo están disponibles en entornos muy concretos (y cada vez menos).

El sistema de urruju es bastante más productivo y seguro (aunque debería no haber copiado-pegado sin haberlo metido dentro de un [ PHP ] o [ CODE ] para que pudieses probarlo con facilidad.
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!
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 01:18.