[php] avatars uploaden

Gestart doorRik35 reacties73 weergaven

36 berichten · pagina 1 van 3

Rik

Lid · Topicstarter

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Heya one2xs,

Jullie kennen vast wel het probleem van avatars uploaden, het is bijvoorbeeld niet beveiligd, of iemand upload een te grote avatar.

Ik zit nu dus ook met dit probleem. Ik wil namelijk dat mensen een avie kunnen uploaden, en deze mag maximaal 100*100 px zijn. Verder mag hij maar een bepaalde mb-groote hebben, omdat ik niet teveel zooi op mijn host wil hebben. Ook moet, als de avatar veranderd wordt, de oude worden overschreven, zodat ik niet met duizende avies blijf zitten.

Het moet dus eigenlijk net iets worden als wat one2xs nu heeft.

Kan iemand mij verder helpen?

~ Rik
0
Miel

Lid

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
1. De breedte en hoogte met een ifje kijken of die kleiner of gelijk zijn aan 100, zo ja, doorgaan, zo nee; Foutmelding geven.
2. De aantal bytes van het bestand bekijken, en met een ifje kijken of die hoger is dan jou limiet, zo ja; een Foutmelding geven, zo nee; Doorgaan.
3. Alles opslaan als 1 extensie, met GD library functie.
0
Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
BTW: Weet iemand hoe je kan maken dat mensen avatars kunnen kiezen ipv uploaden?
0
Rik

Lid · Topicstarter

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Miel schreef:
1. De breedte en hoogte met een ifje kijken of die kleiner of gelijk zijn aan 100, zo ja, doorgaan, zo nee; Foutmelding geven.
2. De aantal bytes van het bestand bekijken, en met een ifje kijken of die hoger is dan jou limiet, zo ja; een Foutmelding geven, zo nee; Doorgaan.
3. Alles opslaan als 1 extensie, met GD library functie.

No shit sherlock, dat wist ik zelf ook wel..
0
Miel

Lid

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nou dan, dan kan je het toch maken?emo
0
Rik

Lid · Topicstarter

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Miel schreef:
Nou dan, dan kan je het toch maken?emo
Nee, dat is net wat ik vraag.. Ik heb 0.01% verstand van upload shit
0
Berichten
247
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je kan ook doen dat ze niks oploaden maar dat je een link van een plaatje moet invoeren.
zo krijg je helemaal niks op je host.
0
Rik

Lid · Topicstarter

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Tunyque schreef:
Je kan ook doen dat ze niks oploaden maar dat je een link van een plaatje moet invoeren.
zo krijg je helemaal niks op je host.

Maar dat vraag ik niet, want dat heb ik nu al emo
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Wat is je probleem dan?

move_uploaded_file($_FILES[bestand][tmp_name], $username..png);
en hij is geüpload.

Eerst nog wat controles en checks enzo, en hoppa.. klaar.

@ Miel: Alles naar 1 extensie is niet handig, dan zit je met gifs en transparante pngs enzo, en als je de bestandsnaam opslaat hoeft het ook helemaal niet dezelfde extensie te zijn.
0
Miel

Lid

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
@Lennard: Dan gewoon de oude verwijderen.yummie
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Ja dat sowieso. emo
0
Rik

