Uploadsysteem Top PHP tutorial

Door Niels Kieviet, 6 jaar geleden, 16.135x bekeken

Een heus uploadsysteem met daaraan vastgekoppeld een loginsysteem en een winkelwagen. Het upload systeem en het inlogsysteem worden in het 'normale' programmeren gemaakt en daarna zal ik overgaan tot het object georĂ¯enteerde programmeren.

Gesponsorde koppelingen

Inhoudsopgave

  1. Inleiding
  2. Index pagina
  3. Benodigd heden
  4. Upload pagina
  5. Configuratie bestand
  6. Uploaden (PHP)
  7. Afronden uploaden
  8. Slot

 

Er zijn 30 reacties op 'Uploadsysteem'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
- SanThe -
- SanThe -
6 jaar geleden
 
Even heel snel doorgekeken.
Ziet er wel goed uit.
Wat mij wel opviel is dat je bij de INSERT 8 velden hebt en 7 waarden.
Niels Kieviet
Niels Kieviet
6 jaar geleden
 
Dankje santhe.. al ben ik er zelf niet zo tevreden over.. Ik blijf maar aanpassen omdat die code niet goed staat :P Maar ik ga het aanpassen:)

Bedankt voor je reactie

EDIT

Ik was de sys_info vergeten:-)
The Ultimate
The Ultimate
6 jaar geleden
 
0 +1 -0 -1
Zet wel een komma tussen 'ip' en 'sys_info' anders levert de query een foutmelding op.

Overigens is het 'enige' en niet 'enigste'. Je kunt namelijk niet meer alleen zijn dan in je eentje.

Ik heb het even snel doorgenomen en misschien heb ik er overheen gelezen maar hoe zit het met de veiligheid? Kun je bijvoorbeeld ook php, txt of exe uploaden?
Niels Kieviet
Niels Kieviet
6 jaar geleden
 
0 +1 -0 -1
@Bart

Sorry, kwas weer eens te snel.

Over veiligheid

Ik heb een array met toegestane extensies;)
Mr.Ark
Mr.Ark
6 jaar geleden
 
0 +1 -0 -1
Quote:
Ik heb een array met toegestane extensies;)


Waar dan? ^^

Kijk ook eens naar exif_imagetype
Verder zou je nog getimagesize kunnen gebruiken om te kijken of er wel een width of height is.
Niels Kieviet
Niels Kieviet
6 jaar geleden
 
0 +1 -0 -1
$FotoMIME = array ('image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif');

Regel 18;)


Ja over die functie hebben we het gehad:P Maar mijn webserver accepteert die niet:P Even kijken of ik dat kan fixen.
Mr.Ark
Mr.Ark
6 jaar geleden
 
0 +1 -0 -1
Quote:
$FotoMIME = array ('image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif');


Dat is een array met MIME Types ^^

Quote:
Ja over die functie hebben we het gehad:P Maar mijn webserver accepteert die niet:P Even kijken of ik dat kan fixen.


Dan nog kan je hem erin bouwen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?PHP

if(function_exists('exif_imagetype'))
{

    # Check met exif_imiagetype
}
else
{
    # Check met $_FILES type
}

?>
Niels Kieviet
Niels Kieviet
6 jaar geleden
 
0 +1 -0 -1
@Mr. Ark

Ik heb check of er geen null byte wordt geupload toegevoegd. En die extensie check ook. Tnx voor je reactie!
Afra ca
Afra ca
6 jaar geleden
 
Je schrijft in je inleiding dat je nog gaat schrijven over object georienteerd programmeren. Met alle respect, maar met de onlangs verschenen tutorial van Blanche, die links in het menu nog klikbaar is, denk ik dat je jezelf de moeite kan besparen.

Heb verder de tutorial niet goed doorgelezen, maar meeste zag er prima uit. Alles werd wel zeer uitgebreid uitgelegd, wat voor veel mensen heel prima is. Ik ben trots op je ;)
Niels Kieviet
Niels Kieviet
6 jaar geleden
 
0 +1 -0 -1
@Afra

Dankjewel. Als ik iets doe wil ik het wel direct goed doen. Ik wil dus stukjes van blanche zijn tut overnemen en dan zo komen tot het gebruiken van xml en een winkelwagen in OO. Blanche heeft heel goed alle functions uitgelegd. En daarop wil ik dus een toepassing op maken.
Frank Baltus
Frank Baltus
6 jaar geleden
 
0 +1 -0 -1
Niels,

Duidellijk, maar toch een paar vragen.
Ben net begonnen met PHP vanuit het boek Dynamische websites met dreamweaver. Nu ben ik een pagina aan het maken de Dataobject, wizard formulier invoegen record. deze schrijft een heel groot gedeelte van de code en de sql querie om alles toe te voegen. Echter wil ik de foto niet in de dtabase, maar in een folder op de site plaatsen en een link in de database. Dat kan ook, maar waar plaats ik deze code ? doe ik dat onder het formulier?
Mr.Ark
Mr.Ark
6 jaar geleden
 
0 +1 -0 -1
Quote:
Echter wil ik de foto niet in de dtabase, maar in een folder op de site plaatsen en een link in de database.


Dat is nou net wat deze doet ^^
Frank Baltus
Frank Baltus
6 jaar geleden
 
0 +1 -0 -1
Mr.Ark,

