[php 5.4] Pass by reference fout

Gestart doorOne2xs7 reacties26 weergaven

8 berichten · pagina 1 van 1

One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Ik krijg de volgende melding:
Strict Standards: Only variables should be passed by reference in /home/fanhabbo/domains/thahab.nl/public_html/upload/index.php on line 30
Mijn code is:

[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]////////////////////////////////////
// © 2009 Wouter De Schuyter
// info[@]paradox-productions[.]net
// http://paradox-productions.net/
// UPLOAD SCRIPT V1.0
////////////////////////////////////

/* NOTE
*******
!! DONT FORGET TO CHMOD THE UPLOAD FOLDER TO 0777

THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 LICENSE.
THIS MEANS YOU MAY USE IT FOR ANY PURPOSE, AND MAKE ANY CHANGES YOU LIKE.
ALL I ASK IS TO LEAVE THE ORIGINAL COPYRIGHT AT TOP OF THE SCRIPT.
VIEW LICENSE ONLINE: http://creativecommons.org/licenses/by/3.0/
*/

/* CONFIG
*********/[/COLOR]

[COLOR= #0000BB]$extensions[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]png[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]gif[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]jpg[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]jpeg[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]bmp[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]pdf[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]doc[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]docx[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]html[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]psd[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]css[/COLOR][COLOR= #007700]);[/COLOR] [COLOR= #FF8000]// ALLOWED EXTENSIONS[/COLOR]
[COLOR= #0000BB]$tfolder[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"uploads/"[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// UPLOADS FOLDER WITH "/" AT THE END (JUST DIR)![/COLOR]
[COLOR= #0000BB]$scriptloc[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"http://www.jelleschneiders.nl/upload/"[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// SCRIPT LOCATION WITH "/" AT THE END (FULL URL)![/COLOR]
[COLOR= #0000BB]$maxfsize[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]3[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// MAXIMUM FILESIZE (IN MEGABYTES)

    // CHECK IF THE FORM HAS BEEN SUBMITTED[/COLOR]
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]REQUEST_METHOD[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"POST"[/COLOR][COLOR= #007700]) {[/COLOR]
        [COLOR= #0000BB]$fname[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]filen[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]name[/COLOR][COLOR= #007700]];[/COLOR] [COLOR= #FF8000]// FILE NAME FOR EXTENSION CHECK[/COLOR]
        [COLOR= #0000BB]$fext[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strtolower"]strtolower[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/end"]end[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000].[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$fname[/COLOR][COLOR= #007700])));[/COLOR] [COLOR= #FF8000]// GET EXTENSION[/COLOR]
        [COLOR= #0000BB]$ftemp[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]filen[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]tmp_name[/COLOR][COLOR= #007700]];[/COLOR] [COLOR= #FF8000]// TEMP NAME[/COLOR]
        [COLOR= #0000BB]$newname[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/md5"]md5[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]9999[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]9999[/COLOR][COLOR= #007700]))) .[/COLOR] [COLOR= #DD0000]"."[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$fext[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// RANDOM NUMBER BETWEEN 2 RANDOM NUMBERS BETWEEN 1 AND 9999 AND MD5 ENCODED = RANDOM FILE NAME[/COLOR]
        [COLOR= #0000BB]$target[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$tfolder[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$newname[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// LOCATION FILE
        
        // CHECK IF THERE IS A FILE SELECTED[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$fname[/COLOR][COLOR= #007700])) {[/COLOR]
            [COLOR= #FF8000]// CHECK THE EXTENSION[/COLOR]
            [URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$extensions[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$check[/COLOR][COLOR= #007700]) {[/COLOR]
                [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$check[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]$fext[/COLOR][COLOR= #007700]) {[/COLOR]
                    [COLOR= #0000BB]$extensioncheck[/COLOR] [COLOR= #007700]=[/COLOR] true[COLOR= #007700];
                }
            }[/COLOR]
            [COLOR= #FF8000]// IF EXTENSION IS ALLOWED[/COLOR]
            [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$extensioncheck[/COLOR] [COLOR= #007700]==[/COLOR] true[COLOR= #007700]) {[/COLOR]
                [COLOR= #FF8000]// IF FILE IS TOO BIG[/COLOR]
                [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/filesize"]filesize[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$ftemp[/COLOR][COLOR= #007700]) >[/COLOR] [COLOR= #0000BB]$maxfsize[/COLOR] [COLOR= #007700]* ([/COLOR][COLOR= #0000BB]1024[/COLOR][COLOR= #007700]*[/COLOR][COLOR= #0000BB]1024[/COLOR][COLOR= #007700])) {[/COLOR]
                    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Your file is too big. The maximum filesize is <b>"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$maxfsize[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"</b>MB."[/COLOR][COLOR= #007700];
                }[/COLOR]
                [COLOR= #FF8000]// IF FILESIZE IS ALLOWED[/COLOR]
                [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
                    [COLOR= #FF8000]// CHECK FOR FALSE FILES EG image.php.gif (SOME SERVERS JUST TAKE .php AND THIS IS A POSSIBLE RISK)[/COLOR]
                    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][URL="http://www.php.net/strstr"]strstr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtolower"]strtolower[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$fname[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #DD0000]"php"[/COLOR][COLOR= #007700])) {[/COLOR]
                        [COLOR= #0000BB]$upload[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/move_uploaded_file"]move_uploaded_file[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$ftemp[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$target[/COLOR][COLOR= #007700]);[/COLOR] [COLOR= #FF8000]// MOVE TO FOLDER WITH NEW RANDOM NAME
                        // TRY TO MOVE THE FILE TO THE DIRECTORY[/COLOR]
                        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$upload[/COLOR][COLOR= #007700]) {[/COLOR]
                            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Your file has succesfully been uploaded.<br />Download link: <b>"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$scriptloc[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$target[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"</b>"[/COLOR][COLOR= #007700];[/COLOR]
                            [COLOR= #0000BB]$succes[/COLOR] [COLOR= #007700]=[/COLOR] true[COLOR= #007700];
                        }[/COLOR]
                        [COLOR= #FF8000]// UPLOAD ERROR[/COLOR]
                        [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
                            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"upload error"[/COLOR][COLOR= #007700];
                        }
                    }[/COLOR]
                    [COLOR= #FF8000]// WHEN THE FILE NAME CONTAINS php[/COLOR]
                    [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
                        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Your file cannot contain the string php!"[/COLOR][COLOR= #007700];
                    }
                }[/COLOR] [COLOR= #FF8000]// CLOSE FILESIZE ALLOWED ELSE FUNCTION[/COLOR]
            [COLOR= #007700]}[/COLOR] [COLOR= #FF8000]// CLOSE EXTENSION ALLOWED IF FUNCTION
            // EXTENSION ERROR[/COLOR]
            [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
                [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"This extension is not allowed."[/COLOR][COLOR= #007700];
            }
        }[/COLOR] [COLOR= #FF8000]// CLOSE IF FILE SELECTED IF FUNCTION
        // NO FILE SELECTED ERROR[/COLOR]
        [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Please select a file to upload."[/COLOR][COLOR= #007700];
        }
        
    }[/COLOR] [COLOR= #FF8000]// CLOSE IF SUBMIT IS PRESSED FUNCTION
    
    // IF FILE WAS UPLOADED SUCESSFULLY HIDE FORM[/COLOR]
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$succes[/COLOR] [COLOR= #007700]!==[/COLOR] true[COLOR= #007700]) {[/COLOR]
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<form action="" method="post" enctype="multipart/form-data">[/COLOR][COLOR= #007700];[/COLOR]
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]File: <input type="file" name="filen" /> <input type="submit" name="subform" value="Upload File!" />[/COLOR][COLOR= #007700];[/COLOR]
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]</form>[/COLOR][COLOR= #007700];
    }[/COLOR]
?>


Hij werkt op andere sites wel, maar door php5.4 niet, kan iemand hem aanpassen dat hij op php5.4 kan?

modedit: topictitel aangepast.
0
Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Quote:

!! DONT FORGET TO CHMOD THE UPLOAD FOLDER TO 0777


Heb je dat wel gedaan?

En maak ff een duidelijke titel!
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Freestyle schreef:
Quote:

!! DONT FORGET TO CHMOD THE UPLOAD FOLDER TO 0777
Heb je dat wel gedaan?

En maak ff een duidelijke titel!

Heb ik gedaan, zoals ik al zei bij php5.2 werkt hij wel.
0
Berichten
7.681
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Quote:
Heb ik gedaan, zoals ik al zei bij php5.2 werkt hij wel.

Hier heb je jouw probleem al, script dus gewoon weg gooien en een nieuwe zoeken, maken.

Dit script is dus wss ook niet meer veilig. En het is gewoon out date.
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Freestyle schreef:
Quote:
Heb ik gedaan, zoals ik al zei bij php5.2 werkt hij wel.
Hier heb je jouw probleem al, script dus gewoon weg gooien en een nieuwe zoeken, maken.

Dit script is dus wss ook niet meer veilig. En het is gewoon out date.

Wat een bullshit!

explode(., $fname)

Dat stukje returnt een array. Deze error ontstaat meestal bij een array. Ik weet niet of er iets verandert is aan de functie end() in de volgende versie van php. Maar daar kan het aan liggen.

Probeer het anders een los van elkaar te doen.

dus $var1 = end(explode(., $fname));

en dan $fext = strtolower($var1);

Ik heb het niet getest maar dit wil nog wel eens werken. (absoluut geen garantie)!
0
Berichten
5.795
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rogier schreef:
Eerdere citaten tonen
Freestyle schreef:
Quote:
Heb ik gedaan, zoals ik al zei bij php5.2 werkt hij wel.

Hier heb je jouw probleem al, script dus gewoon weg gooien en een nieuwe zoeken, maken.

Dit script is dus wss ook niet meer veilig. En het is gewoon out date.
Wat een bullshit!

explode(., $fname)

Dat stukje returnt een array. Deze error ontstaat meestal bij een array. Ik weet niet of er iets verandert is aan de functie end() in de volgende versie van php. Maar daar kan het aan liggen.

Probeer het anders een los van elkaar te doen.

dus $var1 = end(explode(., $fname));

en dan $fext = strtolower($var1);

Ik heb het niet getest maar dit wil nog wel eens werken. (absoluut geen garantie)!

Met de functie END() krijg je de laatste value van een array dus dan krijg je die extentie
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Freestyle schreef:
Quote:

!! DONT FORGET TO CHMOD THE UPLOAD FOLDER TO 0777
Heb je dat wel gedaan?

En maak ff een duidelijke titel!

Een grote doos stront voor diegene die heeft geschreven. Chmod 777 moet je NOOIT doen, De beste is altijd nog 755. Als die niet werkt, gebruik dan wel 777 en geef de systeembeheerder een grote schop onder zijn kont thumbsup.

En by the way, zoals je in de error kan opmaken zit dit los van eventuele rechten.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Znoals je kan zien op end() geeft die via een pass-by reference ( &$array ) dingen door. Volgens die functie mag je alleen ECHTE arrays doorgeven. Jij geeft een functie door. Dit mag niet.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren