Avatar billede zurekk Nybegynder
24. maj 2007 - 21:59 Der er 6 kommentarer og
1 løsning

Image upload

Hej Eksperter,

Jeg har lavet dette lille script:

function stop( $message )
    {
        echo $message;
        exit;
    }

if( isset( $_POST['go'] ) )
    {
        if( empty( $_FILES['file']['name'] ) )
            {
                stop( 'You need to select a file to upload.' );
            }

        $file = $_FILES['file']['name'];
        $temp_file = $_FILES['file']['tmp_name'];   
        $ext = explode( ".", $file );
        $extch = array( "jpg", "jpeg", "gif", "png" );

        if( !empty( $ext[2] ) || !in_array( strtolower( $ext[1] ), $extch ) )
            {
                stop( 'Wrong file name/filetype. (check for <b>.</b>\'s)' );
            }

        if( filesize( $temp_file ) > 1048576 )
            {
                stop( 'Maximum filesize is 1MB.' );
            }
           
        $imagesize = getimagesize( $temp_file );
           
        if( $imagesize[0] < 0 )
            {
                stop( 'Not an image!' );
            }   
       
        $latestid = mysql_fetch_assoc( mysql_query( "SELECT id FROM _subMedia ORDER BY id DESC LIMIT 1" ) );
        $picture_id = date('His') . $_SESSION['userid'] . $latestid['id'];

        if( !move_uploaded_file( $temp_file, "cont/files/subimgfull/" . $picture_id . $ext[1] ) )
            {
                stop( 'An error has occured 2!' );
            }
    }


En der kan fortælle mig hvorfor den ikke vil virke?
Den udløser ikke stop() nogle steder, men den uploader heller ikke noget.

Hvis nogen kan hjælpe med at gøre det lidt mere sikkert og/eller evt. bedre, så må i MEGET gerne det, da det er noget tid siden jeg har arbejdet med upload/billederedigering via. php.

På forhånd tak!
Avatar billede benneharli Juniormester
25. maj 2007 - 00:06 #1
Her er der lidt... Ved ikke om det kan bruges til noget

http://www.reginscorner.dk/index.php/Scripts/Upload_med_PHP
Avatar billede benneharli Juniormester
25. maj 2007 - 00:08 #2
Bruger selv den her:

--------------------------------------

<?php
$uploadDir = '../upload/'; //Bibliotek hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','gif','png','avi','doc','zip','mp3'); //Hvilke filer vil vi acceptere bliver uploadet?

//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload']))
{
//Har vi en fil?
if($_FILES['myFile']['size']>0)
{
//Filendelse
$extension = pathinfo($_FILES['myFile']['name'],PATHINFO_EXTENSION);
//OLD VERSION
//$extension = strtolower(end(explode('.',$_FILES['myFile']['name'])));

//Er filen en af de filer vi gerne vil have?
if(in_array($extension,$allowedFileTypes))
{
//Vi flytter filen fra tmp til vores UPLOADDIR
if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . basename($_FILES['myFile']['name'])))
{
echo '<h3 style="color:green;">File ('.basename($_FILES['myFile']['name']).') uploaded succesfully</h3>';
}
else
{
echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['myFile']['name']).'</h3>';
}
}
else
{
echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>';
}
}
else
{
echo '<h3 style="color:red;">No file selected</h3>';
}
}

//Vores form
echo 'Find filen du vil uploade, og klik på send (kun en gang)...<br>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile" size="40"><br />';
echo '<input type="submit" name="myUpload" value="Send">';
echo '</form>';
echo '<a target="_blank" href="readdir.php">Fællesmappe</a>';
?>
Avatar billede zurekk Nybegynder
25. maj 2007 - 01:20 #3
Mit script virker fint har jeg lige fundet ud af.

Jeg glemte bare at opdatere mappen med billederne.................

Men kan i så give nogle råd til hvordan man sikrer sit script mest muligt?
Avatar billede benneharli Juniormester
25. maj 2007 - 15:15 #4
Og hvad er det så lige du mener med sikre???

Hvis du mener passwordbeskyttelse er der et hav af former. Jeg plejer at bruge brugere registreret i noget SQL/MySQL og $_SESSIONS i PHP, eller også den simple løsning, der er htaccess.

Jeg har en kort og (pointerer) ikke særlig udførlig forklaring til htaccess på min hjemmeside

http://benji.roswall.com

Passwordbeskyt en hjemmeside
Find sti til webbibliotek
Krypter et password

Er det noget?
Avatar billede zurekk Nybegynder
25. maj 2007 - 21:22 #5
benneharli >

Tænker mere på f.eks. hacker-attack e.l.
altså sørge for at det der bliver uploadet er et billede, og _KUN_ et billede.
Lige nu kigger jeg på filnavn, størrelse, om der findes en bredde.
Avatar billede benneharli Juniormester
26. maj 2007 - 01:08 #6
Tag et kig paa roenvings hjemmeside. Der er en del med billeder

http://roenving.users.whitehat.dk/
Avatar billede zurekk Nybegynder
02. juni 2007 - 10:30 #7
..
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