Toon posts:

[php] van string van waarde van variable

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem:

De volgende array krijg ik binnen:
code:
1
$array="moboID,merkID,type,chipset";

Deze zet ik via explode om naar een array met daarin string:

$array[0]=moboID;

Nu wil ik de waarde van moboID als string hebben, dus deze:

$moboID=.....;

Ik krijg het niet voor elkaar, als ik /$$array[0] oid dan werkt het ook niet.

Wie snapt mijn probleem en wie kan me helpen.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:30

Janoz

Moderator Devschuur®

!litemod

Zoals het daar staat kun je zoeken wat je wilt, maar heeft moboID helemaal geen waarde (Of wordt er meer mee gestuurd?)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

ongetest

${$array[0]}

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Er wordt meer meegestuurd via een <input text..> met dezelfde naam.

Dat ga ik proberen.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:30

Janoz

Moderator Devschuur®

!litemod

owh .. zo'n constructie!! .. kewl.. dan ga ik ff
PHP:
1
2
3
<?
$array="dbserver,dbuser,dbpassword";
?>

sturen :+

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Op dinsdag 18 december 2001 12:06 schreef D2k het volgende:
ongetest

${$array[0]}
mmm, dat werkt thanx,

MrK voelt zich best dom.....
Dat moest ik toch ook weten.

Verwijderd

Topicstarter
Op dinsdag 18 december 2001 12:08 schreef Janoz het volgende:
owh .. zo'n constructie!! .. kewl.. dan ga ik ff
PHP:
1
2
3
<?
$array="dbserver,dbuser,dbpassword";
?>

sturen :+
Verklaar je nader, is het onveilig..

Je mag de waarden uit dat formulier best weten, je hebt ze namelijk zelf ingetikt.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 18 december 2001 12:11 schreef MrK het volgende:

[..]

Verklaar je nader, is het onveilig..
jepz tis omveilig
kijk maar eens goed

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Je mag de waarden uit dat formulier best weten, je hebt ze namelijk zelf ingetikt.

databse info ed wordt via een include toegevoegd en niet verstuurd via een form.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 18 december 2001 12:13 schreef MrK het volgende:
Je mag de waarden uit dat formulier best weten, je hebt ze namelijk zelf ingetikt.

databse info ed wordt via een include toegevoegd en niet verstuurd via een form.
nee maar die ga je wel echo-en

je maakt nl van database met ${$array[0]} $dbserver en er vanuitgaande dat je de nieuwe variabele gaat echo-en dan zie je dus de uitvoer van je wachtwoord ed op het scherm

Doet iets met Cloud (MS/IBM)


Verwijderd

Op dinsdag 18 december 2001 12:13 schreef MrK het volgende:
Je mag de waarden uit dat formulier best weten, je hebt ze namelijk zelf ingetikt.

databse info ed wordt via een include toegevoegd en niet verstuurd via een form.
jah maar als je dat doet in de pagina waar je het op weergeeft heb je hetzelfde probleem :)

een include wordt net zo hard geparsed alsof het deel uit maakt van het bestand. Dus include je het bovenaan waar jij die array gaat printen, Dan heb je toch een probleem 8-)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op dinsdag 18 december 2001 12:13 schreef MrK het volgende:
Je mag de waarden uit dat formulier best weten, je hebt ze namelijk zelf ingetikt.
Wat hij bedoelt is dat je op die manier eventueel de passwords kan achterhalen.

In principe mag je _nooit_ de input van de user vertrouwen. Dus zeker niet zomaar aannemen dat een bepaalde variabele geset is of niet...

Maak dan intern een ander array aan, dat vastlegt welke vars er mogen zijn.

Dan kan je met iets als:
PHP:
1
2
3
4
5
6
7
8
<?
$check_array = array("moboID", "merkID",...);
foreach($check_array as $test_var)
{
    if(in_array($array, $test_var))
        ${$test_var} = ...;
}
?>

Dan leg je een stuk stricter vast wat er wel en niet mag opgegeven worden.

Verwijderd

Topicstarter
mmmm, ik heb het nog niet helemaal.
Maar ik zal er eens mee spelen, ik wil niet dat die info op straat ligt.

ik ga die inhoud idd ergens echo'en.

Oja en als je dan de juiste naam raad waarin mijn wachtwoord vastligt dan print hij die... mmm

dan zal ik het eens met die restricties proberen, maar ik weet niet vantevoren welke output er uit de DB komt.

Ik wil namelijkk verschillende databasetabellen met hetzelfde script parsen.

De variabelnamen en de variabele uit mijn form hebben de dezelfde naam als mijn field_name.

Gelukkig is het de eerste keer dat ik deze contructie gebruik....

Bedankt voor jullie waarschuwing, dat stel ik op prijs.

Verwijderd

Topicstarter
Ik krijg mijn password er niet uit hoor.
Willen jullie eens meedenken:

Er wordt een formulier gegenereerd met inputfieldswaarvan de naam mijn field_name uit de database is:

<input type="text" name="chipset" class="textfield">

De waarde die ze invullen wordt weer naar de database geschreven.

als ik in dit veld "password" in type, stel dat mijn database wachtwoord in $database gedeclareed is.
Dan zal hij alleen de string password wegschrijven.

in ${$array[0]} wordt niet de input van de user meegeven, maar de naam van het inputfield.

Wat ik me wel kan voorstellen is dat iemand mijn source download en die input fieldname aanpast en dan de ACTION locatie aanpast.

Wat is jullie visie hierop?

Verwijderd

Topicstarter
Ik heb nog wat gevogeld, maar het password komt er NOOIT uit.
Dit omdat hij als lokale variabele in een functie is gedeclareed. Hij is buiten die functie dus niet beschikbaar.

Als ik 'm buiten die functie zet dan kan iedere hacker 'm zien.

Verwijderd

Edit Tim leest vraga niet goed!
probeer het zonder de / voor $$array[0]
Pagina: 1