Algemene beoordeling

- proces video uploaden
- uiterlijk
- wat kan ik er nog aan toevoegen?

Test website: http://videouploader.tk/

PS: video uploaden mag uiteraard!
Leuk gemaakt, echter oogt het vrij simpel en is het niet responsive. Ook kan ik ook afbeeldingen uploaden, wat niet lijkt te horen. Hopelijk GEEN scripts, wat ik niet heb uitgetest.

Ook mis ik de voorwaarden voor je site, want het lijkt mij niet de bedoeling om auteursrechtelijke video's te uploaden. Hoe ga je dit tegen? Onthoud wel dat jij verantwoordelijk wordt gesteld.

En wat maakt dit beter dan Dailymotion, Vimeo en YouTube?

Ik neem aan dat het puur een oefenprojectje is?

[size=xsmall]Toevoeging op 25/12/2017 09:50:08:[/size]

De website is nu offline?
Dit is een oefenprojectje.

Ja, iemand heeft een bestand geupload waardoor de site plat lag.

Er is dus nog werk aan de winkel.
Daar had ik je geloof ik in een vorig topic al gewaarschuwd ;-)
Nu kan je alleen MP4 bestanden uploaden.

http://videouploader.tk/
Maar ik kan wel andere video's overschrijven.
Lijkt mij niet de bedoeling.

En exit() en die() is niet netjes.
Hoi Allen,

Iemand dit die PHP script op een nettere manier kan schrijven?


<?php
if(isset($_POST['submit']))
{
 	$name = $_FILES['file']['name'];
  	$temp = $_FILES['file']['tmp_name'];
	$filetype = $_FILES['file']['type'];

	if ($filetype != 'video/mp4') {
    exit('<center>Stop, only MP4!</center>');
	}
    move_uploaded_file($temp,"uploaded/".$name);
    $url = "http://videouploader.tk/uploaded/$name";
   
    $db->query("INSERT INTO `videos` VALUES ('','$name','$url')");

	$query = $db->query("SELECT * FROM videos WHERE name = '".$name."'");
	$row = $query->fetch_assoc();
    echo "<center>Your upload is created <a href='watch.php?id=".$row['id']. "' target='blank_'>CLICK</a></center>";
}
?>


Mvg,
Mitchell

- controleer of de REQUEST_METHOD POST is, maar doe dit niet door middel van controleren op het bestaan van de naam van een submitknop
- je controleert niet of $_FILES fouten bevat
- je controleert niet of het opgegeven MIME-formaat (vaak enkel gebaseerd op extentie) wel juist is, hier bestaan libraries voor volgens mij, die met een zekere mate van waarschijnlijkheid kunnen vertellen van wat voor MIME-formaat een bestand daadwerkelijk is
- escaping van de DATA in de SQL statements ontbreekt volledig
- je maakt een volledige URL aan ($url), waarom niet gewoon een random naam/hash als een soort tinyurl naar het bestand? wat als de site straks verhuist? zorg dat je site/data verplaatsbaar is en blijft
- je maakt een volledige URL aan ($url), maar verwijst dan naar het bestand via een id (watch.php)? wat is dan het verschil tussen deze twee URLs?
- hoe zit het met eigenaarschap van de video's? kan iemand nog iets aanpassen of verwijderen?
Ik zou allereerst niet alleen op je MIME-type controleren, want je bent daarmee nog steeds behoorlijk vatbaar voor hacks. Je moet minimaal ook op de extensie controleren, en dan ook het laatste deel achter de punt.
Ook raad ik aan om elke video te voorzien van een unieke bestandsnaaam, en niet de naam die iemand zelf bedenkt. Hiermee is het nu mogelijk om video's te overschrijven, wat zeker niet wenselijk is. Een controle met file_exist() zou ook kunnen, maar een unieke naam lijkt mij het veiligste.
Zie ook: https://www.acunetix.com/websitesecurity/upload-forms-threat/


