auda por favor

lola
24 de Junio del 2005
necesito hacer una pagina que tenga un usuario y una contreseña, mis problemas son dos: uno como necesito solo hacer esto no creo que sea necesario un bd, entonces donde guardo los usuarios y las contraseñas ( son como 7 )
y segundo como hago esto con php, es decir guardo una sesion, hago un archivo, etc
por favor si alguin me puede audar
se lo agradezco muchoooooo

Loop
24 de Junio del 2005
Lo mejor es hacerlo con base de datos y encripatación de usuario y contraseña ! si dices que solo son 7 o "como 7", podrías hacer un fichero php para guardar estas contraseñas y el nombre de usuario correspondiente, bien podría ser por medio de un array dividiendo al usuario y contraseña por un carácter especial, es importante recalcar que el tema de la seguridad de una página es lo más importante, y no se puede tomar tan a la ligera, si querés algo simple,

fichero de contraseñas
<?php
# lista de usuarios, y bla bla bla
$contrasenias=array("mi_user/mi_contraseña","mi_otro_user/su_contraseña");
?>

validar usuario
<?php
session_start();
include("config.php");
$validado=false;
if($_POST['user'){
$user=$_POST['user'];
$pass=$_POST['pass'];
$count=count($contrasenias);
for($i=0;$i<$count;$i++)
{
list($us,$pa)=split("/",$contrasenias[$i]);
if($user=$us && $pass==$pa)
{
$validado=true;
$_SESSION['mi_sesion']['es_usuario']=$us;
}
}
}
if(isset($_SESSION['mi_session']['es_usuario'])){$validado=true;}

if($validado===true)
{
echo "Bienvenido ". $_SESSION['mi_sesion']['es_usuario'];
}
?>

Es sencillo, se genera un array con el nombre de los usuarios y sus contraseñas, el contenido de este array no tiene límite por lo que pueden ser 10, 20 1000 o más,
Se Inicializa la variable $validado=false; esto para evitar que un usuario use algo como index.php?validado=1
ya que uno tiene un valor daría como resultado $validado=true; en caso de register_globals=On,
se realiza un bucle de control interante for, en el que se lista a dos variables, usuario y contraseña que son separadas por una diagonal con la función split, y posteriormente se valida, con la sentencia if , si hay que dejar muy en claro que NO es una forma adecuada de manejar datos importantes pero sí puede servir en casos simples. Suerte si por ahí me falló algo es pq no vi su funcionamiento, lo hize acá, Saludos y Suerte..!! :D

loop
24 de Junio del 2005
Perdón , la segunda parte del código tiene tres errores de sintaxis. ok olvida todo lo que puse de código aquí está más sencillo =P ( sin espacios en blanco ni líneas en blanco antes de este código .....
<?php
session_start();
$contrasenias=array("mi_user/mi_contraseña","mi_otro_user/su_contraseña");
$validado=false;
if($_POST['user']){
$user=$_POST['user'];
$pass=$_POST['pass'];
$count=count($contrasenias);
for($i=0;$i<$count;$i++)
{
list($us,$pa)=split("/",$contrasenias[$i]);
if($user==$us && $pass==$pa)
{
$validado=true;
$_SESSION['mi_sesion']['es_usuario']=$us;
}
}
}
if(isset($_SESSION['mi_sesion']['es_usuario'])){$validado=true;}

if($validado===true)
{
echo "Bienvenido ". $_SESSION['mi_sesion']['es_usuario'];
}
else
{
?>
<form method="post" action="<?=$_SERVER['PHP_SELF'];?>">
<input type="text" name="user" />
<input type="password" name="pass" />
<input type="submit" value="entrar" />
</form>
<? } ?>

Ahora sí lo prové y anda ok :p suerte

lola
24 de Junio del 2005
gracias por la info, pero te hago una pregunta
este php, esta en la misma pagina que el fomr??
porque de ser asi me pasaria lo mismo que me pasa ahora con javascrip, con el boton derecho vez el codigo y sacas los usuarios y contraseñas, es asi??

y otra cosa que no se ya qeu soy nueva en php, que es lo que pusiste en action =, disculpame pero yo la unica vez que hice algo ahi llame al php que validad, y desconozco que es lo uqe hace esa instruccion

nuevamente muchas gracias
y espero tu respuesta

Loop
24 de Junio del 2005
No php se ejecuta en el servidor no en la máquina del usuario,

el usuario accede a una página, haciendo el requerimiento,
el servidor "ve" qué tipo de información es la que se desea ejecutar si el archivo tiene extención ".php" manda el archivo al intérprete php y éste a su vez regresa al servidor como simple código HTML en este caso, es decir que jamás podrá un usuario dar clic con el botón derecho del mouse y ver el source php de la página , jejejeje para nada, de tal forma que deja de preocuparte que el código es 99% seguro.

En lo que te refieres a el "action" del formulario, am, en palabras sencillas :

si tú al código lo guardas como "mi_pagina.php"

el formulario tendrá como destino "mi_pagina.php"

De igual manera que si lo llámases de otra forma,

Sencillamente es para eso.

Y te recomiendo que descarges el manual de php CHM que está disponible en español en la siguiente dirección viene muy explicativo el formato es (html help)

http://mx.php.net/get/php_manual_es.chm/from/a/mirror

Saludos y suerte... !

lola
24 de Junio del 2005
tenes razon mi pregunta fue bastante tonta, pero decime
por un lado hago un archivo php, que se llama clave.php y ese va a tener los usuarios y claves, ok??

y por otro hago la pagina que tiene el form, tambien php, que tiene el codigo php que me mandaste en el segundo mail, si??

ahora bien,eso es lo que hice y me da el siguiente error:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:appservwwwlistas.php:120) in c:appservwwwlistas.php on line 157

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:appservwwwlistas.php:120) in c:appservwwwlistas.php on line 157

sabes qeu puede ser, donde inicio la sesion
muchas gracias nuevamente, y tengo que sacar esto hoy, tengo un manual en mis manos, pero bueno me explica lo de sesion , pero solo eso; y no se bien como aplicarlo

Loop
24 de Junio del 2005
Como te lo dije desde un principio, debes insertar el código al inicio del sript sin una sola línea de código HTML antes de,
session_start(); debe de ser llamada ANTES de que se produzca una salida al navegador no tiene que existir nada html antes de esto para que funcione, presisamente por eso te manda el error "headers already sent", que indica que ya fueron enviadas las cabeceras, por lo que esta variable ahora es inservible...

Loop
24 de Junio del 2005
Mejor agrégame a tus contactos de msn, :S [email protected] por allá te digo qué onda !!

lola
24 de Junio del 2005
tiene algo que ver eso con lo que tengo configurado que me muestra el phpinfo, porque en sessionauto_start en ambos me dice off
si es asi como lo modifico?
si te pregunte cualquier pavada, disculpame
gracias