/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Problem med om variabler er sat (isset)
Fra : Morten M. Kaastrup


Dato : 24-06-04 09:43

Hej

Jeg har et, efterhånden temmelig irriterrende problem. Når jeg laver en
form, fx. med navn og efternavn og jeg vil sætte dem ind i en database. Det
skal (selvfølgelig) kun sættes ind, hvis navn ($navn) og efternavn
($efternavn) er sat (isset)

Jeg har lavet en meget simpel en, som bare tjekker om de to
text-input-felter er sat:

<?
$navn = $_POST['navn'];
$efternavn = $_POST['efternavn'];

if(isset($_POST['navn'])) {
echo "<br />Navn er sat med \"$navn\"<br />";
} if (isset($_POST['efternavn'])) {
echo "Efternavn er sat med \"$efternavn\"<br />";
}
?>

Jeg ved godt at man bare kunne have gjort:

if(isset($navn)) { .....

Men som det er nu, er jeg da sikker på ikke at skrive forkert.

Hvis jeg trykker send uden at have skrevet noget i navn/efternavn, så
skriver den
Navn er sat med ""
Efternavn er sat med ""

Vildt irriterrende at jeg ikke kan få det til at virke, jeg kunne forestille
med at det har noget at gøre med at de er tomme men de er "NOT NULL" eller
sådan noget?
Jeg er ny til PHP

mvh. Morten



 
 
Benny Dyhr Thomsen (24-06-2004)
Kommentar
Fra : Benny Dyhr Thomsen


Dato : 24-06-04 10:15



"Morten M. Kaastrup" wrote:
>
> if(isset($_POST['navn'])) {
> echo "<br />Navn er sat med \"$navn\"<br />";
> } if (isset($_POST['efternavn'])) {
> echo "Efternavn er sat med \"$efternavn\"<br />";
> }
> ?>

Du kan f.eks. benytte
if(strlen(trim($_POST['navn']))

hvis længden af en streng hvor mellemrum er fjernet er ikke 0

--
Venlig hilsen
Benny Dyhr Thomsen
http://our-site.dk

Ukendt (24-06-2004)
Kommentar
Fra : Ukendt


Dato : 24-06-04 10:19

<?php
$navn = $_POST['navn'];
$efternavn = $_POST['efternavn'];

if($_POST['navn']) {
echo "<br />Navn er sat med \"$navn\"<br />";
}else{
echo "<br />navn ikke sat!<br />"
}
if ($_POST['efternavn']) {
echo "Efternavn er sat med \"$efternavn\"<br />";
}else{
echo "<br />efternavn ikke sat!<br />"
}
?>



eller



<?php
$navn = $_POST['navn'];
$efternavn = $_POST['efternavn'];

if(isset($navn)) {
echo "<br />Navn er sat med \"$navn\"<br />";
}else{
echo "<br />navn ikke sat!<br />"
}
if (isset($efternavn)) {
echo "Efternavn er sat med \"$efternavn\"<br />";
}else{
echo "<br />efternavn ikke sat!<br />"
}
?>


--
Hilsen / Regards
- Søren Løbner
- www.lobner.dk

Ulrik Nielsen (24-06-2004)
Kommentar
Fra : Ulrik Nielsen


Dato : 24-06-04 10:32

Søren Løbner wrote:
>
> <?php
> $navn = $_POST['navn'];
> $efternavn = $_POST['efternavn'];
>
> if(isset($navn)) {
> }else{
> }
> if (isset($efternavn)) {
> }else{
> }

det er ikke helt godt nok, for $navn er nu sat, selvom $_POST['navn']
ikke har nogen værdi.

for at checke på om et felt er tomt skal du bruge "empty"

if (empty($_POST['navn'])) {
// fletet er tomt
}

isset tester kun på om variablen $navn er sat, og det er den, den er
(hvis $_POST['navn'] er tom) sat til ''

--
>> ulrik nielsen
excuse of the day : The electrician didn't know what the yellow cable
: was so he yanked the ethernet out.
from bofh : http://www.cs.wisc.edu/~ballard/bofh/

Bertel Lund Hansen (24-06-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 24-06-04 11:12

Morten M. Kaastrup skrev:

>Jeg har lavet en meget simpel en, som bare tjekker om de to
>text-input-felter er sat:

> <?
> $navn = $_POST['navn'];
> $efternavn = $_POST['efternavn'];

Der bliver begge variabler sat, og derfor returnerer isset() true
- som du faktisk også selv har gættet.

Benny Dyhr Thomsen har vist dig en løsning der tjekker længden af
strengen i stedet for. Selv ville jeg sammenligne strengen (efter
trim) med "", altså den tomme streng, men det er en smagssag.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Morten M. Kaastrup (24-06-2004)
Kommentar
Fra : Morten M. Kaastrup


Dato : 24-06-04 12:48

Mange tak til alle!

Dejligt man altid kan få hjælp herinde :)

mvh. Morten



Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408638
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste