WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   PHP frågor (https://www.wn.se/forum/showthread.php?t=2930)

oscar 2004-07-28 15:40

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

SkyNet 2004-07-28 16:07

Prova:

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

oscar 2004-07-28 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...

David 2004-07-28 16:32

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.

Jester 2004-07-28 17:26

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 ;)

SkyNet 2004-07-29 10:15

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.

grazzy 2004-07-29 12:29

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.
,)

wedge 2004-07-29 13:21

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".


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

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