PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Frage zu Einbinden von Bedinungen über fread (http://www.selfphp.de/forum/showthread.php?t=3650)

TzTz 13.03.2003 23:29:04

Frage zu Einbinden von Bedinungen über fread
 
Es sieht aus wie folgt:

Ich wollte machen, dass man zum news posten einen namen und ein passwort eingeben muss... jetzt wollte ich aber den admins erlauben selbst user zu adden, ohne in der PHP datei rumzuwerkeln, also hab ich ne members.dat datei gemacht und lasse da jedes mal über forms addn (wenn ein admin auf das will)

||($user==$user_eingabe && $password==$password_eingabe

die variablen xxx_eingabe werden schon vorher über das formular beschafft!

und das ganze file wollte ich jetzt in nem php file als bedingung benutzen, so in der art

$members_file=fopen("members.dat","r");
$members=fread($members_file,filesize("members.dat"));
if($members)
dann... also dann soll eben der news post screen auftauchen, sonst soll da stehen flasches passwort oder unbekannter user...


MEIN PROBLEM:

wie schaffe ich es diese .dat datei als bedingung einzubinden und wenn es nicxht möglich ist: WIE MACHE ICH ES DANN (bei foren geht es ja auch irgendwie ^^)



ach und wo ich grad dabei bin: wie würde ich es in dfiesem fall dann schaffen einen bestimmten user wieder zu löschen?

bzw. einen bestimmten newseintrag., wobei die news auch einfach komplett in eine dat file geschreiben und dann eingelesen werden... oder muss ichmir new ganz andere variante einfallen lassen!? wenn ja bitte welche?

c4 14.03.2003 06:30:53

Hast Du Lust auf mySQL? :) Empfiehlt sich, bei solchen Dingen, wie Nutzerverwaltung.

Ein Tipp noch vorweg: Du solltest die Nutzer besser in der Datei members.php speichern. Wenn jemand versucht diese Datei zu öffnen wird sie vom Interpreter geparst und der Besucher erfährt nicht den Inhalt.

PHP-Code:

if ($user==$user_eingabe && $password==$password_eingabe)
 {
  
$fh=fopen("members.php","r");
....
  
fclose($fh);
  
// irgendwelche Ausgaben etc.
 


Somit wird das ganze Adminzeugs nur nach erfolgreichem Login angezeigt. Ich würde nicht sagen, dass Nutzername und/oder Passwort falsch ist/sind, da man Angreifern somit ein wenig den Wind aus den Segeln nimmt.

Zum Löschen. Ich gehe mal davon aus, dass jedem Nutzernamen eine Zeile zusteht. Das sollte klappen:
PHP-Code:

<?php
 $members
=file("members.php");
 
$i=0; while($i<count($members))
  {
   if (
trim($members[$i])==$nutzerdergeloeschtwerdensoll)
    { unset(
$members[$i]); }
   
$i++;
  }
 
 
$fh=fopen("members.dat","w");
  
fwrite($fhjoin("n"$members));
 
fclose($fh);
?>

Erst werden alle Nutzer in ein Array gepackt und dann durchgegangen, wo sich der Delinquent befindet. Wird er gefunden war's das mit ihm.
Anschließend werden die übrigen Nutzer wieder gespeichert.


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:19:55 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.