Måste jag konfigurera om servern för att få kommandona att tolkas annorlunda?
Hur kolla variabel
36 svar · 324 visningar · startad av Prästen · sida 2 av 2
Det funkar inte alls för mig, det står enbart undefined variable.
Det funkar inte för mig. det blir undefined variable.
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?
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?.
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
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 ...
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
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<>"".
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.
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
ok, här igen.
jo, nån som har lite shysst kod nurå?..
som checkar och kollar innehållet samtidigt?
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?
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?.
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
Ä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]