Printable Version of Topic

Click here to view this topic in its original format

HTMLHelp Forums _ Server-side Scripting _ eval function

Posted by: tudsy May 18 2022, 08:23 AM

Hi

I am new to the eval function but I was wondering can anyone find anything wrong with this code:


foreach ($this->subclient_names as $subclient_name) {
eval("\$api_instance = \"new /home/ecovibdc/vendor/klaviyo/sdk/API/ ${subclient_name}/Api(new /home/ecovibdc/vendor/guzzlehttp/guzzle/src/Client.php, $this->config\";");

$this->$subclient_name = new Subclient(
$api_instance,
$wait_seconds = 3,
$num_retries = 3,
);


Any help would be appreciated. Thanks Adrian.

Posted by: tudsy May 18 2022, 12:25 PM

QUOTE(tudsy @ May 18 2022, 10:53 PM) *

Hi

I am new to the eval function but I was wondering can anyone find anything wrong with this code:


foreach ($this->subclient_names as $subclient_name) {
eval("\$api_instance = \"new /home/ecovibdc/vendor/klaviyo/sdk/API/ ${subclient_name}/Api(new /home/ecovibdc/vendor/guzzlehttp/guzzle/src/Client.php, $this->config\";");

$this->$subclient_name = new Subclient(
$api_instance,
$wait_seconds = 3,
$num_retries = 3,
);


Any help would be appreciated. Thanks Adrian.


Problem was a comma in the wrong place.

Posted by: Brian Chandler May 20 2022, 06:20 AM

QUOTE

I am new to the eval function but I was wondering can anyone find anything wrong with this code:
eval("\$api_instance = \"new /home/ecovibdc/vendor/klaviyo/sdk/API/ ${subclient_name}/Api(new /home/ecovibdc/vendor/guzzlehttp/guzzle/src/Client.php, $this->config\";");


What is the purpose of eval($parameter)? It runs the php code in the string $parameter, so normally the point is that this string came from a database, or (!!BIG ALERT!!) a string that a user entered. If the string is simply a bit of PHP code, then the above is the same as writing:
[code]
$api_instance = "new /home/ecovibdc/vendor/klaviyo/sdk/API/ ${subclient_name}/Api(new /home/ecovibdc/vendor/guzzlehttp/guzzle/src/Client.php, $this->config";
[code]

So why are you writing the convoluted version?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)