Avatar billede zurekk Nybegynder
08. marts 2006 - 21:35 Der er 24 kommentarer og
1 løsning

Film upload virker ikke

Hej Eksperter.
Havde samme spørgsmål i går, men fik aldrig lårtet til at virke.
Dog fik jeg en ven til at ændre lidt i scriptet, men ikke med megen virkning.

SE PÅ DET!!! :
<form action="upload.php" method="POST">
    <table cellpadding="0px" align="center" cellspacing="0px" border="0px">
    <tr align="center" align="center">
    <td colspan="2"><span class="sizeti"><b>Tilføj ny film</b></span><br>&nbsp;</td>
    </tr>
   
    <tr>
    <td valign="top" width="100px" height="25px"><span><b>Titel :</b></span></td>
    <td><input type="text" name="title"></td>
    </tr>
   
    <tr>
    <td valign="top" height="25px"><span><b>Info :</b></span></td>
    <td><textarea name="info" cols="30" rows="4"></textarea></td>
    </tr>
   
    <tr>
    <td valign="top" height="25px"><span><b>Film :</b></span></td>
    <td><input type="file" name="film"></td>
    </tr>
   
    <tr>
    <td valign="top" height="25px"><span><b>Billede :</b></span></td>
    <td><input type="file" name="billede"></td>
    </tr>
   
    <tr>
    <td valign="top" height="25px"><span><b>Kategori :</b></span></td>
    <td><select name="kategori">
    <option>Cool</option>
    <option>Sport</option>
    <option>Reklamer</option>
    <option>Ekstreme</option>
    <option>Sjove</option>
    </select>
    </td>
    </tr>
   
    <tr>
    <td></td>
    <td><input type="submit" name="alrightythen" value="Uload"></td>
    </tr>
   
    </table>
</form>

<?
$title = $_POST['titel'];
$info = $_POST['info'];
$movie = $_FILES["film"]["type"];
$picture = $_FILES["billede"]["type"];
$category = $_POST['kategori'];
$date = date("d-m-Y");
$warning = 0;

include("connect.php");
if(isset($_POST['alrightythen'])) {
if(!eregi("(.jpg)|(.jpeg)|(.jpe)|(.gif)|(.png)|(.bmp)|(.rif)|(.raw)", $_FILES["billede"]["type"])) {
$warning++;
}

if($warning == 0){
if(copy($_FILES["upload"]["tmp_name"],$_FILES["billeder"]["name"])){
echo "Uploaded billede!!<br>";
} else {
$warning++;
}
}
     
if(!eregi("(.wmv)|(.wma)|(.mov)", $_FILES["film"]["type"])) {
$warning++;
}

if($warning == 0){
if(copy($_FILES["upload"]["tmp_name"],$_FILES["film"]["name"])){
echo "Uploaded billede!!<br>";
} else {
$warning++;
}
}



if($warning == 0){
mysql_query("INSERT INTO film (title, info, movie, picture, category, date) VALUES ('$title', '$info', '$movie', '$picture', '$category', '$date')") or die(mysql_error());
} else {
echo "doh";
}
}
?>


Den ender med at sige 'doh', som står sidst i scriptet.

What's wrong?
Avatar billede the_email Nybegynder
08. marts 2006 - 21:49 #1
Prøv at sætte en hidden post ind med name alrightythen og giv den en vilkårlig value.

<input type="hidden" value="isset" name="alrightythen">


/TheEmail
Avatar billede zurekk Nybegynder
08. marts 2006 - 21:55 #2
Præcist det samme.
Avatar billede jakobdo Ekspert
08. marts 2006 - 22:00 #3
Jeg tror faktisk den fejler på denne: $_FILES["billede"]["type"]
Den indeholder: mime-typer, som f.eks.: image/gif, image/jpeg osv...

En doh, er jo tegn på du har en warning et sted.
Prøv at ret: $warning++;
Til nogle fejlbeskeder som:
echo "Filen er ikke et billede";
echo "Billedet blev ikke uploadet";
echo "Filen er ikke en film";
echo "Filmen blev ikke uploadet";
Avatar billede jakobdo Ekspert
08. marts 2006 - 22:02 #4
Hvis du laver:
$extension = strtolower(end(explode(".", $_FILES['billede']['name'])));
if(!eregi("(.jpg)|(.jpeg)|(.jpe)|(.gif)|(.png)|(.bmp)|(.rif)|(.raw)", $extension)) {
$warning++;
}

så burde du komme videre...
Avatar billede zurekk Nybegynder
08. marts 2006 - 22:06 #5
Ja, nu kan man se de forskellige fejl.
Men de dukker alle sammen op =/
Altså virker intet.
Avatar billede zurekk Nybegynder
08. marts 2006 - 22:08 #6
Den viser stadig fejl når jeg ligger:
$extension = strtolower(end(explode(".", $_FILES['billede']['name'])));
if(!eregi("(.jpg)|(.jpeg)|(.jpe)|(.gif)|(.png)|(.bmp)|(.rif)|(.raw)", $extension)) {
$warning++;
}

ind.
Avatar billede jakobdo Ekspert
08. marts 2006 - 22:10 #7
Prøv lige at udskriv $extension
Avatar billede zurekk Nybegynder
08. marts 2006 - 22:14 #8
Der kommer intet.
Så den opfatter slet ikke at jeg henter filen ned?
Avatar billede jakobdo Ekspert
09. marts 2006 - 07:45 #9
Prøv under:
if(isset($_POST['alrightythen']))
at skriv:

