Uit te voeren PHP-opdracht in tabel werkt niet
Ten behoeve van mijn opdrachtgever ga ik zijn website aan Facebook koppelen met de bedoeling dat, indien er een LIKE wordt geplaatst op FB, er geen verzendkosten worden berekend op zijn webshop.
Omdat de acties regelmatig zullen wisselen heb ik er voor gekozen om de opdrachten in een tabel op te slaan en die dan te laten uitvoeren. Helaas lukt het mij deze keer niet zonder hulp.
Kunnen jullie mij aangeven waar ik de fout in ga?
De tabel:
In de tabel is een veld opgenomen (genaamd: actie) met de volgende inhoud:
De routine waarmee e.e.a. wordt ingelezen ziet er asl volgt uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
# Hier komt de routine voor FaceBook
$lLike = TRUE; // Waarde ingesteld om de test te kunnen uitvoeren
$lShare = FALSE;
include "include/connectie_nw.inc.php"; // Maak connectie met DB
$sql = "SELECT actie FROM shop__facebook WHERE fb_like = TRUE"; // Selecteer het record
$cResultQuery = mysqli_query($verbinding,$sql); // Voer de query uit
$rowQuery = mysqli_fetch_array($cResultQuery); // Fetch het resultaat
$sql = $rowQuery['actie']; // Plaats de inhoud van het record in de var $sql
eval("\$sql = \"$sql\";"); // Bewerk var $sql
$cResultActie = mysqli_query($verbinding,$sql); // Voer de uiteindelijke actie uit
$rowActie = mysqli_fetch_array($cResultActie); // Fetch het uiteindelijke resultaat
?>
# Hier komt de routine voor FaceBook
$lLike = TRUE; // Waarde ingesteld om de test te kunnen uitvoeren
$lShare = FALSE;
include "include/connectie_nw.inc.php"; // Maak connectie met DB
$sql = "SELECT actie FROM shop__facebook WHERE fb_like = TRUE"; // Selecteer het record
$cResultQuery = mysqli_query($verbinding,$sql); // Voer de query uit
$rowQuery = mysqli_fetch_array($cResultQuery); // Fetch het resultaat
$sql = $rowQuery['actie']; // Plaats de inhoud van het record in de var $sql
eval("\$sql = \"$sql\";"); // Bewerk var $sql
$cResultActie = mysqli_query($verbinding,$sql); // Voer de uiteindelijke actie uit
$rowActie = mysqli_fetch_array($cResultActie); // Fetch het uiteindelijke resultaat
?>
Als ik bovenstaande uitvoer dan krijg ik als resultaat: 2.50 = 0, oftewel 2.50 is de WAARDE van de oorspronkelijke var $nVerzendkosten.
Maar wat staat die eval daar te doen?
Misschien ontgaat me een detail, maar het lijkt me dat die eval daar niets nuttigs staat te doen; en ondertussen een potentieel gevaar kan betekenen.
Volgens mij moet ik die gebruiken om de PHP-opdracht te kunnen gebruiken
Dan kunnen we zien of dit nuttig kan zijn
Lees toch even dit:
http://www.phphulp.nl/php/forum/topic/veilig-om-eval-te-gebruiken-in-deze-situatie/92287/
Onderaan staat een alternatief dat je misschien kan gebruiken.