Avatar billede betz Nybegynder
06. juli 2007 - 21:38 Der er 9 kommentarer og
1 løsning

Problem med upload system

Hey Eksperter.

har prøvet at rette et allerede eksisterende upload sytem til. så det er muligt tilføje søge ord til billederne.

<?php
$id      = mysql_query("SELECT * FROM `upload`");
    $id      = mysql_num_rows($id);
    $id      = $id+1;
    $mgat    = "".$id.".jpg";
    if ($mgat2) {
        $mgat = "../upload/".$mgat."";
        if (move_uploaded_file($_FILES[mgat][tmp_name],$mgat)) {
            mysql_query("INSERT INTO `upload` ( `id` , `sogeord`) values('$id', '$_POST[sogeord]')");
        }
        else {
            echo "Fejl!";
        }
    }
?>
<form method="post" enctype="multipart/form-data">
    <table border="0" cellpadding="2" cellspacing="2" width="400" class="tekst">
        <tr>
            <td width="80">Billede:</td>
            <td>
            <input type="file" name="mgat" class="form" size="25"></td>
        </tr>
        <tr>
            <td width="80">Søgeord:</td>
            <td>
            <input type="text" name="sogeord" class="form" size="25"> <span id="help"><a href="java script:void(0)" onClick="alert('tekst')">[?]</a></span></td>
        </tr>
        <tr>
            <td width="80">&nbsp;</td>
            <td>
            <input type="submit" value="Tilføj" class="submit"><input type="reset" value="Slet alt" class="submit"></td>
        </tr>
    </table>
</div>
</form>
<?php
$mgat = mysql_query("SELECT * FROM `upload` ORDER BY `id` DESC");
while ($row = mysql_fetch_array($mgat)) {
    echo "<a href=\"http://www.domæne.dk/upload/".$row[id].".jpg\" target=\"_blank\"><img border=\"0\" src=\"../upload/".$row[id].".jpg\" width=\"200\" height=\"145\"><br>http://www.domæne.dk/upload/".$row[id].".jpg</a><br><br>";
}
?>



Min eksport af MySQL-koden, ser sådan ud:

CREATE TABLE `upload` (
  `id` int(100) NOT NULL auto_increment,
  `sogeord` tinytext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `upload` (`id`, `sogeord`) VALUES (1, 'tekst');



Og har oprettet en mappe som hedder upload (www.domæne.dk/upload)


Problemet er at billederne ikke bliver oploadet når man prøver at tilføje.

Hvis der er en som kan rette/fortælle mig fejlen beløndes vedkommende med 100 point.


MVH. Betz
Avatar billede erikjacobsen Ekspert
06. juli 2007 - 21:47 #1
Hvor kommer $mgat2 fra i denne linie:

if ($mgat2) {
Avatar billede cronick Nybegynder
06. juli 2007 - 21:50 #2
Du kan prøve dette:

<?php
$id      = mysql_query("SELECT * FROM `upload`");
    $id      = mysql_num_rows($id);
    $id      = $id+1;
    $mgat    = "".$id.".jpg";
    if ($mgat) {
        $mgat = "../upload/".$mgat."";
        if (move_uploaded_file($_FILES[mgat][tmp_name],$mgat)) {
            mysql_query("INSERT INTO `upload` ( `id` , `sogeord`) values('$id', '$_POST[sogeord]')")or die(mysql_error());
        }
        else {
            echo "Fejl!";
        }
    }
?>
<form method="post" enctype="multipart/form-data">
    <table border="0" cellpadding="2" cellspacing="2" width="400" class="tekst">
        <tr>
            <td width="80">Billede:</td>
            <td>
            <input type="file" name="mgat" class="form" size="25"></td>
        </tr>
        <tr>
            <td width="80">Søgeord:</td>
            <td>
            <input type="text" name="sogeord" class="form" size="25"> <span id="help"><a href="java script:void(0)" onClick="alert('tekst')">[?]</a></span></td>
        </tr>
        <tr>
            <td width="80">&nbsp;</td>
            <td>
            <input type="submit" value="Tilføj" class="submit"><input type="reset" value="Slet alt" class="submit"></td>
        </tr>
    </table>
</div>
</form>
<?php
$mgat = mysql_query("SELECT * FROM `upload` ORDER BY `id` DESC");
while ($row = mysql_fetch_array($mgat)) {
    echo "<a href=\"http://www.domæne.dk/upload/".$row[id].".jpg\" target=\"_blank\"><img border=\"0\" src=\"../upload/".$row[id].".jpg\" width=\"200\" height=\"145\"><br>http://www.domæne.dk/upload/".$row[id].".jpg</a><br><br>";
}
?>
Avatar billede betz Nybegynder
06. juli 2007 - 22:01 #3
virkede desvære ikke.

<?php
$id      = mysql_query("SELECT * FROM `upload`");
    $id      = mysql_num_rows($id);
    $id      = $id+1;
    $mgat    = "".$id.".jpg";
    if ($mgat) {
        $mgat = "../upload/".$mgat."";
        if (move_uploaded_file($_FILES[mgat][tmp_name],$mgat)) {
            mysql_query("INSERT INTO `upload` ( `id` , `sogeord`) values('$id', '$_POST[sogeord]')")or die(mysql_error());
        }
        else {
            echo "Fejl!";
        }
    }
?>


Warning: move_uploaded_file(../upload/2.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /web/www/frac/users/m/madesign/admin/menu/upload.php on line 15

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpdaBFzT' to '../upload/2.jpg' in /web/www/frac/users/m/madesign/admin/menu/upload.php on line 15
Fejl!

linje 15:

if (move_uploaded_file($_FILES[mgat][tmp_name],$mgat)) {
Avatar billede showsource Seniormester
06. juli 2007 - 22:57 #4
du skal huske at gi skriverettigheder til dir der uploades til
Avatar billede cronick Nybegynder
06. juli 2007 - 23:06 #5
- Okey, men I det mindste får du jo en fejl nu, hvilket du (formentlig) ikke gjorde før?

Fejlen du her får, betyder at du ikke har de tilstrækkelige rettigheder til at uploade filen, på den ønskede destination. Prøv evt. at ændre din mappes chmod (altså mappen upload), til 755.. Lige nu er den sikkert sat til 666 eller 644, hvilket forhindre en systematisk indgang.
Avatar billede betz Nybegynder
07. juli 2007 - 00:02 #6
Arh perfekt nu virker det sku.

Kan du så fortæller mig, hvornår det er man går ind og ændre chmod på en mappe?
+ svar. ;)
Avatar billede betz Nybegynder
07. juli 2007 - 00:04 #7
Det skal lige siges at den ikke virkede på 755, men satte den til 777 (som jeg har læst så mange steder) og det virkede.
Avatar billede cronick Nybegynder
07. juli 2007 - 00:23 #8
Hvornår? Det er vel når det er passende.. :)

Kunne f.eks. være, hvis man har en mappe, som man ikke vil have andre kan se (hvis de altså går ind og vil se den direkte - eks: http://website.dk/mappe/). Kunne også være, at man slet ikke vil have, at det skal være muligt at se mappen (indeholdet), medmindre man gør det over ftp. Men det er mest benyttet, når man skal have mappen klar til upload.

755 virker på min server - så det kommer vel an på hvordan den er opsat.. :)
Avatar billede betz Nybegynder
07. juli 2007 - 00:27 #9
Fair nok, tak for hjælpen. :)
Avatar billede cronick Nybegynder
07. juli 2007 - 00:32 #10
Så lidt.. :)
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