login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Add Games

Offline Webtijn - 29/07/2005 20:27
Avatar van WebtijnPHP interesse Ik heb weer eens zo'n script met zo'n lekkere error.
De error is:
Warning: unlink(../screenshot/): Operation not permitted in /usr/export/www/hosting/webtijn/SpelCity/admin/spellen_toevoegen.php on line 54
(Een error die ik dus echt nog nooit heb gezien)

De code:
  1. <td width="100%" align="center">
  2. <form action="" method="post">
  3. <table width="440">
  4. <tr>
  5. <td width="178">Naam:</td>
  6. <td width="250"><input type="text" name="name" maxlength="20"></td>
  7. </tr>
  8. <tr>
  9. <td width="178">Categorie:</td>
  10. <td width="250">
  11. <select name="cat">
  12. <option value=1>18+</option>
  13. <option value=2>Avontuur</option>
  14. <option value=3>Sport</option>
  15. <option value=4>Actie</option>
  16. <option value=5>Multiplayer</option>
  17. <option value=6>Denk</option>
  18. <option value=7>Race</option>
  19. <option value=8>Behendigheid</option>
  20. <option value=9>Overig</option>
  21. </select>
  22. </td>
  23. </tr>
  24. <tr>
  25. <td width="178">Width:</td>
  26. <td width="250"><input type="text" name="width"></td>
  27. </tr>
  28. <tr>
  29. <td width="178">Height:</td>
  30. <td width="250"><input type="text" name="height"></td>
  31. </tr>
  32. <tr>
  33. <td width="178">Url:</td>
  34. <td width="250"><input type="text" name="url"></td>
  35. </tr>
  36. <tr>
  37. <td width="178">Screenshot:</td>
  38. <td width="250"><input class="forTexts" type="file" name="upfile" id="upfile" size"20"></td>
  39. </tr>
  40. <tr>
  41. <td><input type="submit" name="submit" value="submit"></td>
  42. </tr>
  43. </table>
  44. </form>
  45.  
  46. <?PHP
  47. include('config.php');
  48. if(!isset($_POST['submit'])) {
  49. echo '';
  50. }else{
  51. $query = "INSERT INTO `gm_games` (`id`, `cat`, `name`, `screenshot`, `width`, `height`, `url`, `views`) VALUES (' " . $_POST['id'] . " ', ' " . $_POST['cat'] . " ', ' " . $_POST['name'] . " ', ' " .$map.$_FILES['upfile']['name'] . " ', ' " . $_POST['width'] . " ', ' " . $_POST['height'] . " ', ' " . $_POST['url'] . " ', ' " . $_POST['vieuws'] . " ')";
  52. mysql_query($query) or die(mysql_error());
  53. if (file_exists($map.$_FILES['upfile']['name'])) {
  54. unlink($map.$_FILES['upfile']['name']);
  55. }
  56. if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
  57. move_uploaded_file($_FILES['upfile']['tmp_name'], $map.$_FILES['upfile']['name']);
  58. echo 'De game is succesvol toegevoegd!';
  59. }
  60. }
  61. ?>


Wie o wie weet hoe ik deze error oplos?

8 antwoorden

Gesponsorde links
Offline Martijn1989 - 29/07/2005 20:28
Avatar van Martijn1989 PHP ver gevorderde De foutmelding, heeft met het verwijderen van een foto te maken ... volgens mij moet je unlink helemaal niet gebruiken,.. maar kan het mis hebben
Offline Webtijn - 29/07/2005 20:32
Avatar van Webtijn PHP interesse :P, hij moet geen screenshots gaan verwijderen maar toevoegen.

Weet iemand anders misschien wel een 'klein' script waarmee ik afbeeldingen kan uploaden? Want in de script libery staan van die gigantische scripts met max grote enz.
Offline TFOL - 30/07/2005 00:35 (laatste wijziging 30/07/2005 00:36)
Avatar van TFOL PHP beginner wil je een simpel upload scriptje voor screenshots/foto's?

