Avatar billede limbloogie Nybegynder
11. juni 2004 - 13:13 Der er 14 kommentarer

php script til at checke om navnet er brugt i en txt fil

hej..
er ikke super god til php og mangler en script.
den skal gå ind i en txt fil og checke om et navn er brugt.
en af txt filerne ser sådan ud:
usertxt=benmin&passtxt=hansen

det er så usertxt den skal checke og skrive en variable tilbage til flash hvis den er taget... nogen der kan hjælpe?
Avatar billede dennismp Nybegynder
11. juni 2004 - 13:18 #1
function user_exists($checkusername) {
  @users = file('users.txt');
  foreach($users as $line) {
    $pairs = explode('&',$line);
    list($field,$username) = explode('=',$paris[0]);
    if( $username == $checkusername) {
      return true;
    }
  }
  return false;
}

if( user_exists('benmin') ) {
  print "brugeren findes";
}
else {
  print "brugeren findes ikke";
}
Avatar billede limbloogie Nybegynder
11. juni 2004 - 13:42 #2
hmm... okey jeg er lidt lost..
$checkusername er den variable den henter fra flash og checker ik?
og $username er den den skal checke i txt filen?
hvordan er det jeg feks. sætter den til at den skal "print" til $status i min flash?
ja jeg er beginner..
Avatar billede dennismp Nybegynder
11. juni 2004 - 13:58 #3
Sådan her bruger du funktionen (har lige rettet en fejl)

function user_exists($checkusername) {
  $users = file('users.txt');
  foreach($users as $line) {
    $pairs = explode('&',$line);
    list($field,$username) = explode('=',$paris[0]);
    if( $username == $checkusername) {
      return true;
    }
  }
  return false;
}

Sådan her bruger du funktionen:

if( user_exists('benmin') ) {
  // Gør  noget hvis brugeren findes
  print "status=findes";
}
else {
  // Gør noget andet her
  print "status=ok";
}


.. $checkusername er brugeren vi søger efter i users.txt
.. det gør vi ved at læse hele filen ind og gå igennem linjerne een efter een.
.. "linjens" brugernavn hedder $username. Funktionen returnere true hvis vi finder brugeren ,ellers ikke.
Avatar billede limbloogie Nybegynder
11. juni 2004 - 14:09 #4
$users = file('users.txt');
hvis jeg nu bil ha at den skal finde txt file på denne måde : $pairs.txt skal jeg så skrive: $users = file($pairs'.txt');

også ved if( user_exists('benmin') bare if( user_exists($pairs) istedet?

det virker ihvertifalde ik sådan for den reagerer ikke ved min status i flash filen..
Avatar billede dennismp Nybegynder
11. juni 2004 - 14:13 #5
Prøv at forklare hvad du vil?

Det kode du har lavet virker lidt underligt. Hvis $pairs er 'dennis' .. så skal den åben dennis.txt og søge efter dennis i den?
Avatar billede limbloogie Nybegynder
11. juni 2004 - 14:15 #6
netop.. i princippet kan den også bare checke txt filnavnet..
hvis filen findes skal den sige "navnet findes" i min status i flash, hvis ikke skal den sige "navnet findes ikke"
Avatar billede dennismp Nybegynder
11. juni 2004 - 14:18 #7
sådan her?

$brugernavn = 'dennis';

if( file_exists($brugernavn . '.txt') )
  print "status=" . urlencode("navnet findes");
else
  print "status=" . urlencode("navnet findes ikke");
Avatar billede limbloogie Nybegynder
11. juni 2004 - 14:25 #8
det er $brugernavn der skal afgøre hvad navnet er.. man skriver navnet i flash i en textfield og det afgør $brugernavn.

den skal så skrive resultatet tilbage til flash til en textfield der hedder status.

ellers den kode du lige gav virker heller ik.. selvom man bare fjerner: $brugernavn = 'dennis';
Avatar billede sukos Juniormester
12. juni 2004 - 06:45 #9
Nu ved jeg ikke hvor du har status feltet liggende, eller om det er en fil eller et ord i en fil du vil finde :O), men en måde at finde et ord i en fil, kan også være så'n:

<?php
function find_word($var, $path) { // $var er det der skal findes. $path er filnavn, evt. med den fulde sti.

$fil = file_get_contents($path);
$tjek = strpos($fil, $var);

    if($tjek === false) {
    return false;
    }else{
    return true;
    }
}

if(true == find_word("usertxt=benmin", "find_ord.txt")) {
echo"_root.status=Navnet blev fundet!";
}else{
echo"_root.status=Navnet blev IKKE fundet!";
}

?>
Avatar billede sukos Juniormester
12. juni 2004 - 06:47 #10
Eller, hvis du submitter fra en form,

if(isset($_POST["navn"]) && trim($_POST["navn"]) !="") {

if(true == find_word("usertxt=". trim($_POST["navn"]), "find_ord.txt")) {
echo"_root.status=Navnet blev fundet!";
}else{
echo"_root.status=Navnet blev IKKE fundet!";
}
}
Avatar billede dennismp Nybegynder
12. juni 2004 - 11:45 #11
limbloogie:
Du kan heller ikke bare fjerne kode :-)

prøv med:

$brugernavn = $_REQUEST['navnet-på-brugerfelt-i-flash'];

if( file_exists($brugernavn . '.txt') )
  print "status=" . urlencode("navnet findes");
else
  print "status=" . urlencode("navnet findes ikke");
Avatar billede limbloogie Nybegynder
12. juni 2004 - 14:20 #12
okey fik det til at du med det her:

$status     = $_POST["status"];
$user      = $_REQUEST['user'];

if( file_exists($user . '.txt') )
  print "status=" . urlencode("navnet findes");
else
  print "status=" . urlencode("navnet findes ikke");

så taks for hjælpen...
Avatar billede limbloogie Nybegynder
12. juni 2004 - 14:25 #13
hvordan giver man point til den man vil?
Avatar billede dennismp Nybegynder
12. juni 2004 - 14:37 #14
$status    = $_POST["status"];

dette burde være overflødigt..

Du giver points ved at vælge de svar du mener der har fortjent det.. Men det kræver folk ligger svar og ikke kommentarer - så du får lige et svar fra mig.
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