Vraag & Antwoord

Webprogrammeren & scripting

[PHP] variable variable $$var

7 antwoorden
  • Ik heb een probleem. Ja dat hebben we natuurlijk allemaal wel eens maar ik hoop dat er meer mensen hier weleens met een soortgelijk probleem hebben gestoeid en we daarom dus kunnen helpen. Het probleem zit hem waarschijnlijk in een variabele die hij niet goed begrijpt. ik gebruik het volgende scriptje om gegevens in te lezen en een formulier weer te geven: [code:1:9ffdc570c0]echo $name[$i].&quot;: &lt;input type=text name='&quot;.$name[$i].&quot;' value='&quot;.$desc[$i].&quot;' size=&quot;.(strlen($desc[$i])+2).&quot;&gt;[/code:1:9ffdc570c0] hierin is $name[$i] de naam die het bestand staat, en $desc[$i] de beschrijving die je eraan wil koppelen. $i gebruik ik omdat ik alle regels in een array heb staan en deze vervolgens bekijk of een bepaalde voorwaarde waar is, waarna ik de waarde naar het scherm wegschrijf in een invulvakje. Vervolgens wordt het naar het volgende stuk code gestuurd: [code:1:9ffdc570c0]if (${$name[$i]} != &quot;&quot; &amp; ${$name[$i]} != $desc[$i]) { $desc[$i] = ${$name[$i]}; echo &quot;'&quot;.$desc[$i].&quot;' opgeslagen in '&quot;.$filename.&quot;' als '&quot;.$name[$i].&quot;'&lt;P&gt;&quot;; }[/code:1:9ffdc570c0] Daar test hij of het formulier invoervak leeg is of niet gewijzigd dan slaat hij hem niet op anders slaat hij hem op. Hier zitten geen echte fouten in, want hij doet het. Maar... Ja de grote maar is dat hij het niet altijd doet. Als naam bijvoorbeeld de volgende waarde 'Netscape 6.2.1' heeft gaat het fout en is de variabele leeg terwijl hij wel boven in de adres balk tevoorschijn komt. Hoe kan ik dit oplossen ik vermoed dat hij over de spatie en / of de punten struikelt. Ja, de andere werken helemaal probleemloos maar als er punten of spaties inzitten gaat het fout. Ik denk zelf aan url encode maar dat werkt niet. Hoe kan ik dit oplossen?? <font size=-1>[ Dit Bericht is bewerkt door: mvwinger op 2002-02-05 14:49 ]</font>
  • Je geeft al aan waar het probleem ligt: &quot;rare&quot; tekens in een variabelenaam. er zit niets anders op dan een string replace dus.
  • Bestaat er geen functie voor zoiets als urlencode die precies doet wat ik nodig heb? Zo nee, welke tekens zijn er allemaal probleemgevallen?
  • if (${$name[$i]} != &quot;&quot; &amp; ${$name[$i]} != $desc[$i]) klopt die enkele &amp; ook wel?
  • Het moet idd een dubbele &amp;&amp; zijn :smile: Maar hiermee is mijn probleem nog niet weg. :sad: De waardes waarbij het wel werken bevatten geen spaties, geen punten en zijn veelal korter dan 10 tekens. Ze zijn nummeriek of gewoon tekst daar ligt het niet aan. De waardes $name[$i] waar hij het niet voor doet zijn oa: Windows ME Windows NT4 http://www.casema.net http://www.kennisnet.nl Microsoft Internet Explorer 6.0 Microsoft Internet Explorer 5.5 Netscape 6.2.1
  • Ik denk toch dat je een andere manier moet verzinnen voor hetgeen je nu aan het proberen bent. Een variabele met de naam http://www.casema.net kan natuurlijk nooit. En wat zou deze variabele moeten voorstellen? Wat wel zou kunnen werken zijn assiociatieve arrays. Kijk daar 's naar.
  • Ik ben bezig met een soort teller en dat adres heb ik geconstrueerd uit de REMOTE_HOST en ja, ik besef idd ook wel dat het niet helemaal kan, of vrij moeilijk is maar ik heb bijna vakantie dus dan zal ik ereens diep induiken, maar er moet toch een simpele maar effectieve manier zijn. Wat die variabele voorstelt: Het is dus het adres van de provider van een bezoeker :smile: <font size=-1>[ Dit Bericht is bewerkt door: mvwinger op 2002-02-05 16:48 ]</font>

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.