Lees ook eens wat Ariën schrijft. Het is heel leuk om een code te plaatsen, maar de hele insteek van de vraagsteller is onjuist. Iets wat altijd moet worden getoond ga je - zoals Ariën ook al aangaf - niet proberen te plaatsen in een $_FILES variabele.
Het is leuk dat je code kunt schrijven, maar kijk alsjeblieft ook naar de toepassing en de essentie van een vraag. Dat code wellicht doet wat de vraagsteller vraagt, wil niet zeggen dat daarmee de code goed is.
Als een vraagsteller vraagt om in de auto van zijn schoonmoeder het rempedaal te vervangen door een gaspedaal, dan is het heel tof dat jij dat misschien kunt bouwen ... maar een dergelijke 'oplossing' is onwenselijk. Probeer dus alsjeblieft wat verder te kijken dan alleen de code, maar kijk ook naar het nut en of de vraagsteller wel de juiste insteek heef gekozen.
[size=xsmall]Toevoeging op 29/08/2022 21:15:15:[/size]
@Jan te Pas
Wat jij wil is dus niet de juiste aanpak, en de 'oplossing' van Adaptive Solution ook niet.
Ik heb nu een HTML opmaak waar ik het logo in heb zitten. Dus geen enkel probleem heb ik. Ik wilde alleen eens iets anders proberen. Inschieten van een variabele in een array. Waarom? Om gewoon eens te proberen maar ik merk dat het niet zo’n normale opzet is. Doer een naam in te schieten kan ik de mail cleaner houden. Dus minder HTML etc. Ik gebruik nu : Content-Type: text/html; charset=UTF-8 en dat werkt prima
Doer een naam in te schieten kan ik de mail cleaner houden. Dus minder HTML etc. Ik gebruik nu : Content-Type: text/html; charset=UTF-8 en dat werkt prima
Geen idee wat dit met je initiële vraagstelling te maken heeft, dus ik weet ook niet hoe ik hierop moet reageren.
?Onbekende gebruiker
30-08-2022 09:08
gewijzigd op 30-08-2022 09:08
Een paar dingetjes:
Een naam toevoegen aan een HTML-formulier kan met de HTML code <input type="text" name="naam"/> . Die zet je dan op hetzelfde niveau in het HTML formulier als dat je <input type="file" name="bestand"/> hebt.
PHP heeft naast $_FILES nog drie andere arrays, waarin de inhoud van een formulier kan komen te staan:
- $_GET, voor wanneer het formulier is opgestuurd met het attribuut action="get" (bevat ook variabelen uit de URL)
- $_POST, voor wanneer het formulier is opgestuurd met het attribuut action="post" (gebruikelijk)
- $_REQUEST, een samenraapsel van $_GET en $_POST (en $_COOKIE).
Wil je zo een array uitlezen, dan hoef je niet eerst een kopie te maken van het array. Dat is wat je doet met $attachments = $_FILES. Je kunt ook gewoon een verwijzing maken naar (een deel van) een array met $attachments = &$_FILES . Je kunt dan via PHP code als $attachments['sleutel'] = "waarde"; iets toevoegen aan $_FILES:
<?php
$logo = "/home/ikzelf/logo.png"; // let op open_basedir restriction
$attachments = &$_FILES;
$attachments['logo.png'] = [
'name' => 'logo.png', // The original name of the file on the client machine.
'type' => 'image/png', // The mime type of the file, if the browser provided this information.
'size' => filesize($logo), // The size, in bytes, of the uploaded file.
'tmp_name' => $logo, // The temporary filename of the file in which the uploaded file was stored on the server.
'error' => 0, // The error code associated with this file upload.
];
var_dump($_FILES);
?>
Wanneer je meerdere bestanden tegelijk wilt kunnen uploaden, hoef je niet voor elk mogelijk bestand een aparte <input type="file"/> te maken. De gebruiker moet dan telkens opnieuw een bestand uitzoeken. In plaats daarvan kan je ook het attribuut multiple meegeven en slechts 1 input tag gebruiken: <input type="file" name="bestanden" multiple/>
@Ad Fundum @Ozi php: dank beiden. Ik wilde het snappen, en met jullie hulp werkt het. Ik gebruik het niet, omdat ik de attachments in Outlook bovenin krijg te zien. Daar zou de intro, logo ook komen. En dus ongewenst. Ik stel nu een HTML opmaak, en de attachments worden gekoppeld aan de HTML. Resultaat is voor al in Outlook beter. Zo kan een zoektocht eindigen in een bestaande structuur. En dat is gebeurd. Dank allen!