dat zal ik wel ffies voor je scripten 

  1. <?php
  2.  
  3. $locatie = "mapnaam_waar_fotos_naar_toe_moeten";
  4. ?>
  5.  
  6. <html>
  7.  
  8. <head>
  9. <title>Simpel uploader</title>
  10. </head>
  11.  
  12. <body>
  13.  
  14. <form method="POST" action="" enctype="multipart/form-data">
  15. <input type="file" name="foto"/><br /><br />
  16. <input type="submit" name="verzenden" value="Verzenden!"/>
  17. </form>
  18.  
  19. <?php
  20.  
  21. if(isset($_POST['verzenden']))
  22. {
  23. $foto = $_FILES['foto']['name'];
  24. $tmp_foto = $_FILES['foto']['tmp_name'];
  25.  
  26. if(move_uploaded_file($tmp_foto, $locatie."/".$foto))
  27. {
  28. echo "Foto is succesvol verzonden";
  29. }
  30. else
  31. {
  32. echo "Foto kon niet worden verzonden";
  33. }
  34. }
  35. ?>
  36.  
  37. </body>
  38.  
  39. </html>


veel plezier
:cool:
Offline Dolfje - 30/07/2005 10:01
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
unlink($map.$_FILES['upfile']['name']); mag die file niet deleten, mss ligt het aan de chmod-permissies
Offline Thomas - 30/07/2005 11:25
Avatar van Thomas Moderator Dat if-statement met die file_exists controleert of op de plaats van bestemming al een plaatje met de upload-naam bestaat, zoja, dan wordt dit (oude) plaatje eerst verwijderd.

Dit is echter niet nodig, omdat move_uploaded_file() plaatjes met dezelfde naam gewoon overschrijft, dus dat hele if-statement kan weg (php.net: If the destination file already exists, it will be overwritten).

Je moet inderdaad wel zorgen dat je (directory-)permissies goed staan.
Offline Webtijn - 30/07/2005 13:11 (laatste wijziging 30/07/2005 13:13)
Avatar van Webtijn PHP interesse Oke, nou ik heb het script weer een beetje kunnen fixen.
Met de nadruk op beetje 

Want nu kom ik met het volgende probleem:
Mijn site: http://www.mijnsite.nl/
Admin panel: http://www.mijnsite.nl/admin/

Nu staat add.php (spellen toevoegen) in admin.

