een noob probleem (class)
ja ik denk dat dit een noop probleem is echter werk ik nooit met classes
ok uhm ik ben sinds kort over gegaan naar php 7 en uiteraard werkte 80% niet meer
ik heb dit nu allemaal weer gefixt echter werkte mijn upload script niet meer
ik gebruik hiervoor de basis van github.com/blueimp/jQuery-File-Upload
mooi scriptje vind ik :)
echter wil ik nu aan de class een id meegeven deze moet hij pakken via _GET
maar dit werkt blijkbaar dus niet
zoals ik al zei ik ben een noob met classes :P
vroeger onder php5 werkte dit dus wel
ik heb dus een php script en deze opent via een .js, de index.php van een map en deze index.php include een andere .php en hierin zit de class die info moet krijgen
het werkt bv wel met _POST maar ik wil juist via _GET
is hier een simpele oplossing voor?
mvg sylvester
Krijg je nog bepaalde foutmeldingen?
Undefined variable: user_id .....
hij kan de get dus niet zien dus ik moet op andere manier die info doorsturen
zal wel iets heel simpels zijn maar ik zie hem ff niet :P
Laat je code eens zien wat je precies doet?
ik zal makkelijker doen
https://github.com/blueimp/jQuery-File-Upload/blob/master/index.html
dat is de basic upload file deze heb ik aangepast naar php
deze linkt door naar
https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/index.php
deze file is bij mij zelfde maar een par kleine aanpassingen
ik heb er een database aan gekoppelt om de files op te slaan
hierin linkt hij naar
https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.php
op regel 241 staat een functie
protected function get_user_path() {
deze is aangepast naar
protected function get_user_path() {
if ($this->options['user_dirs']) {
if(isset($_get['id'])) {
return "user".$_GET['id']."/";
}
else {
return "all/";
}
}
return '';
}
hier moet ik dus die info hebben
en waarschijnlijk nog wel meer info maar ik moet eerst die get werkent krijgen
gebruik $_GET
if(isset($_GET['id'])) {
met hoofdletters.
protected function get_user_path() {
if ($this->options['user_dirs']) {
return "user".$_GET['id']."/";
}
return '';
}
dan werkt hij ook niet dan krijg ik dus melding van Undefined variable: id .....
Toevoeging op 11/08/2019 16:57:46:
lol correctie ik krijg Notice</b>: Undefined index: id ......
Dan bestaat 'id' niet in de URL.
meestal stuur ik dan de info door van ene pagina naar ander binnenin de functie doormiddel van global
maar dit werkt helaas ook niet
Toevoeging op 11/08/2019 17:05:56:
heeft iets met de class temaken
je can niet een get in een class doen maar wel een var
echter moet je die dus via een functie in die class krijgen
en ik heb daar dus geen kaas van gegeten
Toevoeging op 11/08/2019 17:07:33:
ik ga nu kijken of ik die info in eerste instantie kan sturen via _POST en dan er een var van kan maken in de class of zoiets
Toevoeging op 11/08/2019 17:39:45:
heb jij verstand van bind_param ?
ik heb het nu zover dat hij in iedergeval info naar me database stuurt echter is bv de user_id 99 en hij slaat alleen 9 op
:( heel vaag
Helaas is mijn glazen bol naar de reparateur. Dus laat eens zien wat je precies doet? En wat voor datatype is dat veld?
hij moet id's opslaan bij elke upload en dit is code die hij daarbij gebruikt voor de invoer
protected function handle_form_data($file, $index) {
$file->title = @$_REQUEST['title'][$index];
$file->description = @$_REQUEST['description'][$index];
$file->user_id = @$_REQUEST['user_id'][$index];
}
protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
//global $user_id, $account_id;
$index = null, $content_range = null) {
$file = parent::handle_file_upload(
$uploaded_file, $name, $size, $type, $error, $index, $content_range
);
if (empty($file->error)) {
$sql = 'INSERT INTO `'.$this->options['db_table']
.'` (`user_id`, `name`, `size`, `type`, `title`, `description`)'
.' VALUES (?, ?, ?, ?, ?, ?)';
$query = $this->db->prepare($sql);
$query->bind_param(
'ssisss',
$file->user_id,
$file->name,
$file->size,
$file->type,
$file->title,
$file->description
);
$query->execute();
$file->id = $this->db->insert_id;
}
return $file;
}
in de form heb ik als extra neergezet
<input name="user_id" type="hidden" value="99">
hij zou dus 99 moeten opslaan maar hij doet alleen 9
Kijk eens of het dat is.
https://www.php.net/manual/en/mysqli-stmt.bind-param.php
Gewijzigd op 11/08/2019 19:05:44 door Adoptive Solution
ok dat is 1 probleem :P
nu de rest :P