Ik heb er geloof ik wel eens wat op gezien. Maar gelet op de structuur kun je beter een for-loop gebruiken en dan $_FILES['name/tmpname/userfile'][$i] gebruiken. Een foreach is namelijk erg flauw hierquote:Op zondag 5 juli 2009 14:38 schreef Swetsenegger het volgende:
Iemand hier al eens wat mee gedaan:
http://us.php.net/manual/en/features.file-upload.multiple.php Kan ik dan gewoon een foreach lus loslaten op $_FILES[file']?
Het is ook niet handig dat je informatie over uploads uit verschilende arrays moet halen. Designfoutje, denk ik.quote:Op zondag 5 juli 2009 14:42 schreef GlowMouse het volgende:
[..]
Ik heb er geloof ik wel eens wat op gezien. Maar gelet op de structuur kun je beter een for-loop gebruiken en dan $_FILES['name/tmpname/userfile'][$i] gebruiken. Een foreach is namelijk erg flauw hier
Hij bevat meer arrays: eentje met name, eentje met tmp_name, eentje met size, etc.quote:Op zondag 5 juli 2009 14:44 schreef Swetsenegger het volgende:
waarom? Ik heb toch gewoon 2 <input type="file" name="foto[]" bv. Dat de array $_FILES['foto'] vervolgens 2 array's bevat doet er toch niet toe?
Ja $_FILES['foto'] bevat meer arraysquote:Op zondag 5 juli 2009 14:48 schreef GlowMouse het volgende:
[..]
Hij bevat meer arrays: eentje met name, eentje met tmp_name, eentje met size, etc.
1 2 3 4 5 | if($_FILES['foto']['tmp_name']!=''){ //verwerk de meuk en gooi het in db } ?> |
Ja en die arrays zijn zo opgebouwd dat foreach niet handig is.quote:Op zondag 5 juli 2009 14:49 schreef Swetsenegger het volgende:
[..]
Ja $_FILES['foto'] bevat meer arrays
Maar als je multiple upload krijg je toch gewoon een array foto met multiple arrays erin?
Je hebt een id nodig, maar die kun je ook met een foreach wel pakken.quote:Op zondag 5 juli 2009 14:52 schreef GlowMouse het volgende:
[..]
Ja en die arrays zijn zo opgebouwd dat foreach niet handig is.
1 2 3 4 5 6 7 | for($i = 0; $i < count($_FILES['foto']), ++$i){ if($_FILES['foto'][$i]['tmp_name']!=''){ //verwerk de meuk en gooi het in db } } ?> |
1 2 3 4 5 6 7 | for($i = 0; $i < count($_FILES['foto']['tmp_name']), ++$i){ if($_FILES['foto']['tmp_name'][$i] != ''){ //verwerk de meuk en gooi het in db } } ?> |
Handige Superglobalquote:
In welk opzicht? dus in plaats van wat in deze code?quote:Op zondag 5 juli 2009 15:15 schreef GlowMouse het volgende:
Waarom geen http://nl.php.net/is_uploaded_file?
if($_FILES['foto']['tmp_name'][$i] != ''){quote:Op zondag 5 juli 2009 15:19 schreef Swetsenegger het volgende:
In welk opzicht? dus in plaats van wat in deze code?
.. is een mapje hoger; ../../index.php.quote:Op zondag 5 juli 2009 15:16 schreef cablegunmaster het volgende:
hoe kan ik naar een onderliggend bestand refereren?
bvb index.php en dan zit ik includes/logout.php en dan wou ik naar index.php refereren.
iets met een punt? las ik.
dus dan heb je bvb
c:\blablabla\includes\bestand.php
en van uit dat bestand wil je de naam van
c:\index.php weten relatief.
ik krijg nu:
http://localhost:8888/cablegunmaster%20v3.0/includes/index.php
ipv de map includes weg.![]()
Ik zag 'm zelf ook, nog voordat ik jou post had gezienquote:Op zondag 5 juli 2009 15:14 schreef GlowMouse het volgende:
count($_FILES['foto']) hangt niet af van het aantal geüploade files
HaHa HuHu past zijn post gauw aan![]()
nvmquote:Op zondag 5 juli 2009 15:16 schreef cablegunmaster het volgende:
hoe kan ik naar een onderliggend bestand refereren?
bvb index.php en dan zit ik includes/logout.php en dan wou ik naar index.php refereren.
iets met een punt? las ik.
dus dan heb je bvb
c:\blablabla\includes\bestand.php
en van uit dat bestand wil je de naam van
c:\index.php weten relatief.
ik krijg nu:
http://localhost:8888/cablegunmaster%20v3.0/includes/index.php
ipv de map includes weg.![]()
Ah tuurlijk... ja wel een stuk mooierquote:Op zondag 5 juli 2009 15:21 schreef GlowMouse het volgende:
[..]
if($_FILES['foto']['tmp_name'][$i] != ''){
infinite loop. Ik heb er ff een echootje tussen gezetquote:
1 2 3 4 5 6 | for($i = 0; $i < count($_FILES['foto']['tmp_name']), ++$i){ echo $i } } ?> |
Als ik voor de loop een print_r($_FILES['foto']['name']); zet krijg ik keurigquote:Op zondag 5 juli 2009 19:35 schreef GlowMouse het volgende:
Wat zegt print_r($_FILES['foto']['tmp_name'])?
quote:Op zondag 5 juli 2009 19:43 schreef GlowMouse het volgende:
Ik zie het al, die HuHu is niet zo goed met puntkomma's. Kijk eens goed naar je for-loop
Was Swetsenegger z'n schuld hoor, ik heb zijn code ge-copy-pastequote:
Mja, toch niet helemaal.quote:
1 2 3 | print_r('text :' . $var . '.'); ?> |
1 2 3 4 5 6 7 8 9 10 | define('TEST', '100'); if(defined(TEST)){ print('ja: '.TEST); }else{ print('nee: '.TEST); } ?> |
hoe kan ik dequote:
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 | function gebruikerBestaat($naam) { $sql = "SELECT username FROM cable_gebruiker WHERE username = '".$username."'"; $result = $db->query($sql) if(mysql_fetch_array($result) > 0) return true; } class db { protected $_queryCount; public function __construct() { $this->_queryCount = 0; } public function query($sql) { $this->_queryCount++; return mysql_query($sql); } public function getQueryCount() { return $this->_queryCount; } } ?> |
1 2 3 4 5 6 7 8 9 | function functie() { global $db; $sql = 'SELECT * FROM tabel;'; $result = $db->query($sql); } ?> |
De functie defined() verwacht een string en geen constant:quote:
1 2 3 4 5 6 7 8 | define('TEST', '100'); if(defined('TEST')){ print('ja: '. TEST); }else{ print('nee: '. TEST); } ?> |
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 | $db = new db(); function gebruikerBestaat($naam) { global $db; $sql = "SELECT username FROM cable_gebruiker WHERE username = '".$username."'"; $result = $db->query($sql) if(mysql_fetch_array($result) > 0) return true; } class db { protected $_queryCount; public function __construct() { $this->_queryCount = 0; } public function query($sql) { $this->_queryCount++; return mysql_query($sql); } public function getQueryCount() { return $this->_queryCount; } } ?> |
Dankjequote:Op maandag 6 juli 2009 10:58 schreef HuHu het volgende:
De waarde $db meegeven aan je functie, of een global $db doen.
[ code verwijderd ]
Ik wist wel dat het iets stoms zou zijn....quote:Op maandag 6 juli 2009 11:01 schreef HuHu het volgende:
[..]
De functie defined() verwacht een string en geen constant:
[ code verwijderd ]
Functies in functies gaat nog een stapje verder hoor, daar kun je maar beter niet aan beginnenquote:Op maandag 6 juli 2009 11:03 schreef cablegunmaster het volgende:
[..]
Dankjekan ik eindelijk functies in functies gebruiken
![]()
word mn code al een stuk ingewikkelder door
maak je geen zorgen daar GA ik aan beginnenquote:Op maandag 6 juli 2009 11:09 schreef HuHu het volgende:
[..]
Functies in functies gaat nog een stapje verder hoor, daar kun je maar beter niet aan beginnen. Dit is een leuke eerste opzet naar OO programmeren.
1 |
1 2 3 4 5 6 | function esc($input) { return mysql_escape_query($input); } ?> |
1 2 3 4 5 6 | $sql = "SELECT id, naam, leeftijd FROM tabel WHERE beroep = '". mysql_real_escape_string($beroep) ."' AND leeftijd >= ". (int)$leeftijd .";"; ?> |
quote:Op maandag 6 juli 2009 11:36 schreef HuHu het volgende:
Nou... de fout lijkt me vrij duidelijk: mysql_escape_query() bestaat niet. Je moet mysql_real_escape_string() gebruiken en dan ook alleen maar op de variabelen in je query.
1 2 3 4 5 6 | function esc($input) { return mysql_real_escape_string($input); } ?> |
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | // This started out as this — http://www.evoluted.net/community/code/directorylisting.php // It was then edited by Ryan McCue from http://cubegames.net/ to include file uploading // Then I took it and stripped it back to it's bare minimum of less than 150 lines of // PHP and HTML and just 20 lines of CSS. My name is Jim Whimpey and you can // find me at valhallaisland.com // This code is released under GPL 3.0 which is included in the bundle // Files to hide in the directory listing // add and subtract as you please $hide = array( 'resources', 'index.php', '.htaccess', '.htpasswd', '.DS_Store'); error_reporting(E_ERROR); // When downloading force it to actually download // rather than just open it in the browser if ($_GET['download']) { $file = str_replace('/', '', $_GET['download']); $file = str_replace('..', '', $file); if (file_exists($file)) { header("Content-type: application/x-download"); header("Content-Length: ".filesize($file)); header('Content-Disposition: attachment; filename="'.$file.'"'); readfile($file); die(); } } $filepath = $_SERVER['SCRIPT_FILENAME']; $scriptname = basename($filepath); $readpath = str_replace($scriptname, "", $filepath); $handle = opendir($readpath); // If deleting if (isset($_GET['rmfile'])) { unlink($readpath . $_GET['rmfile']); } // If uploading if ($_FILES['file']) { $success = move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name']); } while ($file = readdir($handle)) { if ($file == "." || $file == ".." || in_array($file, $hide)) continue; $key = @filemtime($file); $files[$key] = $file; } closedir($handle); // Sort our files @ksort($files, SORT_NUMERIC); $files = @array_reverse($files); <!DOCTYPE html> <html> <head> <title>Super Simple PHP File Manager</title> <link rel="stylesheet" type="text/css" href="resources/styles.css" /> </head> <body> $baseurl = $_SERVER['PHP_SELF']; <table border="0" cellspacing="5" cellpadding="5"> $arsize = sizeof($files); for ($i=0; $i<$arsize; $i++) { $ext = strtolower(substr($files[$i], strrpos($files[$i], '.')+1)); $filename = stripslashes($files[$i]); $fileurl = $files[$i]; if (strlen($filename) > 43) { $filename = substr($files[$i], 0, 40) . '...'; } <tr> <td><img src="../image.png" /></td> <td><a href=" echo $filename; "> echo $filename; </a></td> <td> echo round(filesize($leadon.$files[$i])/1024); KB</td> <td> echo date ("d/m/y", filemtime($leadon.$files[$i]));</td> <td><a href="./index.php?rmfile= echo $filename; ">Delete</a></td> </tr> } </table> <div id="upload"> <form method="post" action=" echo $_SERVER['PHP_SELF'];" enctype="multipart/form-data"> <p><input type="file" name="file" /></p> <p><input type="submit" value="Upload" /></p> </form> ?> |
RTFM, onder een van die dingen is het zo te vindenquote:* POST method uploads
* Error Messages Explained
* Common Pitfalls
* Uploading multiple files
* PUT method support
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |