Kom ihåg mig?
Home Menu

Menu


PHP frågor

Ämnesverktyg Visningsalternativ
Oläst 2004-07-28, 15:40 #1
oscar oscar är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2003
Inlägg: 9
oscar oscar är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2003
Inlägg: 9
Jag har tidigare jobbat mest med ASP men har nu gett mig på PHP.. Behöver lite hjälp med en sak.
När man i PHP ska använda sig av info i QueryStringen (http://www.mypage.se/index.php?name=oscar) så ska man ju använda:
$name = $_GET['name'] (har läst om register_globals = off) men om jag anropar index.php utan QueryStringen name=oscar så får jag meddelandet: Notice: Undefined variable: name in c:\inetpub\wwwroot\cm\admin\index.php on line 17 Hur löser man detta?? Jag kan inte stänga av notice funktionen på mitt webhotell..
Tacksam för svar..
/Oscar
oscar är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-07-28, 16:07 #2
SkyNet SkyNet är inte uppkopplad
Validating
 
Reg.datum: Apr 2004
Inlägg: 99
SkyNet SkyNet är inte uppkopplad
Validating
 
Reg.datum: Apr 2004
Inlägg: 99
Prova:

if (isset($_GET['name']))
{
$name = $_GET['name'];
}
SkyNet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-07-28, 16:10 #3
oscar oscar är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2003
Inlägg: 9
oscar oscar är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2003
Inlägg: 9
Jag måste alltså köra en validering på varje QueryString Variable jag har??? I ASP kan man nämligen bara hämta in den och finns den inte så blir den satt till tomt..?? Går inte det göra i PHP? Alltså att name är "" om det inte står något i Queryn...
oscar är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-07-28, 16:32 #4
Davids avatar
David David är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2003
Inlägg: 477
David David är inte uppkopplad
Flitig postare
Davids avatar
 
Reg.datum: Aug 2003
Inlägg: 477
Du bör naturligtvis alltid validera både att dina variabler utifrån är satta och att de innehåller det du förväntar dig.
David är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-07-28, 17:26 #5
Jesters avatar
Jester Jester är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2004
Inlägg: 363
Jester Jester är inte uppkopplad
Flitig postare
Jesters avatar
 
Reg.datum: Apr 2004
Inlägg: 363
Citat:
Originally posted by SkyNet@Jul 28 2004, 16:07
Prova:

if (isset($_GET['name']))
{
$name = $_GET['name'];
}
Kod:
if ($name = $_GET['name'])
{

 gör detta...

}
För att skrapa bort lite dö-kod
Jester är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-07-29, 10:15 #6
SkyNet SkyNet är inte uppkopplad
Validating
 
Reg.datum: Apr 2004
Inlägg: 99
SkyNet SkyNet är inte uppkopplad
Validating
 
Reg.datum: Apr 2004
Inlägg: 99
Citat:
Originally posted by oscar@Jul 28 2004, 16:10
Jag måste alltså köra en validering på varje QueryString Variable jag har??? I ASP kan man nämligen bara hämta in den och finns den inte så blir den satt till tomt..?? Går inte det göra i PHP? Alltså att name är "" om det inte står något i Queryn...
Jo, så fungerar det oftast, men eftersom ditt webbhotell har slagit på notice i php.ini så kommer du ju att få varningar. Men det är ju alltid trevligt att veta vad det är man får för variabler så att man undvika att folk försöker mata programmet med ogiltiga värden mm.
SkyNet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-07-29, 12:29 #7
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
ibland kan man köra med is_numeric istället för isset också.. så slipper man dubbelkolla.

eller is_date eller isarray och allt vad dom heter.
,)
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-07-29, 13:21 #8
wedges avatar
wedge wedge är inte uppkopplad
Medlem
 
Reg.datum: Mar 2004
Inlägg: 180
wedge wedge är inte uppkopplad
Medlem
wedges avatar
 
Reg.datum: Mar 2004
Inlägg: 180
Citat:
Originally posted by oscar@Jul 28 2004, 16:10
Jag måste alltså köra en validering på varje QueryString Variable jag har??? I ASP kan man nämligen bara hämta in den och finns den inte så blir den satt till tomt..?? Går inte det göra i PHP? Alltså att name är "" om det inte står något i Queryn...
Du kan skriva
$name = @$_GET['name'];

Med @ undertrycks varningar och notiser, men det är du själv som tar ansvaret för att ignorera dem. Du bör, som tidigare sagts, validera all input. Eller frånvaro av input, beroende på hur man ser på saken
Och visst, om $_GET['name] inte är definerad så blir $name satt till "ingenting".
wedge ä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 05:27.

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