Avatar billede haolan Nybegynder
19. juni 2007 - 20:13 Der er 14 kommentarer og
1 løsning

læse indhold fra brugers fil med fopen

Hej

Jeg er ved at udvikle et system der kræver at man indlæser en bestemt tekst fra en slags nøglefil, som brugeren skal finde frem vha. af <input type="file"... for at kunne logge ind..

Hvordan får jeg læst dataene fra den fil de kalder ind i systemet?

har rodet lidt med følgene:
    $data = fopen($keyfile, "r");
    $text = fgets($data, 100);
    fclose($data);

Men den prøver bare at få fat i en fil på serveren.. Den skulle genre aflæse data fra en fil der ligger på brugerens computer..
Avatar billede jakobdo Ekspert
19. juni 2007 - 21:10 #1
Har du styr på hvordan du uploader filen?
Avatar billede haolan Nybegynder
19. juni 2007 - 21:19 #2
Jeg kan godt uploade ja.. Men det er jo ikke meningen den skal uploades :S Den skal jo kun kunne bruges imens brugeren er logget ind..
Avatar billede jakobdo Ekspert
19. juni 2007 - 21:29 #3
Men hvis brugeren har filen på computeren, så skal den uploades før du kan læse den på serveren.
Du kan måske nøjes med:

Lav en form som uploader filen.
Læs indholdet via: $date = file_get_content($_FILES['NAVN_PAA_DIT_FILE_FELT_I_FORMEN']['tmp_name]);

Og så skal du lave din kontrol på $data;
Avatar billede haolan Nybegynder
19. juni 2007 - 21:32 #4
ok.. Men hvordan sørger jeg for at filen ikke ligger på serveren permanent så?
Avatar billede haolan Nybegynder
19. juni 2007 - 21:32 #5
uvedkommende må under ingen omstændigheder kunne læse indholdet af filen i den tid den ligger på serveren..
Avatar billede jakobdo Ekspert
19. juni 2007 - 21:42 #6
Det gør du som jeg lige har skrevet ovenover.

Prøv at test om dette virker:

<?php
if(isset($_POST['test']))
{
if($_FILES['myFile']['size'] > 0)
{
$data = file_get_content($_FILES['myFile']['tmp_name']);
echo 'Filens indhold: ' . $data . '<hr />';
}
}
?>
<form action="test.php" method="post" enctype="multipart/form-data">
<input type="file" name="myFile"> <input type="submit" name="test" value="Test">
</form>

Denne kode vil gemme filen i TMP og besøgende vil ikke kunne se filens indhold.
Med mindre du selvfølgelig laver noget kode som viser indholdet.
Avatar billede haolan Nybegynder
19. juni 2007 - 22:04 #7
Hmm kan ikke få den til at læse noget fra filen..

jeg har forsøgt at udskrive $_FILES['file']['name'], men den kan ikke udskrive noget :S Min kode ser sådan ud:

        <form action="loginhandler.php" method="post">
        <table>
        <tr><td>Brugernavn:</td><td><input type="text" name="login" /></td></tr>
        <tr><td>N&oslash;glefil:</td><td><input type="file" name="file" /></td></tr>
        <tr><td></td><td><input type="submit" name="login" value="Login" class="login_submit"></td></tr>
        </table>
        </form>

loginhandler:
session_start();
$user = mysql_escape_string($_POST['username']);

if(!isset($user) || !isset($_FILES['file'])) {
    header("location: index.php");
    exit;
} else {
    echo $_FILES['file']['name'];
    if($_FILES['file']['size'] > 0) {
        $data = file_get_content($_FILES['file']['tmp_name']);
        echo 'Filens indhold: ' . $data . '<hr />';
    }

}
Avatar billede jakobdo Ekspert
19. juni 2007 - 22:21 #8
Skriver den filens navn ud?
Avatar billede jakobdo Ekspert
19. juni 2007 - 22:22 #9
Og hvad er det du laver her?

session_start();
$user = mysql_escape_string($_POST['username']);

if(!isset($user) || !isset($_FILES['file'])) {

Kan du ikke lige teste det simple med filen først?

Du begynder at blande ting sammen, hvilket måske forstyrre dig mere end hvad godt er.
Så hvis vi skal holde os til første spørgsmål, så test lige den kode her lavet i indlægget fra: 19/06-2007 21:42:51
Gem koden som test.php og åben den.
Avatar billede haolan Nybegynder
19. juni 2007 - 22:30 #10
Jeg får følgene fejl med din kode:

Fatal error: Call to undefined function file_get_content() in /mounted-storage/home26b/sub002/sc24152-ERZJ/test/test.php on line 4
Avatar billede jakobdo Ekspert
19. juni 2007 - 22:35 #11
Funktionen hedder self: file_get_contents() :o(
Avatar billede haolan Nybegynder
19. juni 2007 - 23:04 #12
Smukt.. så fik jeg det hele til at køre :) smid et svar for points..
Avatar billede jakobdo Ekspert
20. juni 2007 - 07:20 #13
Svar!
Avatar billede jakobdo Ekspert
20. juni 2007 - 08:13 #14
Takker for point.
Avatar billede haolan Nybegynder
20. juni 2007 - 08:27 #15
Takker for hjælpen..
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