webForumDet fria alternativet

Hur kolla variabel

36 svar · 324 visningar · startad av Prästen · sida 2 av 2

PrästenMedlem sedan dec. 2000537 inlägg
#21

Måste jag konfigurera om servern för att få kommandona att tolkas annorlunda?

PrästenMedlem sedan dec. 2000537 inlägg
#22

Det funkar inte alls för mig, det står enbart undefined variable.

PrästenMedlem sedan dec. 2000537 inlägg
#23

Det funkar inte för mig. det blir undefined variable.

spangoMedlem sedan juni 20008 205 inlägg
#24

Det här borde enligt konstens alla regler funka:

if(!isset($förnamn) or !isset($efternamn) or $förnamn == "" or $efternamn == ""){
	# blah blah
}

Eller är inte logiska operatorer i php kortslutande?

------------------
Tror du på ett liv efter födseln?

BatboyMedlem sedan jan. 20001 006 inlägg
#25

Prova att lägga till error_reporting(7); överst i ditt script..

/j

------------------
R6

PrästenMedlem sedan dec. 2000537 inlägg
#26

Jo go vänner.
Spango, jag gjorde samma sak som ditt script lite längre upp om du ser.
Men måste man verkligen fläska till med så mycket kod för så lite?.
I ASP är det ju bara IF fornamnet<>"" AND efternamnet<>"" så är det klart.
Det är ju sådant jobb med PHP, det bör ju finnas smartare rutiner för sådana här saker. eller?.

MarcusMedlem sedan juli 2000449 inlägg
#27

Jag förstår om du tycker att PHP verkar lite jobbigt efter att ha följt denna tråden.

Så fort du får grepp om PHP så är det dock snabbare och enklare att programmera än t.ex. ASP.

------------------
DinDator.nu

herqMedlem sedan aug. 2000238 inlägg
#28

vad är det som är så svårt?!?!?!

ASP

IF fornamnet<>"" AND efternamnet<>"" THEN
'Gör nått
END IF

brrr vilken äcklig syntax ;)

PHP

if ($förnamn == "" && $efternamn == "") {
// Gör nåt
}

undefined varible felet förstår jag mig inte riktigt på, själklart är den undefined om man bara kör scriptet utan från en form, men det är väl inte meningen, eftersom du har $förnamn och $efternamn så förmodar jag att dessa får man ut från formen då scriptet anropas.
Eller är jag helt ute och ...

nicclasMedlem sedan feb. 20001 050 inlägg
#29

Precis herq. Men behöver inte deklarera variabler, så din kod fungerar fint även om den körs "direkt", dvs utan att "anropas från en <form>". Resultatet blir som sig bör:

$ /usr/local/bin/php test.php3
X-Powered-By: PHP/4.0.3pl1
Content-type: text/html

du glömde fylla i ditt namn

Verkar vara något mysko med din PHP installation, prova Batboys tips...

/nicclas - www.nyhetsrubriker.com

PrästenMedlem sedan dec. 2000537 inlägg
#30

Herq.

Din kod fungerar endast om formulärsidan med INPUT fornamnet och efternamn har körts. Det funkar inte om man direkt kör på det mottagande scriptet. Då blir det undefined variable. och därför måste man lägga till så mycket mer kod för att få en lika bra felcheck som ASP IF efternamnet<>"" AND fornamnet<>"".

PrästenMedlem sedan dec. 2000537 inlägg
#31

Du vet när man gör script som funkar som 2 script i 1 är det ovärdeligt att kunna kolla variabler lätt. Därför ville jag att den ska kunna kolla innehållet och att den existerar.

herqMedlem sedan aug. 2000238 inlägg
#32

jag trodde inte det var meningen att scriptet skulle köras direkt utan ett formulär

om jag har ett formulär som ska in i en databas

PrästenMedlem sedan dec. 2000537 inlägg
#33

ok, här igen.
jo, nån som har lite shysst kod nurå?..
som checkar och kollar innehållet samtidigt?

spangoMedlem sedan juni 20008 205 inlägg
#34

Inte för att moralisera, men man bör visa olika sidor beroende på om en användare fyllt i alla formulärelement eller ej. Typ:

if(!isset($namn))
	echo "Fyll i formuläret. Namn är obligatoriskt.";
else if($namn == "")
	echo "Du glömde fylla i namn!";
else
	# Räkna ut resultat...

------------------
Tror du på ett liv efter födseln?

PrästenMedlem sedan dec. 2000537 inlägg
#35

din kod funkar inte eftersom den enbart kollar om variabeln är "set" och inte om det finns något i den. Är php så såligt som jag erfar?.

PrästenMedlem sedan dec. 2000537 inlägg
#36

jag vill att alltså ha kod som både kollar att variabeln existerar och att den inehåller något. varför är detta omöjligt i PHP , men det funkar i ASP

herqMedlem sedan aug. 2000238 inlägg
#37

Är du så trögfattad som jag erfar?

Om du kollar in Spangos utmärkta übernewbie exempel på rad 3 ser du följande:
if($namn == "")
Denna villkorssats kollar om $namn, som är en variabel vilket man lätt kan se då första tecknet är ett dollar ($) tecken. Allt klart så här långt?
Efter $namn ser du två st lika med tecken (==) efter varandra, detta är en sk jämförelseoperator (i detta fall 'lika med').
Efter == ser du två st citattecken (""), detta betyder tomt/ingenting.
Allt klart så här långt? Bäst vi sammanfattar för säkerhets skull. Alltså villkorssatsen kollar om variabeln $namn är tom.

Du efterfrågar en kodsnutt som kollar om en variabel innehåller något. Jättelätt, du använder dig av rad 3 i Spangos exempel och lägger till tecknet ! vilket betyder inte.
if(!$namn == "")
Om $namn inte är tom (alltså om den innehåller något) gör då...

Nu har jag verkligen försökt att förklara så noga och ordentligt som jag bara kan. Kom nu inte och säg att du fortfarande inte förstår för då tror jag att jag blir tokig eller nåt.

*puh* dags för middag :)

[Redigerat av herq den 04 mar 2001]

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)