Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [php] files uploaden advanced (https://forum.scholieren.com/showthread.php?t=376230)

Gus 13-02-2003 00:12

[php] files uploaden advanced
 
Ik heb een wizard gemaakt in PHP die gebruikers helpt bij het aanmaken van artikelen in een online tijdschrift. De wizard is debiel-proof, dus ik ga er van uit dat hij halverwege kan worden gestopt door mensen die erachter komen dat hun floppy met plaatjes nog thuisligt, etc.
Verder kunnen meerdere gebruikers tegelijkertijd de wizard runnen uiteraard.

De wizard kan op dit moment tekst etc. allemaal opslaan in een array, en die pas helemaal aan het eind, als de wizard klaar is, wegschrijven naar de database. Op die manier kan er vrijwel niks misgaan met users die tegelijkertijd dezelfde artikelnummers enzo overschrijven.

PROBLEEM: Ik zou het liefst bestanden ook op zo'n manier laten uploaden. Dus 1 voor 1 netjes uploaden in de wizard, maar pas "echt" op de server zetten als de wizard compleet is. Als de wizard niet afgemaakt wordt moeten de bestanden verdwijnen.

Oplossingen die ik had bedacht maar ik niet kan uitvoeren wegens technische onkunde:
- files als temporary files laten staan en pas cp'en naar de echte dir aan het eind van de wizard (lukt me niet, moet ik dan de link "vasthouden" ofzo?)

- files opslaan als gigantische arrays in php en die op de een of andere manier naar files schrijven (jaja...)

help!

Jon 13-02-2003 12:17

Nou, wegschrijven naar een database kun je schijnbaar al. Je zou die bestanden tijdelijk kunnen opslaan in een database (een tabel met bv de columns id, sessieid, bestand, bestandsnaam, filetype en datum). Als de wizardsessie afgesloten wordt schrijf je ze weg naar disk.

Gus 13-02-2003 13:05

Maar wanneer de gebruiker dan de wizard afsluit staat mijn tabel vol met temporary bestanden die ik er nooit meer uitkrijg...

Ik heb ondertussen de opbouw van de wizard zo veranderd dat hij 1 voor 1 de plaatjes wegschrijft (zoals scholieren.com!) en dat werkt een stuk praktischer.

Harrie 13-02-2003 14:27

Citaat:

Gus schreef:
Maar wanneer de gebruiker dan de wizard afsluit staat mijn tabel vol met temporary bestanden die ik er nooit meer uitkrijg...

Ik heb ondertussen de opbouw van de wizard zo veranderd dat hij 1 voor 1 de plaatjes wegschrijft (zoals scholieren.com!) en dat werkt een stuk praktischer.

maak een map 'tijdelijk' aan ofzo..
schrijf ze daar naartoe als ze uploaden maar nog niet klaar zijn..

als hij halverwege wordt afgesloten, gebeurt er op dat moment niets.

dan ga je een scriptje om de 24 u ofzo uitvoeren die alle bestanden daar verwijdert.

Wasp 13-02-2003 14:55

Citaat:

Harrie schreef:
dan ga je een scriptje om de 24 u ofzo uitvoeren die alle bestanden daar verwijdert.
Mbv een cronjobje ofzo.

Gus 13-02-2003 14:55

Ja, dat lijkt me te gek. Maar ik host de site niet zelf, laat het voor me doen (bij van-weert.nl) en ik vraag me af of die de moeite nemen zoiets te installeren. Als iemand nog een hele te gekke host weet binnen een studentenbudget met PHP en MySQL hou ik me aanbevolen.

Jon 13-02-2003 14:57

Wat ook kan is bij iedere nieuwe sessie even checken of vorige sessies afgerond zijn. Zo niet kun je de boel verwijderen.

Martin 13-02-2003 15:03

Citaat:

Gus schreef:
Als iemand nog een hele te gekke host weet binnen een studentenbudget met PHP en MySQL hou ik me aanbevolen.
http://www.freerider.nl

Specificaties:
  • 50 MB ruimte
  • 2 GB dataverkeer
  • MySQL
  • 30 mailadressen
  • Subdomeinen toegestaan
  • Registratie domeinnamen
Tarieven:
  • Registratie domeinnaam eenmalig: € 10,--
  • Domeinnaam per jaar (.nl) € 10,--
  • Hosting: € 2,-- per maand

Gus 13-02-2003 20:05

Jon: hoe kan ik checken of sessies afgerond zijn of niet? Dat klinkt precies zoals ik het bedoel eigenlijk... :)

Enlightenment 13-02-2003 20:20

Citaat:

Gus schreef:
Jon: hoe kan ik checken of sessies afgerond zijn of niet? Dat klinkt precies zoals ik het bedoel eigenlijk... :)
Session timeout?

Elke request zorgt ervoor dat de SID wordt gecontrolleert met het IP adres, en dat de timestamp wordt ververst, mits deze minder dan 30 minuten oud is.

Na 30 minuten is er dus een session timeout. Dit zou je ook kunnen controlleren. Per IP, ingelogde gebruiker, of SID als je die weet.


Alle tijden zijn GMT +1. Het is nu 11:26.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.