upload script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niels Peeren

Niels Peeren

07/08/2013 19:32:03
Quote Anchor link
Hey allemaal ik heb een vraagje over een upload script dat werkt met mp3 bestandjes

in chrome werkt alles perfect het bestandje wordt geupload en wordt geinsert in de database

maar in alle andere browsers krijg ik het bericht "Extension not allowed" terwijl het exact hetzelfde bestand is.

dit is de code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php

require_once 'mysql.php';

    $result = mysql_query("SELECT * FROM Songs");
    $num_rows = mysql_num_rows($result);
    


    $error = 0;
    

    $songnumber = $num_rows +=1;
    
$songname = '';

if ((($_FILES["file"]["type"] == "audio/mp3") || ($_FILES["file"]["type"] == "audio/mp3")) && ($_FILES["file"]["size"] < 21000000))
  {

  if ($_FILES["file"]["error"] > 0)
    {

    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }

  else
    {
    echo "";//another echo to display after upload is complete
 
 $query1 = mysql_query("SELECT * FROM Songs WHERE Songname = '". $_FILES["files"]["name"] ."");
 
 if($query1 != '') {
    $error +=1;
 }

 
    if (file_exists("../songs/" . $_FILES["file"]["name"]) || $error !=0)
      {

      echo $_FILES["file"]["name"] . " already exists. ";
      }

    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "../songs/" . $_FILES["file"]["name"]);
//Below shows the link for the mp3

    $songname = $_FILES["file"]["name"];

    mysql_query("INSERT INTO Songs (Songname, Songnumber) VALUES ('$songname', '$songnumber')");
    
      echo "Your song has been uploaded <a href=\"../index.php\">Click here</a> to go back";
      }
    }
  }

else
  {
  echo "Extension not allowed"; //Error message here if it's to big or wrong extension
  }
?>
 
PHP hulp

PHP hulp

25/11/2024 07:01:07
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/08/2013 20:31:50
Quote Anchor link
Hoi Niels,

PHP draait op de server, dus is niet browser afhankelijk. Laat het gedeelte van <form> tot </form> eens zien.

Heb je in de form tag wel enctype="multipart/form-data" meegegeven?
 
Niels Peeren

Niels Peeren

07/08/2013 21:09:33
Quote Anchor link
bedankt voor de reactie frank dit is de form die ik gebruik en ik gebruike de enctype

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<form action="phpfiles/upload_file.php" method="post" enctype="multipart/form-data">
<input id="upload" type="file" name="file" id="file" />

<input id="button" type="submit" name="submit" value="Upload" />
</form>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/08/2013 22:49:28
Quote Anchor link
Niels op regel twee staat twee keer een id attribute, en dat mag natuurlijk niet!
 
Niels Peeren

Niels Peeren

08/08/2013 09:40:35
Quote Anchor link
oh ik zie het , wat een stomme fout ik zal het even aanpassen heeft dit ook betrekking tot de werking van het script?
 
Chris -

Chris -

08/08/2013 09:59:26
Quote Anchor link
Nee, is alleen browserafhankelijk. Je checkt op MIME-type, en die kunnen per browser/OS anders zijn. Je kan beter controleren op de extensie, door bijv end(explode('.', $_FILES['file']['name'])) te doen. Dan kun je controleren of het bestand eindigt op .mp3 bijv. Dan nog zou je eigenlijk wel moeten controleren of het daadwerkelijk een MP3 bestand is, anders kan men ook gewoon PHP in een bestand plaatsen, als bijv. test.mp3 opslaan en vervolgens proberen uit te voeren op de server..
 
Kris Peeters

Kris Peeters

08/08/2013 10:30:00
Quote Anchor link
Chris - op 08/08/2013 09:59:26:
... gewoon PHP in een bestand plaatsen, als bijv. test.mp3 opslaan en vervolgens proberen uit te voeren op de server..


Ik veronderstel dat dit in principe geen probleem mag geven; .mp3 bestanden worden niet uitgevoerd als php.

Maar ja, als de instellingen zo zijn dat willekeurige extensies toch worden uitgevoerd als php ... dan zit je natuurlijk wel met een probleem.
 
Chris -

Chris -

08/08/2013 10:31:16
Quote Anchor link
:) Tenzij je het bijv. in een andere pagina kan includen. Bijvoorbeeld een index.php?pagina= systeem. Als die niet goed is beveiligd en je dus bestanden kan includen, kan dat op die manier..
 
Kris Peeters

Kris Peeters

08/08/2013 10:44:30
Quote Anchor link
ja; dat soort scripters zal ook wel nog rondlopen
 
Niels Peeren

Niels Peeren

08/08/2013 10:47:49
Quote Anchor link
ja inderdaad dat is niet wat ik wil , maar het enigste wat dus het uploaden tegen houdt in firefox is die check in de php , alles werkt naar behoren maar krijg telkens de extension not allowed error als het uploaden klaar is. maar hij upload niks.
 
Kris Peeters

Kris Peeters

08/08/2013 11:10:18
Quote Anchor link
Kan je voorlopig dit doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "Extension not allowed: " . $_FILES["file"]["type"];   // in jouw post lijn 53
?>


Dan kan je zien wat er gebeurt. Misschien verschijnt "audio/mp3" in hoofdletters, of zo.
Nu ja ... dan zie je het
Gewijzigd op 08/08/2013 11:10:54 door Kris Peeters
 
Niels Peeren

Niels Peeren

08/08/2013 12:31:19
Quote Anchor link
okay ik zal het even proberen

Toevoeging op 08/08/2013 12:37:36:

de reactie van firefox is : Extension not allowed: audio/mpeg

Toevoeging op 08/08/2013 12:50:09:

ohh hahahha ik heb het al gevonden , de vergelijking die ik maak is checken of het bestand een mp3 bestand is of een mp3 bestand is. dat is exact hetzelfde. firefox noemt het mpeg , chrome noemt het mp3. hat het gecopy paste van de eerste vergelijking maar nooit veranderd naar mpeg. net aangepast en het werkt perfect. iedereen bedankt voor de hulp!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.