Printable Version of Topic

Click here to view this topic in its original format

HTMLHelp Forums _ Server-side Scripting _ search directory for a file

Posted by: antamr904 May 4 2012, 07:54 AM

hi all,

i am very new to html and any web scripting lang so please be patient with me.

what i am trying to accomplish is:

i have a basic html page with a text box and a search button.

i would like for the user to type a computer name in the text box field then hit search

the search button would:

search a local directory called (inv) for a txt file named %computername%.txt on the web server then display the contents of that txt file in a iframe.

again i am very new to any type of web scripting language, please let me know if this can be accomplished any other way.

thank you in advance!!

here is what i have so far:

<html>
<body>
<center>
<h1>Computer Inventory</h1>
</center>
<br>
<br>
<br>
<h3>Search</h3>
Computer Name:
<br>
<input type="text" name="SearchInv" size="50">
<input id=runbutton class="button" type="button" value="Find" name="run_button" onClick="RunScript">
<br>
<h3>Here is the computers inventory:</h3>
<iframe src="inv/0171afaugno.txt" width="1000" height="500" align="left">



</body>

</html>



Posted by: pandy May 4 2012, 08:05 AM

A site can't actively search the user's hard drive. If you mean a Browse button, it does just that, lets the use browse his own drive for files to upload. It's created with <input type="file"> .
http://htmlhelp.com/reference/html40/forms/input.html

Posted by: antamr904 May 4 2012, 08:09 AM

QUOTE(pandy @ May 4 2012, 09:05 AM) *

A site can't actively search the user's hard drive. If you mean a Browse button, it does just that, lets the use browse his own drive for files to upload. It's created with <input type="file"> .
http://htmlhelp.com/reference/html40/forms/input.html


thank you for your reply.

i don't want to search the users hd, i want to search a local directory called (inv) on the iis server then display the contents of the txt file in a iframe.


Posted by: pandy May 4 2012, 12:11 PM

Sorry, I misunderstood.

Posted by: antamr904 May 4 2012, 01:59 PM

any help will be greatly appreciated.

basically on my web server there is a folder called (inv) with a bunch of txt files named (%computername%.txt

i would like to create a text search box so all i have to do is type the computer name in the text box > hit search > and the content of that txt file is displayed in a iframe.

Posted by: Christian J May 4 2012, 06:32 PM

Which server-side scripting languages can you use?

Assuming that the user has submitted a real HTML form, you might use PHP http://php.net/manual/en/function.file-exists.php to check if the searched file exists, and then http://php.net/manual/en/function.file-get-contents.php to read its content and print on the form result page (or in a framed page, though I don't see the point with that).

Note that when searching for a computer name, any typo may affect the search result. Also the user must spend time typing. Why not list all the files in the directory (say as a list of links) instead? This can be done with e.g. http://php.net/manual/en/function.scandir.php

Posted by: Ephraim F. Moya May 4 2012, 10:22 PM

In php there is an instruction called file_exists( 'filename.and.type' ) which just returns a true or false if the 'fliename.and.type' file exists.

This can be used to implement a search for the desired file.

if( file_exists( '/path/to/inv/file2.txt' ) )
{
perform whatever;
}

Posted by: antamr904 May 8 2012, 10:05 AM

thank you all for your response, but how would i get the computer name that the user entered as a variable and add that to the search function??

again i am very new to any type of web development.

Posted by: Christian J May 8 2012, 01:55 PM

See http://www.php.net/manual/en/tutorial.forms.php

Posted by: antamr904 May 8 2012, 02:38 PM

thanks again all,

one more question

with the - if (file_exists) how can i redirect to anther page if the file the user typed in DOES NOT exist?


Posted by: Christian J May 8 2012, 05:02 PM

You can send a redirect with the PHP header() function.

Posted by: Ephraim F. Moya May 9 2012, 05:32 PM

QUOTE(Christian J @ May 8 2012, 04:02 PM) *

You can send a redirect with the PHP header() function.


No Need! Just send an ack page or a try again page. So:

if file_exists( 'filename.txt' )
{
sendpage( 'AckPage' ); // File is there
}
else
{
sendpage( 'TryAgainPage' ); // file is NOT there
}

Posted by: antamr904 May 10 2012, 10:12 AM

great i will try out both options, TY!!

Posted by: antamr904 May 10 2012, 11:34 AM

hi all,

how would i perform more then one function if file_exists??

like get contents and print?

Posted by: antamr904 May 10 2012, 02:51 PM

ok im stuck,

i want to check if the file name exist and if it does display a message AND print the contents of the file AND if the file DOES NOT exist display a message.

here is my code:

<?PHP

$compname = $_POST['compname'];

if (file_exists($compname)) {
echo "NOTE: $compname exists in our inventory";
} elseif (file_exists($compname)) {
(file_get_contents('$compname'));
echo $compname;
} else {
echo "NOTE: $compname does NOT exists in our inventory";
}

?>

Posted by: Ephraim F. Moya May 10 2012, 09:49 PM

QUOTE(antamr904 @ May 10 2012, 01:51 PM) *

ok im stuck,

i want to check if the file name exist and if it does display a message AND print the contents of the file AND if the file DOES NOT exist display a message.

here is my code:

<?PHP

$compname = $_POST['compname'];

if (file_exists($compname)) {
echo "NOTE: $compname exists in our inventory";
} elseif (file_exists($compname)) {
(file_get_contents('$compname'));
echo $compname;
} else {
echo "NOTE: $compname does NOT exists in our inventory";
}

?>


file_exists() is a BINARY instruction. That means that the first answer you get is the answer. And it's TRUE or FALSE. Doing it again will give you the same answer: The same TRUE or FALSE.

If you're somehow getting three answers then you're doing something wrong.

So your problem should be solved like this:

if ( file_exists( $compname ))
{
echo "\nNOTE: $compname exists in our inventory\n";
$contents = file_get_contents( $compname );
echo "<br><br>" . $contents;
}
else
{
echo "NOTE: File $compname does NOT exist in our inventory";
}

ps. Look for and read a basic php programming tutorial. Then read the whole thing over and over until it starts to make sense.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)