Gå til innhold

[Løst] hvordan få en kode til å utføres hvis en string inneholder .wlmp


Anbefalte innlegg

Jeg vil at en fil ikke skal lastes opp vis filendelsen er .wlmp fil, men koden vil ikke fungere, den tror at den alltid skal laste opp filen.

 

her er koden:

<?php
if (strpos($_FILES['filbane']['tmp_name'],'.wlmp') === false) {
if (file_exists("antallID.txt")) {
$gId = file_get_contents("antallID.txt");
$nId = $gId + 1;
$filpeker = fopen("antallID.txt", "w");
fwrite($filpeker, $nId);
fclose($filpeker);
$temp_fil = $_FILES['filbane']['tmp_name'];
$filbane = "filmfiler/" . $nId . $_FILES['filbane']['name'];
$filnavn = $nId . $_FILES['filbane']['name'];
move_uploaded_file($temp_fil, $filbane) or die ("En feil oppstod, prøv igjen senere. Har du prøvd dette for andre gang og fått denne meldingen, send en e-post til [email protected]");
$tekstfilnavn = str_ireplace(".", "", $filnavn);
$tekstfilnavn = $tekstfilnavn . ".txt";
$tekstfilbane = "filminfo/" . $tekstfilnavn;
$filpeker = fopen($tekstfilbane, "w");
fwrite($filpeker, $_POST['navn']);
fclose($filpeker);
echo "<h1>Filen er lastet opp</h1>";
echo "<br><br>Filen er nå lastet opp. Har du lyst til å dele filen med noen andre eller bygge den inn på egen nettside, se metodene under:<br><br>";
echo 'Link til filmfilen: <form name="del" action="sendMedEpost.php"><input type="text" name="link" value="http://rvgs.host.org/kulturfilm_samf/' . $filbane . '" readonly="readonly">';
echo '<br><br>Bygg inn på egen nettside(funker bare hvis nettleseren til brukeren har støtte for html5 og videoformatet du lastet opp, i tillegg til at du må ha andre ting som kreves for at html5 skal fungere på nettsiden):<br><textarea rows="4" cols="50" readonly="readonly"><video width="320" height="240" controls="controls"><source src="http://rvgs.host.org/kulturfilm_samf/' . $filbane . '">Din nettleser støtter ikke video-taggen i html5.</video></textarea>';
echo '<br><br>Send denne informasjonen til sms eller e-post:<br><select name="sendMed" onchange="fåInputSend()"><option value="velg">---Velg måte å sende på---</option><option value="sms">SMS</option><option value="epost">E-post</option></select><br><br><p id="sendInformasjon"></p></form>';
echo '<br><br>Her kan du se filmen din (fungerer bare hvis nettleseren din støtter video-taggen i html5 og nettleseren din også støtter videoformatet du lastet opp):<br><video width="320" height="240" controls="controls"><source src="http://rvgs.host.org/kulturfilm_samf/' . $filbane . '">Din nettleser støtter ikke video-taggen i html5.</video><br><br>Ellers så kan du se den eller laste den ned ved å gå til linken nevnt over eller klikk <a href="' . $filbane . '">her</a>.';
}
else {
echo "<h1>Feil</h1><br><br>Finner ikke fil, vennligst send en e-post til [email protected]";
}
}
else {
echo "<h1>Feil ved opplasting</h1>";
echo "<script>alert('Du har lastet opp et MovieMaker prosjekt, dette prosjektet er ubrukelig uten bilder/lyd/filmer, og derfor lastes ikke denne opp./n/nFor å laste opp et MovieMaker prosjekt så må du først konvertere den til en film (med endelsen .mp4, .wmv, eller lignende)./nDette gjøres ved at du i MovieMaker prosjektet går på fil (blå knapp øverst i venstre hjørne (når du har musepekren over knappen står det: Movie Maker, etterfulgt av frasen: Klikk her for å opprette, åpne eller lagre et prosjekt og angi ulike alternativer for moviemaker)), deretter går du på alternativet Lagre film, og så klikker du på alternativet Anbefalt for dette prosjektet, fins ikke denne muigheten så klikker du på alternativet For datamaskin, deretter så lagrer du filen der du vil ha den, og laster den opp på nytt');</script>";
}
?>

Lenke til kommentar
Videoannonse
Annonse

tmp_name er såvidt meg bekjent et helt random filnavn som er annerledes enn det originale, og bruker en annen filending enn den originale. Du bør sjekke filendingen enten før filen lastes opp, eller etter den er lagret. Avhengig av hvor viktig det er for sikkerheten ville jeg heller:

 

1. Javascript validering (før submit). Les her: http://stackoverflow.com/questions/3100549/limit-allowed-file-types-or-get-file-name-of-selected-file

 

2. Kjørt en siste sjekk med php for å være helt sikker, men det må du altså gjøre med $_FILES['name'] og ikke tmp_name.

 

Se også på denne koden som er litt "smartere" enn den du har der. Det er bedre å sjekke i forhold til filendinger som er tillatt, enn å sjekke etter de som ikke er tillatt.

 

$allowed =  array('gif','png' ,'jpg');
$filename = $_FILES['video_file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!in_array($ext,$allowed) ) {
   echo 'error';
}

Lenke til kommentar

tmp_name er såvidt meg bekjent et helt random filnavn som er annerledes enn det originale, og bruker en annen filending enn den originale. Du bør sjekke filendingen enten før filen lastes opp, eller etter den er lagret. Avhengig av hvor viktig det er for sikkerheten ville jeg heller:

 

1. Javascript validering (før submit). Les her: http://stackoverflow...f-selected-file

 

2. Kjørt en siste sjekk med php for å være helt sikker, men det må du altså gjøre med $_FILES['name'] og ikke tmp_name.

 

Se også på denne koden som er litt "smartere" enn den du har der. Det er bedre å sjekke i forhold til filendinger som er tillatt, enn å sjekke etter de som ikke er tillatt.

 

$allowed =  array('gif','png' ,'jpg');
$filename = $_FILES['video_file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!in_array($ext,$allowed) ) {
echo 'error';
}

 

Takk.

 

Grunnen til at jeg gikk for å spørre etter det som ikke var tillat var fordi de kan laste opp hvilken som helst fil de vil, men siden (de fleste iallefall) lager filmen i moviemaker, glemmer (selv om det har blitt sagt 100 ganger) at en moviemaker prosjektfil (.wlmp) ikke tar med filer som blir brukt (så den er ubrukelig).

Dermed er det best å ta å sjekke om det er en fil jeg ikke vil ha.

Lenke til kommentar

Ser den. Aner som sagt ikke hvor mye du vektlegger sikkerheten i tjenesten (om den er åpen eller intern), men det er uansett god praksis å gjøre det på måten jeg beskrev, slik at ikke folk får mulighet til å laste opp skadelige script/exe filer etc.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...