De situatie
Ik heb een sollicitatieformulier met meerdere inputvelden en 2 inputvelden waar je bestanden moet toevoegen (sollicitatiebrief en CV).
Dit formulier wordt m.b.v. PHP gecheckt op verplichte velden (o.a. NAW gegevens etc.)
Hierbij worden ook de bestanden gecheckt.
Als alle checks goed zijn doorlopen dan wordt het formulier via een PEAR HTTP_request verzonden naar een CGI script die de sollicitatie afhandelt. Over dit gedeelte heb ik geen controle/jurisdictie, dus ik moet de gegevens naar dat CGI script doorsturen.
Het probleem
De 'normale' invoervelden worden nu gewoon meegestuurd en komen ook netjes in de database terecht zoals het hoort. Het probleem is dat ik de bestanden die meegestuurd moeten worden niet meekrijg.
Nu heb ik wel wat rondgezocht (o.a. hier, maar dat leek mij echt een upload verhaal. Dit staat overigens nu wel in de code om te proberen), maar ik kom er niet echt uit hoe ik dit kan oplossen.
Waar het eigenlijk op neerkomt: Ik moet de $_FILES 1 op 1 doorsturen via PEAR naar een CGI script, maar ik weet niet hoe!
Ik zal even een stukje code plaatsen zodat jullie een idee hebben wat ik doe:
Het gaat dus met name om regel 38 en 39.
Ik heb een sollicitatieformulier met meerdere inputvelden en 2 inputvelden waar je bestanden moet toevoegen (sollicitatiebrief en CV).
Dit formulier wordt m.b.v. PHP gecheckt op verplichte velden (o.a. NAW gegevens etc.)
Hierbij worden ook de bestanden gecheckt.
Als alle checks goed zijn doorlopen dan wordt het formulier via een PEAR HTTP_request verzonden naar een CGI script die de sollicitatie afhandelt. Over dit gedeelte heb ik geen controle/jurisdictie, dus ik moet de gegevens naar dat CGI script doorsturen.
Het probleem
De 'normale' invoervelden worden nu gewoon meegestuurd en komen ook netjes in de database terecht zoals het hoort. Het probleem is dat ik de bestanden die meegestuurd moeten worden niet meekrijg.
Nu heb ik wel wat rondgezocht (o.a. hier, maar dat leek mij echt een upload verhaal. Dit staat overigens nu wel in de code om te proberen), maar ik kom er niet echt uit hoe ik dit kan oplossen.
Waar het eigenlijk op neerkomt: Ik moet de $_FILES 1 op 1 doorsturen via PEAR naar een CGI script, maar ik weet niet hoe!
Ik zal even een stukje code plaatsen zodat jullie een idee hebben wat ik doe:
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
| //PEAR require_once "HTTP/Request.php"; $req =& new HTTP_Request("URLnaar.cgi"); $req->setMethod(HTTP_REQUEST_METHOD_POST); // vaste velden $req->addPostData("mail:to", "emailadresje"); $req->addPostData("mail:toname", "klantnaampje"); $req->addPostData("cv:max_size", "500"); // hidden inputs $req->addPostData("mail:subject", "Sollicitatie vacature:".$job->functienaam); $req->addPostData("vac_id", $job->id); $req->addPostData("vacaturenummer", $job->vacaturenummer); $req->addPostData("vacature", $job->functienaam); $req->addPostData("reactiedatum", $job->reactie_datum); // Persoonsgegevens $req->addPostData("voornaam", $_POST["voorletters"]); $req->addPostData("roepnaam", $_POST["roepnaam"]); $req->addPostData("achternaam", $_POST["achternaam"]); $req->addPostData("geboorte_dag", $_POST["geboorte_dag"]); $req->addPostData("geboorte_maand", $_POST["geboorte_maand"]); $req->addPostData("geboorte_jaar", $_POST["geboorte_jaar"]); $req->addPostData("sexe", $_POST["sexe"]); // Adresgegevens $req->addPostData("adres", $_POST["adres"]); $req->addPostData("huisnummer", $_POST["huisnummer"]); $req->addPostData("postcode", $_POST["postcode"]); $req->addPostData("woonplaats", $_POST["woonplaats"]); $req->addPostData("telefoon", $_POST["telefoon"]); $req->addPostData("telemobiel", $_POST["telemobiel"]); $req->addPostData("email", $_POST["email"]); // Sollicitatiegegevens $req->addFile($_FILES["brief"]["name"],$_FILES["brief"]["name"]); $req->addFile($_FILES["CV"]["name"],$_FILES["CV"]["name"]); $req->addPostData("bron", $_POST["bron"]); $req->addPostData("bron_anders", $_POST["bron_anders"]); // Upload CV + Brief if (!PEAR::isError($req->sendRequest())) { $response = $req->getResponseBody(); header("Location: bedankt.php?type=sollicitatie"); } else { $response = ""; } |
Het gaat dus met name om regel 38 en 39.