Ook is je foutafhandeling afwezig. Stel dat je geen schrijfrechten hebt, of dat het bestand te groot is. De upload stopt, maar de data wordt gewoon in de database geschreven en iedereen ziet een video niet werkt, omdat die niet bestaat! Dus zorg voor goede foutafhandeling. In de $_FILES['file']['error'] staat ook statuscodes vermeld na een upload. Hier kan je aan afleiden of de upload gelukt is of juist niet en wat de reden daarvan in. En dan kan je dit loggen, of aan de gebruiker mededelen (net wat relevant is voor hem, want issues met schrijfrechten zijn voor hem niet interessant en dus kan je beter een algemene melding geven over een technische fout).
Uiteraard log je alle fouten netjes. Ideaal als je gebruiker komt klagen over zijn/haar upload die niet werkte.

Ikzelf gebruik in mijn eigen CMS de Verot-class voor uploaden. Deze is zeer veilig en kent diverse handige opties en alles is ingebouwd, en standaard is hij ook zeer veilig naar mijn mening.

Dus genoeg werk om je script aan te pakken.

Als je het helemaal mooi wilt doen, dan gebruik je ook meteen ffmpeg om video's mee te converteren naar mp4. Als iemand nu een wmv of asf upload, dan kan je dit meteen omzetten naar mp4. Verder kan je ook verschillende resoluties genereren van je video's. Ideaal voor mensen op mobieltjes, zodat ze niet teveel bandbreedte gebruiken.

Wat ik ook kan aanraden is een goede player, zoals JWplayer of Video.js. De laatste gebruik ik en daar ben ik tevreden over.



Ik weet niet of je echt de video's wilt opslaan.
Kost behoorlijk wat geheugenruimte en laadtijd op de server.
Daarnaast krijg je te maken met rechthebbenden.
En de Stichting Brein (Antipiracy tegenwoordig) is daar echt streng mee.
En zoals aangegeven ook nog de voorwaarden om te kunnen uploaden.
Ik ben zelf met website bezig waar youtube linkjes in lijst geplaatst kunnen worden.
De benodigde gegevens worden eruit gevist (de VIDEO_ID's).
En met een regel maak je een afspeelbare anonieme embedded speellijst.
Youtube levert ook de afbeeldingen om op de website te plaatsen.
Zodat de video pas geladen wordt als er op geklikt wordt.
Wil je meer? er is ook een Youtube api bij github.

Dit is voorbeeld van Elvis die je in de browser kunt afspelen, maar ook op de site:
[url]https://www.youtube.com/embed/VIDEO_ID?playlist=PU5xxh5UX4U,Yf2KtxEtsEM,e8jAqvmnsIk,SBmAPYkPeYU,BeTurYZuY4A[/code]

Je zier hier ook echter de minnen. Een youtubeaccount kan instellen om embedded te blokken.
En er zijn landen die bepaalde video's niet tonen. Of uitsluitend in youtube zelf.
Maar bij eigen leden heb je daar geen last van uiteraard.

Het is niet alleen Brein die er streng mee is, maar ook andere partijen zoals film- en platenmaatschappijen.

Het zou vervelend zijn als jij of je hosting opeens een flinke rekening van vele honderden euro's zou krijgen van een groot bedrijf. Jij bent namelijk aansprakelijk hiervoor omdat jij de video's bewaart. En een DCMA-formuliertje gaat je echt niet helpen om je tegen deze grote bedrijven te beschermen.

Dus denk er goed over na. Want nu waag je je op zeer glas ijs, en het is zonde en jammer als je door een flinke claim onderuit zou gaan.

Ik begrijp dat dit een leuke oefening voor je is, maar zet het liever niet publiek, of je moet echt een zeer goede moderatie achter de hand hebben om elke video te controleren op de rechten. Bij YouTube gebeurt dit automatisch via een 'fingerprint-systeem' plus dat zij miljoenen dollars uitgeven om video's te mogen plaatsen (daarom kunnen wij daar gewoon genieten van de muziek van onder meer Ed Sheeran, Eminem, Taylor Swift, Image Dragons, Bruno Mars en Katy Perry).

Reageren