Dat geef ik ook aan, maar waar ik mee zit is, in dreamweaver ontwerp je de layout van de pagina, en met de dataobjectswizard wordt ook de querie geschreven. Maar waar wordt de code geplaatst die de foto upload naar de map, de extensie controleert en de lnk in de string plaatst zodt deze in het juiste veld in de database geplaatst wordt. Brengt gelijk een nieuwe vraag, is het ook mogelijk om de foto de naam te geven van het record id dus bv 21.jpg, en de volgende 22.jpg enzovoort.
Wordt de gehele code geplaatst in het formulier, onder of boven het formulier?
Verders kom ik er redelijk goed uit, is ook heel duidelijk beschreven door Niels.
Niels Kieviet
Niels Kieviet
6 jaar geleden
 
0 +1 -0 -1
@Frank

Op de 6e pagina wordt dit uitgelegd;)
Arne
Arne
6 jaar geleden
 
0 +1 -0 -1
dit leek me wel een leuke tutorial om ff tedoen
maar ik stuit al dadelijk op een probleem

als ik de eerste tabel wil aanmaken via een sql query, krijg ik de error
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ENGINE=InnDB DEFAULT CHARSET = latin1' at line 12

alle andere tuts die ik gedaan heb, maakten gebruik van de INNO engine ...

wat moet ik doen om deze tut toch tedoen?

thx
Niels Kieviet
Niels Kieviet
6 jaar geleden
 
0 +1 -0 -1
Was idd een foutje van mij. Bedankt voor het melden. Als het goed is staat nu wel de goede code in de tut. Succes!
Arne
Arne
6 jaar geleden
 
0 +1 -0 -1
eerst en vooral, bedankt voor de moeite
maar ik ben er niet ingeslaagd de tutorial af te ronden ...
het stukje waar je zelf moet beginnen programmeren wil blijkbaar niet lukken ....
eerst maar ens een gemakkelijker tutje doen ...
Niels Kieviet
Niels Kieviet
6 jaar geleden
 
0 +1 -0 -1
Heei,

Wat wil er precies niet lukken dan? Ik denk zeker dat het verstandig is dat je een iets makkelijker tutje probeert ja.:)

Groetjes
Crude Oil
Crude Oil
6 jaar geleden
 
0 +1 -0 -1
Is wel een mooi scriptje :P
Niels Kieviet
Niels Kieviet
6 jaar geleden
 
0 +1 -0 -1
Ach ja er valt nog zo vee aan te verbeteren. Maar het begin is er inderdaad:)
Joren de Wit
Joren de Wit
5 jaar geleden
 
0 +1 -0 -1
Ik zie een foutje op pagina 6: je geeft daar een foutmelding voor UPLOAD_ERR_INI_SIZE die niet correct is.

Het bestand mag niet groter zijn dan de waarde die in php.ini opgegeven is, $MaxFotoSize heeft daar niets mee te maken (of zie ik ergens een ini_set over het hoofd). In plaats van deze variabele zou je met ini_get() de correcte waarde op kunnen halen...
Niels Kieviet
Niels Kieviet
5 jaar geleden
 
0 +1 -0 -1
Je hebt gelijk. Ik zal het aanpassen. Dankjewel!
Mark Zwerwer
Mark Zwerwer
5 jaar geleden
 
0 +1 -0 -1
Je neemt in je script ook png bestanden mee. Mij lukt het niet om deze daadwerkelijk zichtbaar te maken. Heb je een idee hoe dit komt?

Zie mijn topic hier: http://www.phphulp.nl/php/forum/topic/png-bestand-wordt-niet-laten-zien/72445/
Uiid -
Uiid -
4 jaar geleden
 
0 +1 -0 -1
prachtige tut!
Pim -
Pim -
4 jaar geleden
 
0 +1 -0 -1
Mocht je nog eens zin hebben om er aan te werken, Niels kan je twee dingen toevoegen:
Een vorm van abstractie. Die is nu volledig afwezig. Gebruik van functies of OOP geeft het goede voorbeeld.

Een andere vorm van beveiliging. Wanneer je alle data gecodeerd opslaat (al is het maar base64) en de data via een PHP script opvraagt, is het altijd onmogelijk slechte code uit te voeren via de uploads. Het is een wat extreme vorm van beveiliging, maar volgens mij is het wel waterdicht.
Jordi Kroon
Jordi Kroon
4 jaar geleden
 
0 +1 -0 -1
Offtopic:
@niels , Iets nieuws dat top PHP tutorial gedoe?
Niels Kieviet
Niels Kieviet
4 jaar geleden
 
0 +1 -0 -1
@Pim

Ja klopt, helemaal gelijk.. Alleen dit is er nog eentje uit de oude doos ;')

@Jordi
Ik weet het niet? Dat zat in de oude phphulp ook al geloof ik. Dat kan Bas aangeven.

edit: Ik kan het ook ;-)
Bram Labordus
Bram Labordus
4 jaar geleden
 
0 +1 -0 -1
okee, moet ik alles plakken en kopieren of moet ik dit gwn downloaden, want zie geen download knop ;)
Niels Kieviet
Niels Kieviet
4 jaar geleden
 
0 +1 -0 -1
Nee, het is een tutorial...

Maar goed ik heb het script met nog wat extra functionaliteit ook hier geplaatst: klik
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Rickert Bombaklats
Rickert Bombaklats
4 jaar geleden
 
0 +1 -0 -1
Nou wil ik niet vervelend zijn, maar er is een hele mooie class geschreven door Colin Verot.

Hier zitten verschrikkelijk veel functies in. En ook mogelijkheden voor image manipulatie.

Hier de URL: http://www.verot.net/php_class_upload_samples.htm

Echt een kijkje waard! Scheelt aanzienlijk veel code dmv OOP

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Inleiding
  2. Index pagina
  3. Benodigd heden
  4. Upload pagina
  5. Configuratie bestand
  6. Uploaden (PHP)
  7. Afronden uploaden
  8. Slot

Labels

PHP tutorial opties