Dit is de code:
  1. <?
  2. include("config.php");
  3.  
  4.  
  5. if ($action == "verwijderen") {
  6.  
  7. $sql = "DELETE FROM `gm_games` WHERE id = '".$_GET['id']."'";
  8. echo "<meta http-equiv=\"refresh\" content=\"1;URL=index.php?p=add&action=begin\">";
  9. echo "Verwijdert!";
  10. }
  11. elseif ($action == "toevoegen") {
  12.  
  13. if ($_POST['toevoegen']) {
  14. if (file_exists($map.$_FILES['upfile']['name'])) {
  15. unlink($map.$_FILES['upfile']['name']);
  16. }
  17. if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
  18. move_uploaded_file($_FILES['upfile']['tmp_name'], $map.$_FILES['upfile']['name']);
  19. $query = "INSERT into `gm_games` (id, cat, name, screenshot, width, height, url) VALUES ('','".$_POST['cat']."','".$_POST['name']."','".$map.$_FILES['upfile']['name']."','".$_POST['width']."','".$_POST['height']."','".$_POST['url']."')";
  20. mysql_query($query) or die(mysql_error());
  21. echo "De game is succesvol toegevoegd!";
  22. } else {
  23. echo "Er ging iets fout bij het uploaden!";
  24. }
  25. }
  26. else {
  27. echo "<form action=\"index.php?p=portfolio_beheer&action=toevoegen\" enctype=\"multipart/form-data\" name=\"upfile\" method=\"POST\">";
  28. echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">";
  29. echo "<tr>";
  30. echo "<td width=\"178\">Naam:</td>";
  31. echo "<td width=\"250\"><input type=\"text\" name=\"name\"></td>";
  32. echo "</tr>";
  33. echo "<tr>";
  34. echo "<td width=\"178\">Categorie:</td>";
  35. echo "<td width=\"250\">";
  36. echo "<select name=\"cat\">";
  37. echo "<option value=1>18+</option>";
  38. echo "<option value=2>Avontuur</option>";
  39. echo "<option value=3>Sport</option>";
  40. echo "<option value=4>Actie</option>";
  41. echo "<option value=5>Multiplayer</option>";
  42. echo "<option value=6>Denk</option>";
  43. echo "<option value=7>Race</option>";
  44. echo "<option value=8>Behendigheid</option>";
  45. echo "<option value=9>Overig</option>";
  46. echo "</select>";
  47. echo "</td>";
  48. echo "</tr>";
  49. echo "<tr>";
  50. echo "<td width=\"178\">Width:</td>";
  51. echo "<td width=\"250\"><input type=\"text\" name=\"width\"></td>";
  52. echo "</tr>";
  53. echo "<tr>";
  54. echo "<td width=\"178\">Height:</td>";
  55. echo "<td width=\"250\"><input type=\"text\" name=\"height\"></td>";
  56. echo "</tr>";
  57. echo "<tr>";
  58. echo "<td width=\"178\">Url:</td>";
  59. echo "<td width=\"250\"><input type=\"text\" name=\"url\"></td>";
  60. echo "</tr>";
  61. echo "<tr>";
  62. echo "<td width=\"50%\" class=\"forTexts\">Screen:</td>";
  63. echo "<td width=\"50%\" class=\"forTexts\"><input type=\"file\" name=\"upfile\" id=\"upfile\" size=\"20\"></td>";
  64. echo "</tr>";
  65. echo "<tr>";
  66. echo "<td width=\"50%\" class=\"forTexts\">&nbsp;</td>";
  67. echo "<td width=\"50%\" class=\"forTexts\">";
  68. echo "<br><input type=\"submit\" value=\"Toevoegen\" name=\"toevoegen\"></td>";
  69. echo "</tr>";
  70. echo "<tr>";
  71. echo "<td width=\"100%\" class=\"forTexts\" colspan=\"2\"><a href=\"javascript:history.go(-1);\">Ga terug</a></td>";
  72. echo "</tr>";
  73. echo "</table>";
  74. echo "</form>";
  75. }
  76. }
  77. // End
  78.  
  79. else {
  80. ?>
  81.  
  82. <?
  83. }
  84. ?>
  85. </body>
  86. </html>


En in de config staat nu:
$map = "../screenshot/"; // screenshots

Maar nu upload hij naar ../screenshot/ en zet hij in de db:
../screenshot/plaatje.extentie.
Het probleem is nu dat op de index linkt hij ook meteen naar ../screenshot terwijl het vanuit index moet zijn: /screenshot/plaatje.extentie.

Hoe los ik dat probleem op?

Edit
Ik heb de hele code gepost maar het gaat om toevoegen.
Offline Thomas - 30/07/2005 14:43
Avatar van Thomas Moderator Werk vanuit de root ?
Gebruik "/screenshot/" of "./screenshot/" ?
Offline Webtijn - 30/07/2005 20:11
Avatar van Webtijn PHP interesse Dat is juist het probleem, ik gebruik ../screenshot/ alleen hij zet datzelfde ook in de db. dus dan probeert hij vanaf de index ook ../ te doen maar dat kan natuurlijk niet. dan meot het zijn /screenshot/ maar hoe pas ik het script zo aan dat ik kan instellen wat hij in de db moet invoegen? dus in plaats van ../ maar: /
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.23s