Upload script
Als ik een afbeelding wil uploaden krijg ik de volgende foutmeldingen:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Warning: copy() [function.copy]: SAFE MODE Restriction in effect. The script whose uid is 702 is not allowed to access /home/markt2000/domains/markt2000.nl/public_html/files/zoekertjes_groot/16 owned by uid 101 in /home/markt2000/domains/markt2000.nl/public_html/controllers/toevoegen.php on line 137
Warning: copy(files/zoekertjes_groot/16/brampaint.jpg) [function.copy]: failed to open stream: No such file or directory in /home/markt2000/domains/markt2000.nl/public_html/controllers/toevoegen.php on line 137
Warning: chmod() [function.chmod]: Unable to access files/zoekertjes_groot/16/brampaint.jpg in /home/markt2000/domains/markt2000.nl/public_html/controllers/toevoegen.php on line 138
Warning: chmod() [function.chmod]: SAFE MODE Restriction in effect. The script whose uid is 702 is not allowed to access /home/markt2000/domains/markt2000.nl/public_html/files/zoekertjes_groot/16 owned by uid 101 in /home/markt2000/domains/markt2000.nl/public_html/controllers/toevoegen.php on line 138
Warning: chmod() [function.chmod]: stat failed for files/zoekertjes_groot/16/brampaint.jpg in /home/markt2000/domains/markt2000.nl/public_html/controllers/toevoegen.php on line 138
Source image does not exist!
Warning: copy(files/zoekertjes_groot/16/brampaint.jpg) [function.copy]: failed to open stream: No such file or directory in /home/markt2000/domains/markt2000.nl/public_html/controllers/toevoegen.php on line 137
Warning: chmod() [function.chmod]: Unable to access files/zoekertjes_groot/16/brampaint.jpg in /home/markt2000/domains/markt2000.nl/public_html/controllers/toevoegen.php on line 138
Warning: chmod() [function.chmod]: SAFE MODE Restriction in effect. The script whose uid is 702 is not allowed to access /home/markt2000/domains/markt2000.nl/public_html/files/zoekertjes_groot/16 owned by uid 101 in /home/markt2000/domains/markt2000.nl/public_html/controllers/toevoegen.php on line 138
Warning: chmod() [function.chmod]: stat failed for files/zoekertjes_groot/16/brampaint.jpg in /home/markt2000/domains/markt2000.nl/public_html/controllers/toevoegen.php on line 138
Source image does not exist!
Ik heb zelf al een heleboel foutmeldingen kunnen verhelpen.
Waarschijnlijk zit het probleem zich in het chmodden van de afbeeldingenen.
Voor elk nieuwe advertentie maakt het script een map aan waar de afbeeldingen weer in komen. Die map welke het script aanmaakt wordt niet 777 ge-chmod. (denk ik)
Dit is het script:
Code (php)
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<?php
Class Controller_toevoegen Extends Controller_Base {
function index() {
$this->r['tpl']->define (array ('index.tpl', 'zoekertjes/toevoegen.tpl', 'gebruikers/niet_ingelogd.tpl'));
if($this->r['client']->ingelogd == 1) {
$sCategorieen = $this->r['sql']->query ("SELECT * FROM ##categorieen ORDER BY naam ASC");
if($this->r['sql']->rows ($sCategorieen)) {
while ($fCategorieen = $this->r['sql']->fetch ($sCategorieen)) {
$this->r['tpl']->assign ("Categorieen_R", "sPid", $fCategorieen['pid']);
$this->r['tpl']->assign ("Categorieen_R", "sNaam", $this->r['functions']->strip ($fCategorieen['naam']));
$this->r['tpl']->Parse ("Toevoegen", "Categorieen_R");
}
}
$this->r['tpl']->Parse ("index", "sToevoegen");
$this->r['tpl']->Parse ("Toevoegen");
}
else $this->r['tpl']->Parse ("Niet_ingelogd");
}
function afronden () {
$this->r['tpl']->define (array ('index.tpl', 'ajax/toevoegen_stap3.tpl'));
if($this->r['client']->ingelogd == 1) {
if(isset ($_POST['submit']) || $_SERVER['REQUEST_METHOD'] == 'post') {
$sFlood = $this->r['sql']->query ("SELECT * FROM ##flood WHERE pagina = 'Toevoegen' AND ip = '".$this->r['functions']->haal_ip()."'");
$sPro = $this->r['sql']->query ("SELECT pid FROM ##zoekertjes WHERE titel = '".mysql_real_escape_string ($_POST['titel'])."'");
$error = array ();
foreach ($_FILES AS $key => $content) {
if(isset ($_FILES [$key]['name']) && !empty ($_FILES[$key]['name'])) {
if(filesize ($_FILES[$key]['tmp_name']) < $this->r['cfg']->max) {
$sExtensie = end(explode (".", $_FILES[$key]['name']));
$sGrootte = filesize ($_FILES[$key]['tmp_name']);
if(in_array ($sExtensie, $this->r['cfg']->extensies)) $succes = 1;
else $error ['Fplaatje'.$key] = 'Afbeelding '.substr ($key, -1).' heeft een ongeldige extensie';
}
else $error ['Fplaatje'.$key] = 'Afbeelding '.substr ($key, -1).' is te groot.';
}
}
if($this->r['sql']->rows ($sFlood))
$error['Ftitel'] = 'U heeft zojuist al een advertentie geplaatst, hier moet minstens een minuut tussen zitten';
if(!isset ($_POST['titel']) || empty ($_POST['titel']) || $this->r['sql']->rows ($sPro))
$error['Ftitel'] = 'Deze titel is te klein, of er is al een advertentie met deze titel, verander deze.';
if(!isset ($_POST['plaats']) || empty ($_POST['plaats']) || strlen ($_POST['plaats']) > 100)
$error['Ftitel'] = 'Deze plaatsnaam is te klein of te groot.';
if(!isset ($_POST['tags']) || empty ($_POST['tags']) || strlen ($_POST['tags']) > 50)
$error['Ftitel'] = 'Deze tags zijn te klein of te groot.';
if(!isset ($_POST['omschrijving']) || empty ($_POST['omschrijving']))
$error['Fomschrijving'] = 'Deze omschrijving is te klein.';
if(!isset ($_POST['anders']) || $_POST['anders'] == 'Kies een andere mogelijkheid') {
## Prijs controleren
if(!isset ($_POST['prijs']) || empty ($_POST['prijs']))
$error['Fprijs'] = 'Deze prijs is ongeldig, kies prijs of een alternatief';
}
if(!isset ($_POST['veiling']) || ($_POST['veiling'] != 'Ja' && $_POST['veiling'] != 'Nee') )
$error['Fveiling'] = 'Kies veiling ja/nee';
if(isset ($_POST['veiling']) && $_POST['veiling'] == 'Ja' && !ctype_digit ($_POST['lengte']))
$error['Flengte'] = 'De lengte van de veiling is ongeldig';
if(isset ($_POST['veiling']) && $_POST['veiling'] == 'Ja' && (!empty ($_POST['anders']) && $_POST['anders'] == 'Kies een andere mogelijkheid') && empty ($_POST['buynow']))
$error['Flengte'] = 'De buynow van de veiling is ongeldig';
if(count ($error) > 0) {
## Stap 1 weer weergeven
foreach ($_POST AS $key => $content) $this->r['tpl']->assign ("Toevoegen", "V".$key, $content);
$this->r['tpl']->assign ("Toevoegen", "sCategorie", $this->r['functions']->strip ($_POST['categorie']));
$this->r['tpl']->assign ("Toevoegen", "sSubcategorie", $this->r['functions']->strip ($_POST['subcategorie']));
$this->r['tpl']->assign ("Toevoegen", "sSubsubcategorie", $this->r['functions']->strip (@$_POST['subsubcategorie']));
$this->r['tpl']->assign ("Toevoegen", $this->r['functions']->strip (@$_POST['lengte']), 'selected="selected"');
$this->r['tpl']->assign ("Toevoegen", $this->r['functions']->strip (@$_POST['veiling']), 'selected="selected"');
$this->r['tpl']->assign ("Toevoegen", $this->r['functions']->strip (@$_POST['anders']), 'selected="selected"');
foreach ($_POST AS $key => $content) $this->r['tpl']->assign ("Toevoegen", $key, $content);
foreach ($error AS $key => $value)
{
$this->r['tpl']->assign ("Toevoegen", $key, '<font color="red">*</font>');
$this->r['tpl']->assign ("sError_R", "sFout", $value);
$this->r['tpl']->Parse ("sError", "sError_R");
}
$this->r['tpl']->Parse ("Toevoegen", "sError");
$this->r['tpl']->Parse ("Toevoegen");
}
else {
## Flood
$this->r['sql']->query ("INSERT INTO ##flood (pagina, datum, ip) VALUES ('Toevoegen', '".time()."', '".$this->r['functions']->haal_ip ()."')");
## Advertentie plaatsen
$this->r['sql']->query ("INSERT INTO
##zoekertjes (
titel,
uid,
plaats,
tags,
omschrijving,
prijs,
anders,
datum,
subcategorie,
subsubcategorie,
veiling,
veiling_lengte,
buynow) VALUES (
'".mysql_real_escape_string ($_POST['titel'])."',
'".mysql_real_escape_string ($this->r['user']['pid'])."',
'".mysql_real_escape_string ($_POST['plaats'])."',
'".mysql_real_escape_string ($_POST['tags'])."',
'".mysql_real_escape_string ($_POST['omschrijving'])."',
'".mysql_real_escape_string ($_POST['prijs'])."',
'".(!empty ($_POST['anders']) && $_POST['anders'] != 'Kies een andere mogelijkheid' ? mysql_real_escape_string ($_POST['anders']) : '')."',
'".time ()."',
'".mysql_real_escape_string ($_POST['subcategorie'])."',
'".mysql_real_escape_string (@$_POST['subsubcategorie'])."',
'".mysql_real_escape_string ($_POST['veiling'])."',
'".mysql_real_escape_string ($_POST['lengte'])."',
'".mysql_real_escape_string ($_POST['buynow'])."')");
## Uploaden
$sPid = $this->r['sql']->last_id ();
$sAfbeeldingen = array ();
if(isset ($_FILES)) {
foreach ($_FILES AS $key => $content) {
if(isset ($_FILES [$key]['name']) && !empty ($_FILES[$key]['name'])) {
if(filesize ($_FILES[$key]['tmp_name']) < $this->r['cfg']->max) {
$sExtensie = end(explode (".", $_FILES[$key]['name']));
$sGrootte = filesize ($_FILES[$key]['tmp_name']);
if(in_array ($sExtensie, $this->r['cfg']->extensies)) {
if(!is_dir ('files/zoekertjes/'.$sPid)) mkdir ('files/zoekertjes/'.$sPid);
if(!is_dir ('files/zoekertjes_groot/'.$sPid)) mkdir ('files/zoekertjes_groot/'.$sPid);
copy($_FILES[$key]['tmp_name'], 'files/zoekertjes_groot/'.$sPid.'/'.$_FILES[$key]['name']);
chmod('files/zoekertjes_groot/'.$sPid.'/'.$_FILES[$key]['name'], 0777 ) ;
require_once ('classes/image.php');
/* THUMBNAIL MODE */
// save to file (true) or output to browser (false)
$save_to_file = true;
// Quality for JPEG and PNG.
// 0 (worst quality, smaller file) to 100 (best quality, bigger file)
// Note: PNG quality is only supported starting PHP 5.1.2
$image_quality = 100;
// resulting image type (1 = GIF, 2 = JPG, 3 = PNG)
// enter code of the image type if you want override it
// or set it to -1 to determine automatically
$image_type = -1;
// maximum thumb side size
$max_x = 75;
$max_y = 75;
// cut image before resizing. Set to 0 to skip this.
$cut_x = 0;
$cut_y = 0;
// Folder where source images are stored (thumbnails will be generated from these images).
// MUST end with slash.
$images_folder = 'files/zoekertjes_groot/'.$sPid.'/';
// Folder to save thumbnails, full path from the root folder, MUST end with slash.
// Only needed if you save generated thumbnails on the server.
// Sample for windows: c:/wwwroot/thumbs/
// Sample for unix/linux: /home/site.com/htdocs/thumbs/
$thumbs_folder = 'files/zoekertjes/'.$sPid.'/';
///////////////////////////////////////////////////
/////////////// DO NOT EDIT BELOW
///////////////////////////////////////////////////
$to_name = '';
$from_name = $_FILES[$key]['name'];
$to_name = $_FILES[$key]['name'];
if (!file_exists($images_folder)) die('Images folder does not exist (update $images_folder in the script)');
if ($save_to_file && !file_exists($thumbs_folder)) die('Thumbnails folder does not exist (update $thumbs_folder in the script)');
// Allocate all necessary memory for the image.
// Special thanks to Alecos for providing the code.
ini_set('memory_limit', '-1');
// include image processing code
//include('include/image.class.php');
$img = new Zubrag_image;
// initialize
$img->max_x = $max_x;
$img->max_y = $max_y;
$img->cut_x = $cut_x;
$img->cut_y = $cut_y;
$img->quality = $image_quality;
$img->save_to_file = $save_to_file;
$img->image_type = $image_type;
// generate thumbnail
$img->GenerateThumbFile($images_folder . $from_name, $thumbs_folder . $to_name);
/* END THUMBNAIL MODE */
$sAfbeeldingen [] = $_FILES[$key]['name'];
}
}
}
}
}
$this->r['sql']->query ("UPDATE ##zoekertjes SET afbeeldingen = '".implode (", ", $sAfbeeldingen)."' WHERE pid = '".$sPid."'");
$this->r['functions']->redirect ('Succesvol', 'Deze advertentie is succesvol geplaatst.', $this->r['functions']->strip (str_replace (" ", "-", $_POST['titel'])).'.html', 3);
}
}
else $this->r['functions']->redirect ('Fout', 'Er ging iets fout', '', 3);
}
else $this->r['functions']->redirect ('Fout', 'Je bent niet ingelogd.', 'inloggen.html', 3);
}
}
?>
Class Controller_toevoegen Extends Controller_Base {
function index() {
$this->r['tpl']->define (array ('index.tpl', 'zoekertjes/toevoegen.tpl', 'gebruikers/niet_ingelogd.tpl'));
if($this->r['client']->ingelogd == 1) {
$sCategorieen = $this->r['sql']->query ("SELECT * FROM ##categorieen ORDER BY naam ASC");
if($this->r['sql']->rows ($sCategorieen)) {
while ($fCategorieen = $this->r['sql']->fetch ($sCategorieen)) {
$this->r['tpl']->assign ("Categorieen_R", "sPid", $fCategorieen['pid']);
$this->r['tpl']->assign ("Categorieen_R", "sNaam", $this->r['functions']->strip ($fCategorieen['naam']));
$this->r['tpl']->Parse ("Toevoegen", "Categorieen_R");
}
}
$this->r['tpl']->Parse ("index", "sToevoegen");
$this->r['tpl']->Parse ("Toevoegen");
}
else $this->r['tpl']->Parse ("Niet_ingelogd");
}
function afronden () {
$this->r['tpl']->define (array ('index.tpl', 'ajax/toevoegen_stap3.tpl'));
if($this->r['client']->ingelogd == 1) {
if(isset ($_POST['submit']) || $_SERVER['REQUEST_METHOD'] == 'post') {
$sFlood = $this->r['sql']->query ("SELECT * FROM ##flood WHERE pagina = 'Toevoegen' AND ip = '".$this->r['functions']->haal_ip()."'");
$sPro = $this->r['sql']->query ("SELECT pid FROM ##zoekertjes WHERE titel = '".mysql_real_escape_string ($_POST['titel'])."'");
$error = array ();
foreach ($_FILES AS $key => $content) {
if(isset ($_FILES [$key]['name']) && !empty ($_FILES[$key]['name'])) {
if(filesize ($_FILES[$key]['tmp_name']) < $this->r['cfg']->max) {
$sExtensie = end(explode (".", $_FILES[$key]['name']));
$sGrootte = filesize ($_FILES[$key]['tmp_name']);
if(in_array ($sExtensie, $this->r['cfg']->extensies)) $succes = 1;
else $error ['Fplaatje'.$key] = 'Afbeelding '.substr ($key, -1).' heeft een ongeldige extensie';
}
else $error ['Fplaatje'.$key] = 'Afbeelding '.substr ($key, -1).' is te groot.';
}
}
if($this->r['sql']->rows ($sFlood))
$error['Ftitel'] = 'U heeft zojuist al een advertentie geplaatst, hier moet minstens een minuut tussen zitten';
if(!isset ($_POST['titel']) || empty ($_POST['titel']) || $this->r['sql']->rows ($sPro))
$error['Ftitel'] = 'Deze titel is te klein, of er is al een advertentie met deze titel, verander deze.';
if(!isset ($_POST['plaats']) || empty ($_POST['plaats']) || strlen ($_POST['plaats']) > 100)
$error['Ftitel'] = 'Deze plaatsnaam is te klein of te groot.';
if(!isset ($_POST['tags']) || empty ($_POST['tags']) || strlen ($_POST['tags']) > 50)
$error['Ftitel'] = 'Deze tags zijn te klein of te groot.';
if(!isset ($_POST['omschrijving']) || empty ($_POST['omschrijving']))
$error['Fomschrijving'] = 'Deze omschrijving is te klein.';
if(!isset ($_POST['anders']) || $_POST['anders'] == 'Kies een andere mogelijkheid') {
## Prijs controleren
if(!isset ($_POST['prijs']) || empty ($_POST['prijs']))
$error['Fprijs'] = 'Deze prijs is ongeldig, kies prijs of een alternatief';
}
if(!isset ($_POST['veiling']) || ($_POST['veiling'] != 'Ja' && $_POST['veiling'] != 'Nee') )
$error['Fveiling'] = 'Kies veiling ja/nee';
if(isset ($_POST['veiling']) && $_POST['veiling'] == 'Ja' && !ctype_digit ($_POST['lengte']))
$error['Flengte'] = 'De lengte van de veiling is ongeldig';
if(isset ($_POST['veiling']) && $_POST['veiling'] == 'Ja' && (!empty ($_POST['anders']) && $_POST['anders'] == 'Kies een andere mogelijkheid') && empty ($_POST['buynow']))
$error['Flengte'] = 'De buynow van de veiling is ongeldig';
if(count ($error) > 0) {
## Stap 1 weer weergeven
foreach ($_POST AS $key => $content) $this->r['tpl']->assign ("Toevoegen", "V".$key, $content);
$this->r['tpl']->assign ("Toevoegen", "sCategorie", $this->r['functions']->strip ($_POST['categorie']));
$this->r['tpl']->assign ("Toevoegen", "sSubcategorie", $this->r['functions']->strip ($_POST['subcategorie']));
$this->r['tpl']->assign ("Toevoegen", "sSubsubcategorie", $this->r['functions']->strip (@$_POST['subsubcategorie']));
$this->r['tpl']->assign ("Toevoegen", $this->r['functions']->strip (@$_POST['lengte']), 'selected="selected"');
$this->r['tpl']->assign ("Toevoegen", $this->r['functions']->strip (@$_POST['veiling']), 'selected="selected"');
$this->r['tpl']->assign ("Toevoegen", $this->r['functions']->strip (@$_POST['anders']), 'selected="selected"');
foreach ($_POST AS $key => $content) $this->r['tpl']->assign ("Toevoegen", $key, $content);
foreach ($error AS $key => $value)
{
$this->r['tpl']->assign ("Toevoegen", $key, '<font color="red">*</font>');
$this->r['tpl']->assign ("sError_R", "sFout", $value);
$this->r['tpl']->Parse ("sError", "sError_R");
}
$this->r['tpl']->Parse ("Toevoegen", "sError");
$this->r['tpl']->Parse ("Toevoegen");
}
else {
## Flood
$this->r['sql']->query ("INSERT INTO ##flood (pagina, datum, ip) VALUES ('Toevoegen', '".time()."', '".$this->r['functions']->haal_ip ()."')");
## Advertentie plaatsen
$this->r['sql']->query ("INSERT INTO
##zoekertjes (
titel,
uid,
plaats,
tags,
omschrijving,
prijs,
anders,
datum,
subcategorie,
subsubcategorie,
veiling,
veiling_lengte,
buynow) VALUES (
'".mysql_real_escape_string ($_POST['titel'])."',
'".mysql_real_escape_string ($this->r['user']['pid'])."',
'".mysql_real_escape_string ($_POST['plaats'])."',
'".mysql_real_escape_string ($_POST['tags'])."',
'".mysql_real_escape_string ($_POST['omschrijving'])."',
'".mysql_real_escape_string ($_POST['prijs'])."',
'".(!empty ($_POST['anders']) && $_POST['anders'] != 'Kies een andere mogelijkheid' ? mysql_real_escape_string ($_POST['anders']) : '')."',
'".time ()."',
'".mysql_real_escape_string ($_POST['subcategorie'])."',
'".mysql_real_escape_string (@$_POST['subsubcategorie'])."',
'".mysql_real_escape_string ($_POST['veiling'])."',
'".mysql_real_escape_string ($_POST['lengte'])."',
'".mysql_real_escape_string ($_POST['buynow'])."')");
## Uploaden
$sPid = $this->r['sql']->last_id ();
$sAfbeeldingen = array ();
if(isset ($_FILES)) {
foreach ($_FILES AS $key => $content) {
if(isset ($_FILES [$key]['name']) && !empty ($_FILES[$key]['name'])) {
if(filesize ($_FILES[$key]['tmp_name']) < $this->r['cfg']->max) {
$sExtensie = end(explode (".", $_FILES[$key]['name']));
$sGrootte = filesize ($_FILES[$key]['tmp_name']);
if(in_array ($sExtensie, $this->r['cfg']->extensies)) {
if(!is_dir ('files/zoekertjes/'.$sPid)) mkdir ('files/zoekertjes/'.$sPid);
if(!is_dir ('files/zoekertjes_groot/'.$sPid)) mkdir ('files/zoekertjes_groot/'.$sPid);
copy($_FILES[$key]['tmp_name'], 'files/zoekertjes_groot/'.$sPid.'/'.$_FILES[$key]['name']);
chmod('files/zoekertjes_groot/'.$sPid.'/'.$_FILES[$key]['name'], 0777 ) ;
require_once ('classes/image.php');
/* THUMBNAIL MODE */
// save to file (true) or output to browser (false)
$save_to_file = true;
// Quality for JPEG and PNG.
// 0 (worst quality, smaller file) to 100 (best quality, bigger file)
// Note: PNG quality is only supported starting PHP 5.1.2
$image_quality = 100;
// resulting image type (1 = GIF, 2 = JPG, 3 = PNG)
// enter code of the image type if you want override it
// or set it to -1 to determine automatically
$image_type = -1;
// maximum thumb side size
$max_x = 75;
$max_y = 75;
// cut image before resizing. Set to 0 to skip this.
$cut_x = 0;
$cut_y = 0;
// Folder where source images are stored (thumbnails will be generated from these images).
// MUST end with slash.
$images_folder = 'files/zoekertjes_groot/'.$sPid.'/';
// Folder to save thumbnails, full path from the root folder, MUST end with slash.
// Only needed if you save generated thumbnails on the server.
// Sample for windows: c:/wwwroot/thumbs/
// Sample for unix/linux: /home/site.com/htdocs/thumbs/
$thumbs_folder = 'files/zoekertjes/'.$sPid.'/';
///////////////////////////////////////////////////
/////////////// DO NOT EDIT BELOW
///////////////////////////////////////////////////
$to_name = '';
$from_name = $_FILES[$key]['name'];
$to_name = $_FILES[$key]['name'];
if (!file_exists($images_folder)) die('Images folder does not exist (update $images_folder in the script)');
if ($save_to_file && !file_exists($thumbs_folder)) die('Thumbnails folder does not exist (update $thumbs_folder in the script)');
// Allocate all necessary memory for the image.
// Special thanks to Alecos for providing the code.
ini_set('memory_limit', '-1');
// include image processing code
//include('include/image.class.php');
$img = new Zubrag_image;
// initialize
$img->max_x = $max_x;
$img->max_y = $max_y;
$img->cut_x = $cut_x;
$img->cut_y = $cut_y;
$img->quality = $image_quality;
$img->save_to_file = $save_to_file;
$img->image_type = $image_type;
// generate thumbnail
$img->GenerateThumbFile($images_folder . $from_name, $thumbs_folder . $to_name);
/* END THUMBNAIL MODE */
$sAfbeeldingen [] = $_FILES[$key]['name'];
}
}
}
}
}
$this->r['sql']->query ("UPDATE ##zoekertjes SET afbeeldingen = '".implode (", ", $sAfbeeldingen)."' WHERE pid = '".$sPid."'");
$this->r['functions']->redirect ('Succesvol', 'Deze advertentie is succesvol geplaatst.', $this->r['functions']->strip (str_replace (" ", "-", $_POST['titel'])).'.html', 3);
}
}
else $this->r['functions']->redirect ('Fout', 'Er ging iets fout', '', 3);
}
else $this->r['functions']->redirect ('Fout', 'Je bent niet ingelogd.', 'inloggen.html', 3);
}
}
?>
Code (php)
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
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
<?php
/*
hier vertrouw je dus meer op $_POST['submit'] want
$_SERVER['REQUEST_METHOD'] == 'post' zal altijd false opleveren
*/
if(isset ($_POST['submit']) || $_SERVER['REQUEST_METHOD'] == 'post') {
}
>
[code]<?
/*
en hier ga je er maar vanuit dat $_FILES bestaat
end dat er redelijkerwijs $_FILES[$key]['error'] == 0 is
*/
foreach ($_FILES AS $key => $content) {
if(isset ($_FILES [$key]['name']) && !empty ($_FILES[$key]['name'])) {
?>
<?php
/*
en hier een 1 van de vele misstanden van de empty
empty() is een zinloze functie en dien je niet te gebruik
http://wiki.phpfreakz.nl/Empty
*/
if(!isset ($_POST['titel']) || empty ($_POST['titel']) || $this->r['sql']->rows ($sPro))
?>
<?php
/*
bij upload gebruik je per definitie: move_uploaded_file en niet copy!!
een chmod 777 op een image is veels te veel van het goede en uiteraard gebruik je ook niet de
$_FILES[$key]['name'] maar maak je je eigen filenaam. Op deze manier kan het heel eenvoudig zijn
om info te vergaren welke eigenlijk achter gesloten deuren behoort te blijven
zorg ervoor dat de target directory de juiste rechten heeft
*/
copy($_FILES[$key]['tmp_name'], 'files/zoekertjes_groot/'.$sPid.'/'.$_FILES[$key]['name']);
chmod('files/zoekertjes_groot/'.$sPid.'/'.$_FILES[$key]['name'], 0777 ) ;
?>
En zo ziet ik ook op plekken waar onnodige variabelen worden aangemaakt (?)
/*
hier vertrouw je dus meer op $_POST['submit'] want
$_SERVER['REQUEST_METHOD'] == 'post' zal altijd false opleveren
*/
if(isset ($_POST['submit']) || $_SERVER['REQUEST_METHOD'] == 'post') {
}
>
[code]<?
/*
en hier ga je er maar vanuit dat $_FILES bestaat
end dat er redelijkerwijs $_FILES[$key]['error'] == 0 is
*/
foreach ($_FILES AS $key => $content) {
if(isset ($_FILES [$key]['name']) && !empty ($_FILES[$key]['name'])) {
?>
<?php
/*
en hier een 1 van de vele misstanden van de empty
empty() is een zinloze functie en dien je niet te gebruik
http://wiki.phpfreakz.nl/Empty
*/
if(!isset ($_POST['titel']) || empty ($_POST['titel']) || $this->r['sql']->rows ($sPro))
?>
<?php
/*
bij upload gebruik je per definitie: move_uploaded_file en niet copy!!
een chmod 777 op een image is veels te veel van het goede en uiteraard gebruik je ook niet de
$_FILES[$key]['name'] maar maak je je eigen filenaam. Op deze manier kan het heel eenvoudig zijn
om info te vergaren welke eigenlijk achter gesloten deuren behoort te blijven
zorg ervoor dat de target directory de juiste rechten heeft
*/
copy($_FILES[$key]['tmp_name'], 'files/zoekertjes_groot/'.$sPid.'/'.$_FILES[$key]['name']);
chmod('files/zoekertjes_groot/'.$sPid.'/'.$_FILES[$key]['name'], 0777 ) ;
?>
En zo ziet ik ook op plekken waar onnodige variabelen worden aangemaakt (?)
Alle folders staan ge-chmod op 777, wat gaat er dan mis?
de file wordt chmod 777 en 777 staat gelijk aan executeerbaar, voor een file is 655 voldoende
dus als ik een mooi shellsciptje weet te uploaden, dan kan dat worden uitgevoerd. Resultaat kan dan zijn dat je alles kwijt bent.
een directory heeft aan 765 voldoende
Gewijzigd op 26/06/2010 17:36:31 door Noppes Homeland
Oke, zal ik onthouden. Maar kan dit probleem opgelost worden of is het onbegonnen werk?
Alle problemen zijn op te lossen, maar ik zal adviseren om dit te verbranden en zelf in 40 regels een goede fileupload afhandeling te schrijven, zit je ook niet vast aan andermans fratsen .
Noppes Homeland op 26/06/2010 17:34:03:
de file wordt chmod 777 en 777 staat gelijk aan executeerbaar, voor een file is 655 voldoende
een directory heeft aan 765 voldoende
een directory heeft aan 765 voldoende
Beide antwoorden zijn fout.
File => 644
Map => 755
Noppes Homeland op 26/06/2010 17:54:33:
Alle problemen zijn op te lossen, maar ik zal adviseren om dit te verbranden en zelf in 40 regels een goede fileupload afhandeling te schrijven, zit je ook niet vast aan andermans fratsen .
Nou dan kan ik wel ophouden. Heb totaal geen kaas gegeten van OOP terwijl alles OOP is gescript :-(
Ik ben bezig met upload script in OOP. Deze wordt door verschillende profs gecontroleerd maar is nog niet klaar. Is het heel urgent?
Eigenlijk krijg ik nu de neiging om een volledig VEILIG script te maken voor deze klant ipv afval gaan verbeteren...
Moet dat in OOP?
Het liefst wel maar waarschijnlijk gaat die niet moeilijk doen als het goed werkt zonder gebruik van OOP.
Ok