Lid · Topicstarter

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Ik zal er eens naar kijken, alleen ik heb gewoon geen verstand van dat soort dingen dusja emo
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]//kijken of er een bestand is geselecteerd[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]])) {[/COLOR]
    [COLOR= #FF8000]//als het bestand groter is dan 102400 bytes(100kb) word hij niet toegelaten[/COLOR]
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]size[/COLOR][COLOR= #007700]] >[/COLOR] [COLOR= #0000BB]102400[/COLOR][COLOR= #007700]) {[/COLOR]
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Het bestand is <b>"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]size[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]"</b>, het maximale toegstaan is <b>100kb</b>"[/COLOR][COLOR= #007700];
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
        [COLOR= #FF8000]//kijken of het bestand wel een gif, png of jpg is[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]type[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"image/gif"[/COLOR] [COLOR= #007700]||[/COLOR] [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]type[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"image/png"[/COLOR]  [COLOR= #007700]||[/COLOR] [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]type[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"image/pjpeg"[/COLOR] [COLOR= #007700]||[/COLOR] [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]type[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"image/jpeg"[/COLOR][COLOR= #007700]) {[/COLOR]
            [COLOR= #FF8000]//kijken of er een nieuwe naam aan het bestand is gegeven[/COLOR]
            [COLOR= #0000BB]$x[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strrchr"]strrchr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]name[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000]"."[/COLOR][COLOR= #007700]);[/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]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]naam[/COLOR][COLOR= #007700]])) {[/COLOR]
                [COLOR= #0000BB]$naam[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]111111[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]9999999[/COLOR][COLOR= #007700]) .[/COLOR] [COLOR= #0000BB]$x[/COLOR][COLOR= #007700];
            }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
                [COLOR= #FF8000]//strip de extensie om die achter de nieuwe bestandsnaam te plakken[/COLOR]
                [COLOR= #0000BB]$x[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strrchr"]strrchr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]name[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000]"."[/COLOR][COLOR= #007700]);[/COLOR]
                [COLOR= #0000BB]$naam[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/rand"]rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]111111[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]9999999[/COLOR][COLOR= #007700]) .[/COLOR] [COLOR= #0000BB]$x[/COLOR][COLOR= #007700];
            }[/COLOR]
                [COLOR= #FF8000]//het bestand uploaden met de nieuwe of oude naam[/COLOR]
                [URL="http://www.php.net/move_uploaded_file"]move_uploaded_file[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]tmp_name[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000]"img/"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$naam[/COLOR][COLOR= #007700]);[/COLOR]
                [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]Het bestand is geuploaded naar img/[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$naam[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000].[/COLOR][COLOR= #007700]; 
               }
        }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Het bestand is geen png, jpg of gif."[/COLOR][COLOR= #007700];
        }
    }
}[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Selecteer een plaatje."[/COLOR][COLOR= #007700];
}[/COLOR]
?>
<form action="" method="post" enctype="multipart/form-data">
<b>Bestand:</b> <input type="file" name="bestand"><br>
<input type="submit" name="submit" value="Upload">
</form>


Moet je wel nog een en het ander aan aanpassen
0
Rik

Lid · Topicstarter

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Zou zoiets werken?
Zonee: Waarom niet
Zoja: Nog opmerkingen? emo
[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]]))
{[/COLOR]
    [COLOR= #FF8000]// Te groot bestand?[/COLOR]
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]size[/COLOR][COLOR= #007700]] >[/COLOR] [COLOR= #0000BB]102400[/COLOR][COLOR= #007700])
    {[/COLOR]
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Het bestand is <b>"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]size[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]"</b>, het maximale toegstaan is <b>100kb</b>"[/COLOR][COLOR= #007700];
    }[/COLOR] 
    [URL="http://www.php.net/else"]else[/URL] 
    [COLOR= #007700]{[/COLOR]
        [COLOR= #FF8000]// MIME-Type correct?[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR] [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]type[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"image/gif"[/COLOR]   [COLOR= #007700]||[/COLOR] 
            [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]type[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"image/png"[/COLOR]   [COLOR= #007700]||[/COLOR] 
            [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]type[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"image/pjpeg"[/COLOR] [COLOR= #007700]||[/COLOR] 
            [COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]type[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"image/jpeg"[/COLOR][COLOR= #007700]) 
        {[/COLOR]
            [COLOR= #FF8000]// Extentie correct?[/COLOR]
            [COLOR= #0000BB]$rEFileTypes[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"/^.(jpg|jpeg|gif|png|){1}$/i"[/COLOR][COLOR= #007700];[/COLOR]
            [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/preg_match"]preg_match[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$rEFileTypes[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/strrchr"]strrchr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]tmp_name[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000].[/COLOR][COLOR= #007700])))
            {[/COLOR]
                [COLOR= #FF8000]// Uploaden naar _ROOT_(http://www.mywerewolf.nl)/avatars/gebruikersid.ext[/COLOR]
                [URL="http://www.php.net/move_uploaded_file"]move_uploaded_file[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]tmp_name[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000]"../avatars/"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]uId[/COLOR][COLOR= #007700]] .[/COLOR] [URL="http://www.php.net/strrchr"]strrchr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]tmp_name[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000].[/COLOR][COLOR= #007700]));[/COLOR]
                
                [COLOR= #FF8000]// Is alles correct geupload?[/COLOR]
                [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/is_uploaded_file"]is_uploaded_file[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_FILES[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bestand[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]tmp_name[/COLOR][COLOR= #007700]]))
                {[/COLOR]
                    [COLOR= #FF8000]// We geven een "error" dat alles goed is gegaan[/COLOR]
                    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]De avatar is upgeload[/COLOR][COLOR= #007700];
                }
            }[/COLOR]
            [COLOR= #FF8000]// Extentie is niet correct[/COLOR]
            [URL="http://www.php.net/else"]else[/URL]
            [COLOR= #007700]{[/COLOR]
                [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Het bestand is geen png, jpg of gif."[/COLOR][COLOR= #007700];    
            } 
        }[/COLOR]
        [COLOR= #FF8000]// MIME-Type is niet correct [/COLOR]
        [URL="http://www.php.net/else"]else[/URL] 
        [COLOR= #007700]{[/COLOR]
            [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Het bestand is geen png, jpg of gif."[/COLOR][COLOR= #007700];
        }
    }
}[/COLOR]
[COLOR= #FF8000]// Plaatje is niet geüpload [/COLOR]
[URL="http://www.php.net/else"]else[/URL] 
[COLOR= #007700]{[/COLOR]
    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Selecteer een plaatje."[/COLOR][COLOR= #007700];
}[/COLOR]
?>
<form action="" method="post" enctype="multipart/form-data">
<b>Bestand:</b> <input type="file" name="bestand"><br>
<input type="submit" name="submit" value="Upload">
</form>
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Gelukkig heb je er iets aan gehad smile
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