Gå til innhold

Søke etter filer i katalog


Anbefalte innlegg

Jeg driver for tiden å lager et mini-brukersystem, og har kommet så langt at jeg skal inplentere en søkefunksjon.

 

Det jeg ønsker er et tekstfelt man fyller inn feks. "Kanin", og hvis filen "Kanin.php" fins i katalogen "id" så skal den include "kanin.php"

Hvis det ikke finnes en fil med det navnet du søker etter, så skal det komme en feilmelding.

 

Jeg aner ikke hvordan jeg skal lage dette, så jeg håper på hjelp herfra. :innocent:

Endret av lefsaker
Lenke til kommentar
Videoannonse
Annonse

PHP

<?php

 

echo " <form action='' method='GET'>

<input type='text' name='search'>

<input type='submit' name='Submit' value='Search'>

</form>";

 

 

 

if(isset($_GET['search']) && !empty($_GET['search']) ){

 $searchstring $_GET['search'];

 if(is_file("{$searchstring}.php"){

 include("{$searchstring}.php");

 }

 else{

 echo "Finner ikke filen!";

 }

?>

Lenke til kommentar

jeg hadde en lignende søkefunksjon på hjemmesiden min før. det scriptet har jeg fremdeles og kan legge det ut her når jeg kommer hjem.

 

i det scriptet kunne brukeren velge mellom tre mapper det skulle søkes i gjennom en drop-down-meny for så å skrive inn hva det skulle søkes etter. når en trukket på "Søk" søkte en etter en gitt streng i filene som lå i den undermappen en ville søke i.

 

dene herligheten er laget i php

Lenke til kommentar
<?php

echo " <form action='' method='GET'>
         <input type='text' name='search'>
         <input type='submit' name='Submit' value='Search'>
         </form>";



if(isset($_GET['search']) && !empty($_GET['search']) ){
$searchstring = $_GET['search'];
if(is_file("{$searchstring}.php"){
  include("{$searchstring}.php");
}
else{
echo "Finner ikke filen!";
}
?>

8427407[/snapback]

 

Får feilmelding når jeg prøver det:

Parse error: syntax error, unexpected '{' in C:\wamp\www\brukerstatus\search.php on line 12

Lenke til kommentar

nei, isset finner ut om indexen search er satt. Mens empty tester om variablen er tom. Vist du kutter ut isset og indexen ikkje er satt vil du ende opp med ein Notice: Undefined index.

 

Edit:

 

Du mangler } før else

 

PHP

<?php

if(isset($_GET['search']) && !empty($_GET['search']) ){

$searchstring $_GET['search'];

if(is_file("{$searchstring}.php"){

include("{$searchstring}.php");

}

}

else{

echo "Finner ikke filen!";

}

?>

Endret av Shadows0
Lenke til kommentar

holder vel med isset(). den må jo nødvendigvis være (empty() = false) dersom den ikke er satt.

 

jeg ville brukt:

 

if($searchstring = $_GET['search'])

{

...

}...

 

da setter du variabelen og sjekker at indexen er gyldig i $_GET['search']. jeg tror at variabelsetting returnerer verdien av variabelen. derfor sjekker dette også at den er ikke er tom. håper noen kan bekrefte dette.

Endret av grimjoey
Lenke til kommentar

Her er scriptet jeg har brukt for å søke i undermapper.

 

Klikk for å se/fjerne innholdet nedenfor

<?php //index @ serials

$tittel= "Einar's homepage: Scripts";

$content = "Einar Herstad-Hansen, ilpostino, postmann";

$keywords = "Einar Herstad Hansen, Einar, Herstad, Hansen, links, multimedia, search, download, warez, wares, crack, hack";

$description = "Welcome to mye homepage";

$tekst = "Search engine";

 

@include("../includes/head.inc");

?>

 

<script language="JavaScript">

function VerifyData() {

   if (document.SearchForm.search.value == "") {

     alert ("The search string cannot be empty.");

     return false;

   }

   else if (document.SearchForm.search.value == "*") {

     alert ("You cannot use * in the search string.");

     return false;

   }

   else

     return true;

 }

</script>

 

<?php

 

if ($_GET['action'] == 'search') {

$directory = opendir($_POST['Mappe']);

$filename = $_POST['filesearch'];

$Mappe = $_POST['Mappe'];

 

echo ("Your search for $Mappe in <i>$filename</i> returned these results: <p>");

 

while (false !== ($file = readdir($directory))) {

 $file_extension = strrchr($filename, '.');

 $filesplit = explode(".", $file);

 

     if(eregi($filename, $file)) {

   for($index = 0; $index < count($file); $index++) {

   echo("<a href=\"$Mappe/$file\">$filesplit[0]</a><br>");

  }

 }

   }

 

closedir($directory);

echo("<p>");

}

 

else if (!isset($_GET['action'])) {

 echo ("<p>Search strings containing vendor or complete name of program gives the more acurant search.</p>");

echo ("<p>If there are any serials you think I miss please mail them to me or notify me about it in any way.</p>");

echo ("<form method=\"POST\" action=\"$_SERVER[php_SELF]?action=search\" name=\"SearchForm\" onSubmit=\"return VerifyData()\">");

echo ("<table border=\"0\"><tr><th>Search string: </th><td><input type=\"text\" name=\"filesearch\" size=\"40\" maxlength=\"40\"></td>");

echo ("</tr><tr><th>Serial, KeyGen or Crack: </th><td>");

echo ("<select size=\"1\" name='Mappe'>");

echo ("<option value='serials'>Serials </option>");

echo ("<option value='cracks'>Cracks </option>");

echo ("<option value='KeyGen'>KeyGen </option>");

echo ("</select></td></tr><tr><td colspan=\"2\" align=\"center\"><input type=\"submit\"><input type=\"reset\"></th>");

echo ("</td></tr></table></form>");

}

 

@include("../includes/footer.inc");

?>

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å
×
×
  • Opprett ny...