Ik probeer de uitvoer van een query, geplaatst in een tabel te versturen per email

Kan iemand mij zeggen hoe ik de waarde van '".$_GET["OrderID"]."' kan overbrengen naar het script da de mail verstuurd ?

Als ik een vaste waarde meegeef aan file_get_contents, bijvoorbeeld file_get_contents('view_order.php?OrderID=61'); werkt het
en ontvangt de onvanger de volledige tabel met alle uit de query gehaalde velden zoals in view_order.


Dit is een de Select query uit View_order.php die waarden uit database in ee ntabel plaatst :

$strSQL = "SELECT * FROM orders WHERE OrderID = '".$_GET["OrderID"]."' ";
$objQuery = mysql_query($strSQL) or die(mysql_error());
$objResult = mysql_fetch_array($objQuery);


Dit is het script dat de tabel uit View_order verstuurd via mail :

<?php
mysql_connect("localhost","user","pass");
mysql_select_db("dbnaam");
include 'view_order.php';
$onderwerp = " Uw overzicht ";
$inhoud = file_get_contents('view_order.php');
$ontvanger = "emailadres";
...enz
?>
In view_order.php kan je toch prima je $_GET["OrderID"] oproepen, als deze bestaat?

Verder:
- Er is SQL-injection mogelijk. Gebruik parametered queries of escape ze.
- Gebruik bij sterke voorkeur de mysqli-functies, en niet de oude mysql-functies. In PHP 7 zijn deze verwijderd en zal je script direct 'breken'.
ik heb geen enkel probleem met view_order.php
Deze werkt perfect en geeft alle gegeven weer.

Wat mij niet lukt is wanneer ik het mailscript draai, krijg ik een lege tabel
doordat deze de waarde van .$_GET["OrderID"] niet meeneemt.
Geef ik zelf een waarde in bij file_get_contents dan is er ook geen probleem
vb : file_get_contents('view_order.php?OrderID=61
Ik vraag me af of het wel hand is is om de output van een PHP-script met GET-parameter erbij op te halen. Kan je niet met file_get_contents() een template ophalen met bepaalde placeholder-variabelen? Waarna je deze vanuit je mailscript kan voorzien van de juiste informatie.

Dus in view_order.php zet je bijv neer: [[name]] [[address]] etc. Waarbij je die data dus vervangt door de juiste informatie.

Misschien helpt het als je in regel 6 ?OrderID=nn meegeeft.

En waarom wordt het bestand in regel 4 ingesloten?
Ik denk dat het probleem hier is (om het aan de praat te krijgen, los van alle veiligheidsrisico's waar Ariën op wees) dat je een bestand probeert te openen als een URL. Als je daadwerkelijk wilt dat het "bestand" als URL wordt behandeld zul je een volledige URL op moeten geven zodat er dan wrappers in werking treden die op de achtergrond de URL oproepen en de content ophalen (en vervolgens serveren als bestand).

view_order.php?OrderID=61 zal dus niet begrepen worden,
http(s)://jouw.domein.nl/view_order.php?OrderID=61 waarschijnlijk wel.

Deze wrappers moeten overigens wel ingeschakeld staan, zoals ook in de handleiding wordt aangehaald.

En ja, wat @Adoptive dus zei :p.

Reageren