Net als bijvoorbeeld op GoT, stop ik elk form-element in een array, die ik vervolgens server-side kan uitlezen, bijvoorbeeld:
Gisteren ben ik begonnen om een upload functie aan mijn CMS'je toe te voegen. Gebruikers kunnen een avatar uploaden, of althans - dat is de bedoeling:
Aan de serverkant heb ik dan (pseudo) de volgende functie:
Dit werkt perfect: de database wordt geupdate en de avatar staat in de test/ folder. Maar nu het volgende. Als ik 'userfile' toevoeg aan de edit-array, gaat het voud:
Dan heb ik geen idee hoe ik mijn scriptje werkend moet krijgen. Het maakt niet uit of ik:
aanroep - ik krijg telkens de melding "Notice: Undefined index: userfile". Toch zie ik dat bijvoorbeeld hier op GoT de naam van een file input, ook een naam als edit[userfile] krijgt. Wat doe ik verkeerd?
HTML:
1
2
3
| <input type="hidden" name="edit[id]"> <input type="text" name="edit[username]"> <input type="password" name="edit[password]"> |
Gisteren ben ik begonnen om een upload functie aan mijn CMS'je toe te voegen. Gebruikers kunnen een avatar uploaden, of althans - dat is de bedoeling:
HTML:
1
| <input type="file" name="userfile"> |
Aan de serverkant heb ik dan (pseudo) de volgende functie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| $edit = $_POST['edit']; edit($edit['id'], $edit['username'], $edit['password'], $_FILES); function edit($id, $username, $password, $avatar) { $result = db_query("UPDATE profiles SET name = '%s', password = '%s' WHERE uid = %d", $username, $password, $id); $uploaddir = 'C:/test/'; $uploadfile = $uploaddir . $_FILES['userfile']['name']; move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile); } |
Dit werkt perfect: de database wordt geupdate en de avatar staat in de test/ folder. Maar nu het volgende. Als ik 'userfile' toevoeg aan de edit-array, gaat het voud:
HTML:
1
| <input type="file" name="edit[userfile]"> |
Dan heb ik geen idee hoe ik mijn scriptje werkend moet krijgen. Het maakt niet uit of ik:
PHP:
1
2
3
4
| edit($edit['id'], $edit['username'], $edit['password'], $_FILES) of edit($edit['id'], $edit['username'], $edit['password'], $_FILES['userfile']) of edit($edit['id'], $edit['username'], $edit['password'], $edit[userfile]) of edit($edit['id'], $edit['username'], $edit['password'], $edit['userfile']) |
aanroep - ik krijg telkens de melding "Notice: Undefined index: userfile". Toch zie ik dat bijvoorbeeld hier op GoT de naam van een file input, ook een naam als edit[userfile] krijgt. Wat doe ik verkeerd?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."