echo "<b>DEBUG</b><br />";
echo "POST";
echo "<pre>";
print_r($_POST);
echo "</pre>";

echo "FILES";
echo "<pre>";
print_r($_FILES);
echo "</pre>";

og smid output herind.
Avatar billede zurekk Nybegynder
09. marts 2006 - 13:17 #10
DEBUG
POST

Array
(
    [title] => Mmm! Marbou!
    [info] => Rigtig fed film, med sennep på!
    [film] => treadfall3.wmv
    [billede] => 2263.jpg
    [kategori] => Ekstreme
    [alrightythen] => isset
)

FILES

Array
(
)

Filen er ikke et billede
Filen er ikke et billede
Filen er ikke en film
Filmen blev ikke uploadet

Så filerne fanger den.
Avatar billede zurekk Nybegynder
09. marts 2006 - 13:21 #11
Du bad mig fjerne $WARNING, og sætte $EXTENSION ing i stedet.
Men sidder nu ogs undrer mig hvad jeg skal gøre med:
if($warning == 0){
if(copy($_FILES["upload"]["tmp_name"],$_FILES["billeder"]["name"])){

Fordi den afhænger jo af $WARNING :S
Avatar billede jakobdo Ekspert
09. marts 2006 - 13:24 #12
Du skal rette $warning tilbage igen!
Det var kun for at debugge du skulle rette til: echo "...";

Du skal også rette:
<form action="upload.php" method="POST">
til:
<form enctype="multipart/form-data" action="upload.php" method="POST">
Avatar billede zurekk Nybegynder
09. marts 2006 - 13:37 #13
Nu har jeg ændret al php koden tilbage som den var i starten.
Og sat enctype i formlen.

Men det ændrede ikke rigtigt noget :S
Så er vi tilbage hvor vi startede.
Avatar billede jakobdo Ekspert
09. marts 2006 - 13:39 #14
Prøv lige at kontakt mig på msn: jakbodo [AT] hotmail {DOT} com
Avatar billede zurekk Nybegynder
09. marts 2006 - 13:56 #15
så mangler du bare at acceptere.
Avatar billede jakobdo Ekspert
09. marts 2006 - 13:58 #16
Haha, jakobdo ikke jakbodo :o(
Avatar billede zurekk Nybegynder
09. marts 2006 - 14:22 #17
Jep, den har jeg også tilføjet :D
Avatar billede zurekk Nybegynder
09. marts 2006 - 14:28 #18
Jeg tror jeg har haft dig på min kontaktliste engang.
Måske har du blocket mig af en eller anden grund?
Avatar billede jakobdo Ekspert
09. marts 2006 - 14:32 #19
Hehe, prøv igen! :o)
Avatar billede zurekk Nybegynder
09. marts 2006 - 15:50 #20
Prøv du at tilføj mig.
mail (.) zurekk.dk
Avatar billede zurekk Nybegynder
09. marts 2006 - 20:51 #21
weeee
Avatar billede jakobdo Ekspert
09. marts 2006 - 20:51 #22
Et svar!
Avatar billede zurekk Nybegynder
09. marts 2006 - 20:51 #23
Yes sir!
Avatar billede zurekk Nybegynder
09. marts 2006 - 20:52 #24
Så fik jakobdo det fikset :D
Det endte sådan her :

<?
include("connect.php");
if(isset($_POST['alrightythen']))
{
    $warning = 0;

    $ext = strtolower(end(explode(".", $_FILES['billede']['name'])));
   
    if (!preg_match('/jpg|jpeg|jpe|gif|png|bmp|tif|raw/', $ext))
    {
        $warning++;
    }

    if($warning == 0)
    {
        if(!copy($_FILES["billede"]["tmp_name"],"./pics/" . $_FILES["billede"]["name"]))
        {
            $warning++;
        }
    }

    $ext = strtolower(end(explode(".", $_FILES['film']['name'])));
    if(!preg_match('/wmv|wma|mov|avi|mpeg|mpg|ram/', $ext))
    {
        $warning++;
    }

    if($warning == 0)
    {
        if(!move_uploaded_file($_FILES['film']['tmp_name'],"./movies/" . $_FILES['film']['name']))
        {
            $warning++;
        }
    }

    if($warning == 0)
    {
        $title = mysql_real_escape_string(strip_tags($_POST['title']));
        $info = mysql_real_escape_string(strip_tags($_POST['info']));
        $movie = mysql_real_escape_string(strip_tags($_FILES['film']['name']));
        $picture = mysql_real_escape_string(strip_tags($_FILES['billede']['name']));
        $category = mysql_real_escape_string(strip_tags($_POST['kategori']));
        mysql_query("INSERT INTO film (title, info, movie, picture, category, date) VALUES ('$title', '$info', '$movie', '$picture', '$category', NOW())") or die(mysql_error());
        if(mysql_affected_rows()>0)
        {
            echo "Film og billede er uploadet korrekt<br>";
        }
        else
        {
            echo "Der opstod en fejl<br>";
        }
    }
    else
    {
        echo "doh<br>";
    }
}
?>
Avatar billede jakobdo Ekspert
09. marts 2006 - 20:54 #25
Takker for point!

Husk evt lige at ret echo (fejl) i bunden! :o)
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