closen

  • PHP

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Link.

    Ahoi,

    wo genau ist jetzt dein Problem.
    Das ist doch eine ganz normale Form mit

    HTML-Quellcode

    1. enctype="multipart/form-data"

    Wegen den 500Mb musst du mal schauen, ob dein Hoster das in der PHP.ini zulässt bzw du selbst da eine max Größe setzen kannst. Ansonsten wird halt entweder per js/jquery deine Bedingungen zum senden abgefragt, oder per HTML5 required-Attribut, oder PHP beim senden abgefragt.
    Was hast du bereits, welches Problem hast du genau?
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Hi,

    Zu Punkt 1), 2) und 3):

    PHP-Quellcode

    1. <?php
    2. $msg = array();
    3. if(isset($_POST['submit'])){
    4. if(isset($_POST['copyright']) && $_POST['copyright'] == 'on'){
    5. // OK der Haken zum Confirm wurde gesetzt
    6. if(isset($_FILES['sample'])){
    7. // OK, Datei wurde hochgeladen
    8. if(strtolower($_FILES['sample']['type']) == 'audio/mpeg'){
    9. // OK, ist eine Musik-Datei
    10. if($_FILES['sample']['size'] <= 500000000){
    11. // OK, Datei ist kleiner-gleich 500MB
    12. if(file_exists('./samples') && is_dir('./samples')){
    13. // OK, im aktuellen Ordner existiert ein Unterordner "samples"
    14. if(move_uploaded_file($_FILES['sample']['name'], './samples')){
    15. $msg[] = "Datei wurde erfolgreich hochgeladen";
    16. // Jetzt Mail senden
    17. mail('deine-mailadresse@beispiel.de', 'Neues Sample!', 'Dies ist der Text der Nachricht.');
    18. }
    19. }else{
    20. $msg[] = "Leider existiert das Verzeichnis zum Reinspeichern des Samples nicht oder die Berechtigungen passen nicht";
    21. }
    22. }else{
    23. $msg[] = "Die hochgeladene Datei scheint groesser zu sein als erlaubt";
    24. }
    25. }else{
    26. $msg[] = "Offenbar ist das keine gueltige Musik-Datei";
    27. }
    28. }else{
    29. $msg[] = "Es wurde nix hochgeladen";
    30. }
    31. }else{
    32. $msg[] = "Copyright wurde nicht bestaetigt";
    33. }
    34. }
    35. ?>
    36. <!DOCTYPE html>
    37. <html>
    38. <head>
    39. <title>Test</title>
    40. <style>
    41. *{
    42. padding: 0px;
    43. margin: 0px;
    44. font-family: "calibri";
    45. box-sizing: border-box;
    46. color: #444444;
    47. }
    48. body{
    49. background-color: #f4f4f4;
    50. }
    51. main{
    52. margin: 32px;
    53. padding: 8px;
    54. background-color: #ffffff;
    55. border: 1px solid #cccccc;
    56. }
    57. input[type=text]{
    58. padding: 4px;
    59. }
    60. input[type=submit]{
    61. padding: 4px 8px 4px 8px;
    62. }
    63. .meldungen{
    64. margin: 8px;
    65. padding: 8px;
    66. background-color: #eef4ff;
    67. }
    68. table{
    69. border-collapse: collapse;
    70. }
    71. table tr td{
    72. padding: 8px 16px 8px 16px;
    73. }
    74. form{
    75. padding: 8px;
    76. }
    77. </style>
    78. </head>
    79. <body>
    80. <main>
    81. <?php
    82. if(isset($_POST['submit'])){
    83. if(!empty($msg)){
    84. echo "<div class='meldungen'>";
    85. echo "<p><strong>Meldungen:</strong></p>";
    86. echo "<pre>" . print_r($msg, true) . "</pre>";
    87. echo "</div>";
    88. }
    89. }
    90. ?>
    91. <form method="POST" enctype="multipart/form-data">
    92. <table>
    93. <tr>
    94. <td>Name</td>
    95. <td><input type="text" name="name" placeholder="Max Mustermann" required></td>
    96. </tr>
    97. <tr>
    98. <td>E-Mail</td>
    99. <td><input type="text" name="email" placeholder="max.mustermann@beispiel.de" required></td>
    100. </tr>
    101. <tr>
    102. <td>Sample</td>
    103. <td>
    104. <input type="file" size="500000000" name="sample" accept=".mp3,.mp4" required>
    105. </td>
    106. </tr>
    107. <tr>
    108. <td>Notes</td>
    109. <td><input type="text" name="note" placeholder="(optional)"></td>
    110. </tr>
    111. <tr>
    112. <td>Confirm</td>
    113. <td><input type="checkbox" name="copyright" id="confirm" required><label for="confirm">I confirm copyright and shit and stuff ...</label></td>
    114. </tr>
    115. </table>
    116. <p><input type="submit" name="submit" value="Submit"></p>
    117. </form>
    118. </main>
    119. </body>
    120. </html>


    Außerdem:
    stackoverflow.com/questions/21…-maximum-upload-file-size
    dokuwiki.org/faq:uploadsize
    Alle entsprechenden Einstellungen in der php.ini vornehmen oder am Anfang des Skripts temporär mit ini_set festlegen.
    Und natürlich noch Validierungen vornehmen. Sonst laden die Leute ja den ganzen Tag große Files auf deinen Server - das kann nur schief gehn. Vielleicht ne IP-Sperre oder nur für registrierte User, oder man muss eine E-Mail die an den User gesendet wird mit nem Link bestätigen etc....

    Link :thumbup:
    Hello World

    Link schrieb:

    Ja ne, lass mal. Bin grad auf Arbeit. Und wenn du Fragen hast, kannst du sie auch hier im Forum stellen ;)

    Link :thumbup:


    Oh.. ja ich weiß nicht wie ich es erklären soll.
    Ich habe ja einen Screenshot im Thread hinzugefügt wie es eigentlich aussieht.
    Wollte dir die gesamte Seite zeigen weil ich jetzt nicht weiß wo ich welches Befehl ersetzen muss..