login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Uploaden als bestand niet bestaat (Opgelost)

Offline Waflix - 20/08/2011 20:01 (laatste wijziging 20/08/2011 20:40)
Avatar van WaflixLid Nu ben ik bezig met een simpel upload script waarmee je bestanden kunt uploaden. Het is natuurlijk ook handig als je het bestand alleen kunt uploaden als er nog geen ander bestand bestaat met dezelfde naam.

De code die ik nu heb om het bestand te uploaden (met een Captcha):
  1. <?php
  2. if( isset($_POST['f_sub'])) {
  3. if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
  4. $target_path = "tmp/";
  5.  
  6. $target_path = $target_path . basename($_FILES['uploadedfile']['name']);
  7.  
  8. if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
  9. echo "<font color='green'>Het bestand '". basename( $_FILES['uploadedfile']['name']).
  10. "' is succesvol geüpload.</font>";
  11. } else {
  12. echo "<font color='red'>Het uploaden is niet gelukt. Probeer het opnieuw!</font>";
  13. }
  14. } else {
  15. echo "<font color='red'>De ingevoerde Captcha is incorrect. Probeer het opnieuw!</font>";
  16. }
  17. }
  18. ?>
  19. <form enctype="multipart/form-data" action="f_upload.php" method="POST">
  20. <input type="hidden" name="MAX_FILE_SIZE" value="250000" />
  21. <b>Kies een bestand om te uploaden</b><br />
  22. <input name="uploadedfile" type="file" size="15" /> <input type="submit" name="f_sub" value="Upload bestand" /><br /><br />
  23. <img src="captcha.php" width="120px" height="40px" /><br /><input id="security_code" name="security_code" type="text" size="15" maxlength="10" /><br /><br />
  24. </form>


Ik heb alleen geen idee hoe ik zou moeten uitvinden of het bestand al bestaat, want...
  1. // ...deze code werkt niet.
  2. $filename = '/pathto/file.php';
  3.  
  4. if (file_exists($filename)) {
  5. echo "The file $filename exists";
  6. } else {
  7. echo "The file $filename does not exist";
  8. }


Of eigenlijk weet ik niet goed hoe die te gebruiken. Wat moet ik invullen op de plaats van $filename? $_POST['uploadedfile'] werkt namelijk niet...
----

Heb ik dàt weer; werkt de code ineens! Probleem opgelost.

4 antwoorden

Gesponsorde links
Offline Martijn2008 - 20/08/2011 20:49 (laatste wijziging 20/08/2011 20:50)
Avatar van Martijn2008 PHP beginner Je kunt ook in plaats van dat bericht dat een bestand al bestaat een random naam geven of bestandsnaam + 1 + extensie doen(image1.jpg, image2.jpg etc.)
Offline pijke - 21/08/2011 09:38
Avatar van pijke Gouden medaille

Lid
offtopic:
Je captcha is op deze manier niet veilig.
Mensen (en dus ook bots) kunnen de sessies uitlezen.
Versleutel je captcha dan ook altijd!
Offline Waflix - 21/08/2011 13:47
Avatar van Waflix Lid @Martijn2008: Dat is niet handig in dit geval. Ik wil de bestandsnamen houden. Maar zoals ik aan het einde van mijn bericht al heb gezet is het probleem al opgelost op magische wijze.

@pijke: En hoe doe ik dat dan?
Offline pijke - 21/08/2011 16:19
Avatar van pijke Gouden medaille

Lid
In je captcha script zet je de code in een sessie variabele.
Voordat je die erin zet moet je die versleutelen met MD5, SHA1, SHA256...
Bij de controle doe je de input van de gebruiker door dezelfde versleuteling en dan vergelijk je die met elkaar. Op die manier kan een bot ook in de sessie de captcha code niet achterhalen.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.314s