Gå til innhold

Søke i en txt-fil


Anbefalte innlegg

Hei!

 

Jeg har søkt på forumet, vært på google, phpresource og hotscripts men ikke funnet det jeg har lett etter. Jeg skulle gjerne hatt et php script som ikke benytter seg av en database til å søkt gjennom en txt-fil. Innholdet i txt-filen er adskilt på hver linje, eks:

 

123

124

231

 

Skriver jeg så inn i en tekstboks 123 vil jeg få opp Ja, skriver jeg opp 222 får jeg opp Nei. Det må ikke være mulig å se hvilke data som ligger i txt-filen. Er det noen som vet om et slikt script eller kan hjelpe meg med litt kode? Jeg kan så og si ikke annet enn include i php så må ha i tilfelle ha ferdig koda kode.

 

Håper noen kan være så snill å hjelpe meg med dette. Jeg ville satt veldig pris på det!

 

mvh

ole

Lenke til kommentar
Videoannonse
Annonse

Skal det stå slik i koden min da eller:

 

<?PHP

$var = "123"; // verdi du leter etter

$innhold = file("filnavn.txt");

if(in_array($var, $innhold)){

echo "Okay";

}else{

echo "Nope";

}

 

?>

 

Jeg har jo et felt hvor jeg skriver inn data som jeg har kalt for sok: NAME="sok"

Så har jeg en knapp som jeg må trykke på for å utføre søket: <input type="submit" value="Utfør søk">

 

Hvordan kombinerer jeg det inn i den koden? Må jo være noe som skjer når jeg trykker på submit knappen på html siden, må jo gå til php koden eller noe, referere til den php snutten eller no?

 

Takk for all hjelp så langt!

Lenke til kommentar

Bytt ut $var = "123"; med $var = $_POST["sok"]; og sett action="sok.php" i formet ditt, og kall php-filen din for nettopp det.

 

EDIT:

 

sok.php:

 

<?php
$var = $_POST["sok"];
$innhold = file("filnavn.txt");
if(in_array($var, $innhold)){
echo "Okay";
}else{
echo "Nope";
}
?>

 

en eller annen html-fil:

<form action="sok.php" method="post">
<input type="text" name="sok" />
<input type="submit" value="Søk!" />
</form>

Endret av jorgenindahouse
Lenke til kommentar

Jeg har nå dette skrevet i en egen fil som jeg kaller for: sok2.php

 

<?php
$var = $_POST["sok"];
$innhold = file("tekstfil.txt");
if(in_array($var, $innhold)){
echo "Ja";
}else{
echo "Nei";
}
?>

 

Så har jeg dette skrevet inn i en html/php fil som jeg kaller for sok.php

 

<form action="sok2.php" method="POST">
<fieldset>
<legend><FONT color=#FFFFFF>Søk etter nick</FONT></legend>
<div class="fieldcontent">
<B>Sjekk om personen du skal angripe er alliert:</B>
<INPUT TYPE="text" NAME="sok" SIZE=30>
</div>
<input type="submit" value="Utfør søk" style="background:#FFFFFF; color:#000000;"> 
</fieldset>

 

Så har jeg dette liggende i en txt-fil som jeg kaller for tekstfil.txt (utdrag under):

 

Arne
Per
Ole
Siri

 

Problemet er at uansett hva jeg skriver får jeg opp alternativet: Nei

 

Noen som ser hva som er galt?

Lenke til kommentar

Sorry, glemte at du må bruke trim() på file ;)

 

<?php

$innhold = file("tekstfil.txt");

 

$finnes = false;

foreach(trim($innhold) as $a){

if($a == $_POST['sok']){

$finnes = true;

}

}

 

if($finnes){

echo "Ja";

}else{

echo "Nei";

}

?>

 

EDIT:

Bruk den du ;)

Endret av ????????
Lenke til kommentar

Hehe jeg skjønner ikke om jeg får feil kode vet du, tror det bare er jeg som har rota og gjort feil.

 

Bytta nå ut sok2.php koden min som står i posten min over med den php koden du skrev. Da fikk jeg denne feilmeldingen:

 

Warning: Invalid argument supplied for foreach() in /mnt/home4/h/hd/hdallan/public_html/sok2.php on line 5

Nei

 

Søkte da på et string som var der.

Lenke til kommentar

Oki. Det betyr at foreach() ikke takler å få funksjoner inni seg (tror jeg).

 

Bytt ut

$innhold = file("tekstfil.txt");

$finnes = false;
foreach(trim($innhold) as $a){

 

med

 

$innhold = file("tekstfil.txt");
$innhold = trim($innhold);
$finnes = false;
foreach($innhold as $a){

 

så skal alt gå greit.

Lenke til kommentar
Du kan ikke gjøre sånn:

$innhold = trim($innhold);

Dette blir mer riktig:

$innhold = array_map("trim",$innhold);

Absolutt, du har helt rett... da kan du også gå tilbake til in_array()

Ikke helt min dag i deg, jobber med for mange scripts samtidig ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...