Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/05/2007, 15:50
lerogke
 
Fecha de Ingreso: mayo-2007
Mensajes: 6
Antigüedad: 17 años
Puntos: 0
Borrar/modificar determinada linea de un archivo

Hola a todos.
A ver si consigo explicarme con claridad.
El objetivo es realizar algo similar a un sistema de usuarios pero sin usar ninguna base de datos.
Tengo los usuarios, con sus respectivas contraseñas y nivel de acceso en un fichero llamado "usuarios.dat" los cuales se meten por un formulario ( nivel por defecto 1). Asi dentro del archivo nos encontramos con:

gelin#%#4be3a1b4b06f2fe9e47c8f24b7164def#%#gelin#% #Nivel:1

Ahora llega el asunto que me trae desde hace varios dias por la calle de la amargura :)
El objetivo es suponiendo que he entrado como administrador, poder modificar el nivel de acceso de un nick que escriba y se encuentre en el archivo asi como tambien poder borrarlo.
Les muestro el codigo:

- Aqui el administrador ingresaria el nick

formbaja.php

<html>
<head>
<link rel="stylesheet" type="text/css" href="./style2.css"/>
</head>

<body>
<table border="0" cellspacing="3" cellpadding="3" width="60%"></table>
<div id="contenido">
<form method="post" action="modificar.php">
<table border="0" cellpadding="1" cellspacing="3">
<tr>

<h2 align="left">Baja Usuarios</h2>
</tr>
<tr>
<td class="Texto" align="right">Nick: </td>
<td class="Texto"><input type="text" name="nick" value="" size="10" class="Boton" maxlength="10"></td>
</tr>
<tr>
<td align="right" class="Texto"><input type="submit" name="enviar" value="Aceptar"
class="Boton"></td>
<td align="left" class="Texto"><input type="reset" name="borrar" value="Borrar"
class="Boton"></td>
</tr>
</table>
</form>


<?
$archivo = file("usuarios.dat"); //creamos el array con las lineas del archivo
echo "<div align=\"left\">";

$lineas = count($archivo); //contamos los elementos del array, es decir el total de lineas
echo "<b>Lista de usuarios registrados: </b><br>";
for($i=0; $i < $lineas; $i++){
$linea= explode("#%#", $archivo[$i]);
$m = $i + 1;
echo "$m. $linea[0]</br>";
}
echo "</div";

?>

</div>
</body>
</html>

- Aqui seria donde procesa:

baja.php

<?


include("config.php");
include("funciones.php");

// si entramos por el formulario de logeo
if (isset($_POST['nick']) && isset($_POST['clave'])) {

$nick = stripslashes($_POST['nick']);
// encriptamos la clave
$clave = md5($_POST['clave']);

// recogemos en un array las lineas del archivo de usuarios
$info = file($fusuarios);

// validamos el nick
if (validar($info, $nick, 0) < 0) {
header("Location: falloregistro.php?num=0");
exit;
}

// si el nick ha sido validado correctamente pasamos a la clave y recogemos
// el identificador del usuario en id (sera la posicion que ocupe en el fichero
if (($id = validar($info, $clave, 1)) < 0) {
header("Location: falloregistro.php?num=1");
exit;
}

//PARA BORRAR USUARIOS

$lineas = count($archivo); //total de lineas

for($i=0; $i < $lineas; $i++) //Recorremos todo el fichero
{

$busqueda= stristr($archivo[$i], $nick); //si encontramos el nick
if
{
$busqueda == $nick

$m = $i + 1;

else

}
echo "</div";
//////////////////////////////////////////////
header("Location: miembros.php");
exit;

} else {
// si entramos directamente a la pagina le redireccionamos al index
header("Location: index.php");
exit;
}

?>


Eso es todo lo que he podido hacer, creo (espero) que solo me falta un par de lineas.

Alguna idea,sugerencia?

Muchas gracias de antemano a todos y perdon por el ladrillo ;)