hi uhm een stomme vraag hoor en ik weet dit is geen normale scripting manier

ik heb een pagina met een upload script
in dit script zitten includes die verwijzen naar een aantal classes en functies

nu wil ik een _GET gebruiken (die netjes in de adresbalk staat)
in die classes / functies gaan gebruiken....

alles dat ik doe werkt niet met betrekking tot _GET
een _POST er heen sturen werkt wel maar dan moet iemand dus eerst steeds op submit drukken om de informatie door te sturen terwijl dit gewoon in de adressbalk staat

nou weet ik dat er iets is zoals globals enz
echter heb ik daar geen verstand van :(

iemand een ideetje?

bedoeling is dus dat ik bv in de functie gewoon $id kan oproepen en dat deze dan ook werkt
Alle code kan nooit relevant zijn ;-)
De directory lijkt me juist niet relevant, want het gaat om het script die uploadt. Kijk anders eens naar je Network-tab in je browser terwijl je een upload uitvoert. Dan moet je kunnen zien welk script er aangeroepen wordt.
ja ok dat zijn precies de files die ik eerder heb aangeduid
jquery die gaat naar server/php/index.php (hierin is ook goed dan kan ik wel doorsturen zelf naar de volgende pagina)
en deze doet een require

require('UploadHandler.php');
en hierin wil ik de info hebben





[size=xsmall]Toevoeging op 12/08/2019 16:45:37:[/size]

ik moet de directory aanpassen naar de map van de user die is geopend en dus moet ik de info hebben bij
UploadHandler.php
Wat begrijp je precies niet aan onze eerdere opmerkingen? Plaats eens wat van je code.
Zoek eens uit waar die class UploadHandler() wordt aangeroepen?
Kan je daar geen wrapper om heen bouwen? Dan hoef je niet een bestaande class aan te passen, die bij een update weer jouw modificaties verliest.

Op eens zelfde manier werkt ook de uploadclass die ik heb geschreven voor mijn site.
Het JavaScript-based (plUpload) roept een PHP-script aan met daarbij de nodige velden die de site in de URL heeft staan. De aanroep van dat script komt uit in een wrapper die de class van het uploadscript aanroept. En daarbij worden er nog de nodige extra dingen gedaan, zoals het opslaan van de bestandsnamen, ID's, metadata in de uploads-tabel, en de afbeelding in de koppeltabel.

Wrapper is all you need.
<?php





$options = array(
'delete_type' => 'POST',
'db_host' => 'localhost',
'db_user' => '????',
'db_pass' => '????',
'db_name' => '????',
'db_table' => 'files'
);


require('UploadHandler.php');





class CustomUploadHandler extends UploadHandler {

protected function initialize() {
$this->db = new mysqli(
$this->options['db_host'],
$this->options['db_user'],
$this->options['db_pass'],
$this->options['db_name']
);
parent::initialize();
$this->db->close();
}

protected function handle_form_data($file, $index) {
$file->title = @$_REQUEST['title'][$index];
$file->description = @$_REQUEST['description'][$index];
$file->userid = @$_REQUEST['userid'][$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']
.'` (`userid`, `name`, `size`, `type`, `title`, `description`)'
.' VALUES (?, ?, ?, ?, ?, ?)';
$query = $this->db->prepare($sql);
$query->bind_param(
'isisss',
$file->userid,
$file->name,
$file->size,
$file->type,
$file->title,
$file->description
);
$query->execute();
$file->id = $this->db->insert_id;
}
return $file;
}

protected function set_additional_file_properties($file) {
parent::set_additional_file_properties($file);
if ($_SERVER['REQUEST_METHOD'] === 'GET') {




$sql = 'SELECT `id`, `userid`, `type`, `title`, `description` FROM `'
.$this->options['db_table'].'` WHERE `name`=?';
$query = $this->db->prepare($sql);
$query->bind_param('s', $file->name);
$query->execute();
$query->bind_result(
$id,
$userid,
$type,
$title,
$description
);
while ($query->fetch()) {
$file->id = $id;
$file->userid = $userid;
$file->type = $type;
$file->title = $title;
$file->description = $description;
}
}
}

public function delete($print_response = true) {
$response = parent::delete(false);
foreach ($response as $name => $deleted) {
if ($deleted) {
$sql = 'DELETE FROM `'
.$this->options['db_table'].'` WHERE `name`=?';
$query = $this->db->prepare($sql);
$query->bind_param('s', $name);
$query->execute();
}
}
return $this->generate_response($response, $print_response);
}

protected function get_user_id() {
@session_start();
return session_id();
}

}


$upload_handler = new CustomUploadHandler($options);


Jep, je moet een wrapper maken.
Ik raad wel aan om classes te scheiden van je logica, en dus in een apart bestand te plaatsen.
lol ik ben een noob met classes en functions enzo
ik zou dus echt niet weten hoe dat moet
Ah, je hebt dus een extended class, zie ik.
Gewoon een script aanmaken waarin je die CustomUploadHandler(...) aanroept.

Sim-pel ;-)

Nog beter dan een wrapper die om je class heen zit.
Haal eerst die class even los en zet die in een apart bestand.
uhmmmmm
dat doet hij dus gelijk al in die file
onderaan
of haal ik nu dingen door elkaar ?

ps op die pagina werkt een gewone _get ook niet

maar uhm ik kan wel een file aanmaken maar dan moet ik nogsteeds een manier vinden om die info van die extra file in die
UploadHandler.php te krijgen

Reageren