Avatar billede mmmtm Nybegynder
24. marts 2004 - 09:31 Der er 6 kommentarer og
1 løsning

tilføje password i text fil

Jeg bruger flg. script til en simpel login. Brugernavn er altid "x" - og password ligger i filen users2u.txt
Hvordan tilføjer jeg flere passwords til x i users2u.txt - jeg kan simpelthen ikke finde syntaksen !. (kender intet til php, har copy/pastet koden for år tilbage)
<?php
    if (count($HTTP_POST_VARS)>1){
        $bruger = $_REQUEST["bruger"];
        $kode = $_REQUEST["kode"];

        $brugerkode = $bruger.":".$kode.";";

        $filnavn = "users2u.txt";

        $fil = fopen($filnavn,"r");

        $sang = "";

        while(!feof($fil)){
            $fildata = fgets($fil,1024);
            $sang .=$fildata;

        }//

        fclose($fil);

        if (strpos($sang,$brugerkode)>-1){
            $filnavn = "index2.html";
        }else{
            $filnavn = "fejl.html"; //hvis der er fejl i kode eller brugernavn
        }//   
       
    }else{

        $filnavn = "login.html";
    }//

    $fil = fopen($filnavn,"r");

    $htmltekst = "";

    while(!feof($fil)){
        $fildata = fgets($fil,1024);
        $htmltekst .=$fildata;
    }//

    fclose($fil);

    echo $htmltekst;
?>
Avatar billede tefcke Nybegynder
24. marts 2004 - 10:23 #1
I php 5 kommer der en metode file_put_contents(), men ind til da kan du bruge:
<?php
if (!function_exists('file_put_contents')) {
  define('FILE_APPEND', 1);
  function file_put_contents($filename, $content, $flags = 0) {
      if (!($file = fopen($filename, ($flags & FILE_APPEND) ? 'a' : 'w')))
          return false;
      $n = fwrite($file, $content);
      fclose($file);
      return $n ? $n : false;
  }
}
?>

Når du skal skrive noget til din fil gør du flg.:
file_put_contents($filename, $content);
eller
file_put_contents($filename, $content, 0); // Sletter alt i filen og skriver $content

file_put_contents($filename, $content, 1); // Tilføjer $content i slutningen af filen
Avatar billede mmmtm Nybegynder
24. marts 2004 - 12:34 #2
Nej - misforstået. Jeg skal ikke skrive til filen via php, der skriver jeg direkte via notesblok. Pt står der i filen users2u.txt blot:
x:password
jeg skal tilføje et password til x, fx. x:password; password2 (så der på samme bruger kan logges ind med forskellige passwords).
Det er syntaksen til dette jeg ikke kan lure - har prøvet med linjeskift, semikoloen, kolon, komma - men intet virker.
Avatar billede tefcke Nybegynder
24. marts 2004 - 13:39 #3
Hvis du har en bruger som hedder: xyz og har passwordet abc skal det stå som:
xyz:abc;

hvis du vil tilføje endnu et password til samme bruger skal du angive den samme bruger flere gange i filen (samme bruger med passwordet def):
xyz:abc;
xyz:def;

Sådan ser det ud som om det er opbygget!
Avatar billede mmmtm Nybegynder
24. marts 2004 - 13:51 #4
Nej, det er prøvet og fungerer ikke.
Det mest irriterende er at jeg har haft det til at fungere for et år tilbage, men jeg kan simpelthen ikke komme på den rette syntaks !
Avatar billede tefcke Nybegynder
24. marts 2004 - 16:02 #5
Det burde altså virke:
[1] - $brugerkode = $bruger.":".$kode.";";
Laver en streng: x:abc;

[2] -
while(!feof($fil)){
    $fildata = fgets($fil,1024);
    $sang .=$fildata;
}
Putter alt fra filen ind i $sang

[3] - strpos($sang,$brugerkode)
Leder efter positionen hvor $brugerkode optræder i $sang.
Avatar billede mmmtm Nybegynder
24. marts 2004 - 19:10 #6
Jep, men det gør'et ikke !.
Skriver jeg som foreslået virker det første pw, men ikke det efterfølgende.
Jeg mener faktisk at det var sådan jeg gjorde for lang tid tilbage - kan det være en serverindstilling ???
Avatar billede mmmtm Nybegynder
13. januar 2005 - 22:09 #7
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester