[PHP] fout tijdens array met phpcode eval()

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

Topicstarter
Ik ben momenteel bezig met een webwinkel voor het stagebedrijf waar ik nu stage loop. Dit bedrijf heeft een database waarop het gehele systeem draait. Klantgegevens, productgegevens, stuklijsten, magazijnvoorraadlijsten etc..etc..

Omdat dit extreem veertrouwelijke informatie is, is er een CGI script ontwikkeld welke met de database communiceerd. Dit script bevat methodes welke gegevens retourneren in een array.

In elke array regel staat php code. In deze phpcode staan arrays..
Volgt iedereen het nog??

Hier een stuk uit de array die ik vanaf het cgi script krijg. (dit is een print_r)
code:
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
Array 
( 
    [0] => HTTP/1.0 200 OK 
    [1] => Expires: Thu, 01 Jan 1995 01:00:00 GMT 
    [2] => Pragma: no-cache 
    [3] => content-type: text/html 
    [4] => content-length: 7788 
    [5] => 
    [6] => $orderline[1]="0"; 
    [7] => $orderline[2]="3599"; 
    [8] => $orderline[3]="Instelring 90x120x12.5 SKF U 313"; 
    [9] => $orderline[4]= ""; 
    [10] => $orderline[5]=" "; 
    [11] => $orderline[6]=$orderline[2]; 
    [12] => $orderline[7]=""; 
    [13] => $order[1]=$orderline; 
    [14] => 
    [15] => $orderline[1]="0"; 
    [16] => $orderline[2]="6041"; 
    [17] => $orderline[3]="Kapacitieve sensor Turck BC10-M30-RZ3X"; 
    [18] => $orderline[4]= ""; 
    [19] => $orderline[5]=" "; 
    [20] => $orderline[6]=$orderline[2]; 
    [21] => $orderline[7]=""; 
    [22] => $order[2]=$orderline; 
    [23] => 
}

Nu is hetvolgende de bedoeling…
De phpcode welke in de array zit moet ge-eval()-ed worden..
Zodat de array beschikbaar wordt in de code.
Ik heb hetvolgende al geprobeerd:
PHP:
1
2
3
4
5
6
<? 
for ($i= 5; $i < sizeof($result_array)-4; $i++) 
{ 
   if(trim($result_array[$i]) != '') $evaltext .= ($result_array[$i]).""; 
} 
?> 

ik krijg alleen constant dezelfde warning (elke 8 regels)

Warning: Cannot use a scalar value as an array in /www/test.mijnsite.nl/webwinkel_spareparts.php(68) : eval()'d code on line 8

Warning: Cannot use a scalar value as an array in /www/test.mijnsite.nl/webwinkel_spareparts.php(68) : eval()'d code on line 16

Warning: Cannot use a scalar value as an array in /www/test.mijnsite.nl/webwinkel_spareparts.php(68) : eval()'d code on line 24

Iemand een idée hoe ik dit op kan lossen??
Alvast bedankt, Ron

[ Voor 8% gewijzigd door dip op 21-10-2004 15:06 ]

It's scientifically known, that base improves the tase of cheezes!


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Misschien een gekke vraag ben je nog in de mogelijkheid om het CGI script te veranderen?

Volgens mij kan je namelijk beter de data serialized of per regel terug geven.

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

Topicstarter
Nee dat is niet meer mogelijk..

Maar of het nu in een string staat, of in een array.. dat zou toch helemaal niets uit hoeven te maken??

[ Voor 39% gewijzigd door dip op 21-10-2004 15:17 ]

It's scientifically known, that base improves the tase of cheezes!


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

dip schreef op 21 oktober 2004 @ 15:12:
Nee dat is niet meer mogelijk..

Maar zoveel kan het toch niet uitmaken?
Zeker wel.... Met serialize dan zou het kunnen in 1 regel :) unserialize :)


Maar goed dat is niet meer te veranderen.

Wat is de waarde van $result_array[$i] tijdens die errors?

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

Topicstarter
LuCarD schreef op 21 oktober 2004 @ 15:16:
[...]

Wat is de waarde van $result_array[$i] tijdens die errors?
$order[1]=$orderline;
$order[2]=$orderline;
etc...

Iemand een idee ? :?

[ Voor 6% gewijzigd door dip op 21-10-2004 15:37 ]

It's scientifically known, that base improves the tase of cheezes!


Acties:
  • 0 Henk 'm!

  • pjotrk
  • Registratie: Mei 2004
  • Laatst online: 15-07 18:43
Het lijkt erop dat de variable $order al ergens eerder in het script wordt gebruikt, maar dan als een scalar type (float, integer, boolean).

De foutmelding zou dan weg moeten zijn als je voor de for lus de variable opnieuw declareerd:

PHP:
1
$order = array();


maar zomaar een variable overschrijven is soms weleens link, dus is het handig om eerst te controleren of en waarvoor de variable al eerder is gebruikt.

Acties:
  • 0 Henk 'm!

  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

Topicstarter
Ontzettend bedankt!

Hiermee is het probleem opgelost.

It's scientifically known, that base improves the tase of cheezes!

Pagina: 1