Kom ihåg mig?
Home Menu

Menu


Bygga php-variabler från array?

 
Ämnesverktyg Visningsalternativ
Oläst 2010-12-02, 18:27 #1
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
Standard Bygga php-variabler från array?

Tjenixen!

Har en liten fråga jag suttit och funderat på under de tider jag programmerat lite PHP.

Kan man skapa variabler från en array? Säg att jag har en fil som hämtar ca info från 10st $_GET requests.

Ex:
PHP-kod:

$gets 
= array("name","address","city","zip","region");

foreach(
$gets as $newvar){
     ${
$newvar} = $_GET["'".$newvar."'"];
}

echo 
$name//ekar ut det som fanns i $_GET['name']; ex: Philip
echo $address;
osv osv osv..... 
Jag har testat något liknande förr, men fick en massa error och gav upp direkt eftersom jag inte kunde tolka felen.

EDIT: Körde koden som jag skrev i exemplet, men ingenting skrevs ut. Och när jag satte igång E_NOTICE så fick jag:
Citat:
Notice: Undefined index: 'name' in /var/www/test.php on line 7
för varje variabel...

EDIT 2: Tog bort citattecknen i $_GET så det istället blev $_GET[$newvar], det fungerade, men hur gör jag med siffror? för det kommer ju inte funka...

tacksam för svar!

Med vänliga hälsningar, Philip Andersson!

Senast redigerad av youheardit den 2010-12-02 klockan 18:33
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-02, 18:47 #2
Jimpsson Jimpsson är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 428
Jimpsson Jimpsson är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 428
http://se.php.net/extract
Jimpsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-02, 19:01 #3
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
Citat:
Ursprungligen postat av Jimpsson Visa inlägg
tack, men....

Citat:
Do not use extract() on untrusted data, like user input (i.e. $_GET, $_FILES, etc.).
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-02, 19:06 #4
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Citat:
Ursprungligen postat av Jimpsson Visa inlägg
Kör inte extract() på $_GET bara....

annars kan du titta på import_request_variables().
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-02, 19:07 #5
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Ta bort citattecken så fungerar det bättre. Vad menar du med att siffror inte kommer att fungera? De har du ju förmodligen som värden på variablerna och inte som variabelnamn?
__________________
Full-stack developer, free for smaller assignments

Senast redigerad av tartareandesire den 2010-12-02 klockan 19:18
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-02, 19:33 #6
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
Citat:
Ursprungligen postat av tartareandesire Visa inlägg
Ta bort citattecken så fungerar det bättre. Vad menar du med att siffror inte kommer att fungera? De har du ju förmodligen som värden på variablerna och inte som variabelnamn?
Ja, det funkar inte på siffror för det är ju en array, och om jag hämtar $_GET[3] så tar den ju value från "city" och inte själva "3" som jag vill ha.

Men en lösning kan vara att jag gör om allt till strings från ints.
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-02, 20:03 #7
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av youheardit Visa inlägg
Ja, det funkar inte på siffror för det är ju en array, och om jag hämtar $_GET[3] så tar den ju value från "city" och inte själva "3" som jag vill ha.

Men en lösning kan vara att jag gör om allt till strings från ints.
Du blandar nog ihop värden och namn nu. Du vill ju inte ha en variabel som heter '3'? Variabelnamnen har du ju i $gets. Det har sedan ingen som helst betydelse om det är siffror eller bokstäver i dina get-variablers värden.

Har du blabla.php?name=3 så kommer du få en variabel som heter name med värdet 3 vilket väl är vad du vill ha? Eller så missuppfattar jag något
__________________
Full-stack developer, free for smaller assignments

Senast redigerad av tartareandesire den 2010-12-02 klockan 21:21
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-02, 22:38 #8
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
Citat:
Ursprungligen postat av tartareandesire Visa inlägg
Du blandar nog ihop värden och namn nu. Du vill ju inte ha en variabel som heter '3'? Variabelnamnen har du ju i $gets. Det har sedan ingen som helst betydelse om det är siffror eller bokstäver i dina get-variablers värden.

Har du blabla.php?name=3 så kommer du få en variabel som heter name med värdet 3 vilket väl är vad du vill ha? Eller så missuppfattar jag något
Jo, såg nu jag snurrat upp det lite. Men menar om jag vill ha blabla.php?45=hej.

dvs. omvänt....
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-03, 00:13 #9
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av youheardit Visa inlägg
Jo, såg nu jag snurrat upp det lite. Men menar om jag vill ha blabla.php?45=hej.

dvs. omvänt....
En variabel kan inte börja med en siffra. Varför vill du göra detta?
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-03, 00:17 #10
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
Citat:
Ursprungligen postat av tartareandesire Visa inlägg
En variabel kan inte börja med en siffra. Varför vill du göra detta?
underbart... jag har gjort bort mig fullständigt! HAHA! självklart att inte man kan börja med en siffra i en variabel.

Förlåt, har snurrat rejält nu, men iaf, tack, problemet är löst!

pinsamt detta... =(
youheardit är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 12:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017