Martin A. Skrevet 26. desember 2007 Skrevet 26. desember 2007 mysql_query('INSERT INTO uploads(description, filename, filesize, filetype) VALUES('.$filedescription.', '.$filesavelocation.'/'.$filename.', '.$filesize.', '.$filetype.');'); Bytt ut den linja med mysql_query("INSERT INTO uploads(description, filename, filesize, filetype) VALUES('$filedescription', '{$filesavelocation}/{$filename}', '$filesize', '$filetype')") or die( mysql_error() );
Lapstuen Skrevet 26. desember 2007 Forfatter Skrevet 26. desember 2007 mysql_query('INSERT INTO uploads(description, filename, filesize, filetype) VALUES('.$filedescription.', '.$filesavelocation.'/'.$filename.', '.$filesize.', '.$filetype.');'); Bytt ut den linja med mysql_query("INSERT INTO uploads(description, filename, filesize, filetype) VALUES('$filedescription', '{$filesavelocation}/{$filename}', '$filesize', '$filetype')") or die( mysql_error() ); Jeg får da følgende feilmelding: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Dette er en test'', 'files/Test.exe', '7676', 'exe')' at line 1
grimjoey Skrevet 26. desember 2007 Skrevet 26. desember 2007 (endret) kjør denne koden og skriv resultatet på forumet så vi ser hvordan tabellen ser ut <?php mysql_connect(); mysql_select_db(); $res = mysql_query('describe uploads;'); while ($row = mysql_fetch_assoc($res) { $arr[] = $row; } print_r($arr); ?> btw: ut i fra den feilmeldingen så har du dobbel quota enden på "Dette er en test" 'Dette er en test'', 'files/Test.exe', '7676 Endret 26. desember 2007 av grimjoey
Lapstuen Skrevet 26. desember 2007 Forfatter Skrevet 26. desember 2007 (endret) kjør denne koden og skriv resultatet på forumet så vi ser hvordan tabellen ser ut <?php mysql_connect(); mysql_select_db(); $res = mysql_query('describe uploads;'); while ($row = mysql_fetch_assoc($res) { $arr[] = $row; } print_r($arr); ?> btw: ut i fra den feilmeldingen så har du dobbel quota enden på "Dette er en test" 'Dette er en test'', 'files/Test.exe', '7676 La inn db settings og prøvde å kjøre men får følgende feilmelding: Parse error: syntax error, unexpected '{' in /home/.dewalt/*sensurt/*sensurert /upload/db.php on line 7 Edit: Jeg kan ikke skjønne hvorfor det blir dobbel quote på slutten :S Har sjekka coden men finner ikke feilen Endret 26. desember 2007 av Lapstuen
Martin A. Skrevet 26. desember 2007 Skrevet 26. desember 2007 <?php mysql_connect(); mysql_select_db(); $res = mysql_query('describe uploads;'); while ($row = mysql_fetch_assoc($res)) { $arr[] = $row; } print_r($arr); ?> Manglet en ")" etter "$res)"
Lapstuen Skrevet 26. desember 2007 Forfatter Skrevet 26. desember 2007 <?php mysql_connect(); mysql_select_db(); $res = mysql_query('describe uploads;'); while ($row = mysql_fetch_assoc($res)) { $arr[] = $row; } print_r($arr); ?> Manglet en ")" etter "$res)" Takker! nå fikk jeg en output Array ( [0] => Array ( [Field] => id [Type] => int(4) [Null] => NO [Key] => PRI [Default] => [Extra] => auto_increment ) [1] => Array ( [Field] => description [Type] => char(50) [Null] => YES [Key] => [Default] => [Extra] => ) [2] => Array ( [Field] => filename [Type] => char(50) [Null] => YES [Key] => [Default] => [Extra] => ) [3] => Array ( [Field] => filesize [Type] => char(50) [Null] => YES [Key] => [Default] => [Extra] => ) [4] => Array ( [Field] => filetype [Type] => char(50) [Null] => YES [Key] => [Default] => [Extra] => ) )
grimjoey Skrevet 26. desember 2007 Skrevet 26. desember 2007 Problemet er ' rundt description. Jeg gjorde en del endringer og testet litt så nå skal koden ovenfor (den første jeg postet) virke. Husk å lag en mappe som filene skal ligge i først. Den må ha samme navn som $filesavelocation og ligge relativt til banen upload.php eksekveres fra. Dersom det da ikke virker kan du prøve å gjøre en "chmod a+wt <mappenavn>" og prøve igjen.
Lapstuen Skrevet 26. desember 2007 Forfatter Skrevet 26. desember 2007 Problemet er ' rundt description. Jeg gjorde en del endringer og testet litt så nå skal koden ovenfor (den første jeg postet) virke. Husk å lag en mappe som filene skal ligge i først. Den må ha samme navn som $filesavelocation og ligge relativt til banen upload.php eksekveres fra. Dersom det da ikke virker kan du prøve å gjøre en "chmod a+wt <mappenavn>" og prøve igjen. Tusen takk for all hjelp! Jeg har nå begynt å lære meg mer om PHP og har allerede laget en ny versjon som kalkulerer md5 checksum og adder denne til databasen. Denne vises senere når man skal laste ned filen.
Lapstuen Skrevet 26. desember 2007 Forfatter Skrevet 26. desember 2007 Hei alle sammen! Scriptet som grimjoey lagde funker utmerket! men nå kommer jo neste del av jobben, finne en måte å laste filene ned på... Jeg tenker meg noe sånt som dette: når man laster opp filen så får man en link man kan kopiere for å laste ned filen, eller poste linken på et forum. link kommer til å se sånn ut: "www.minside.com/upload/files/download.php?id=1" id'en henviser til iden i mysql databasen og ut derifra blir filens fullstendige bane lagt til en link som man trykker på igjennom et bilde. Et slags download ikon altså, som linker til filen. Jeg har nå prøvd å skrive starten av scriptet som gir den fullstendige url'en men får det ikke til å fungere som jeg ønsker, jeg lurer derfor på om noen kan ta en titt på det. <?php mysql_connect("database","bruker","passord"); mysql_select_db("upload"); $query = "SELECT filename FROM uploads where id=$id"; $result = MYSQL_QUERY($query); Header( "Content-type: $type"); $link = 'www.minside.com/upload/files/'; echo $link,$result; ?> Bare si ifra hvis jeg forklarte dårlig så skal jeg prøve igjen.
grimjoey Skrevet 26. desember 2007 Skrevet 26. desember 2007 (endret) Der er det mange ting som ikke vil kunne fungere. For det første så er $id åpen for sql-injection. Fiks: $query = 'SELECT filename FROM uploads WHERE id = '.(int)$id.';'; For det andre skal man ikke sende egen header for å vise en link som du ønsker. Det er kun hvis scriptet skal vise et rått bilde for eksempel. $type er dessuten en udefinert variabel. Og til slutt: echo $link, $result; $result er en ressurs id som peker mot en form for data hentet fra en database. For å benytte denne dataen i echo må man bruke en av mysql funksjonene for det. for eksempel mysql_result(), mysql_fetch_row(), mysql_fetch_assoc(), mysql_fetch_object() eller liknende. Og jeg tror du får en error med det commaet i echo også. Edit: Dersom register_globals er off er $id også en udefinert variabel. Endret 26. desember 2007 av grimjoey
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå