Avatar billede zorg_86 Nybegynder
19. oktober 2003 - 01:06 Der er 17 kommentarer og
1 løsning

Skal man bruge isset?

Hej

Skal man altid bruge isset f.eks

if(isset($_POST['txt']))

Må man ikke også bruge:
If($_POST['txt'])

Er der nogle forskel på de her to?
Hvis nu man skal bruge isset hvad sker der så hvis ikke man bruger det?
Avatar billede Slettet bruger
19. oktober 2003 - 01:10 #1
isset() tjekker om variablen er defineret, ikke om den indeholder noget.

if() tjekker om den indeholder en værdi.

Se på denne simple form:

<?

if(isset($_REQUEST['soegeord'])) {
echo "han trykkede send";
}

if($_REQUEST['soegeord']) {
echo "han indtastede noget";
}
?>

<form method="post" action="?id=8">
<input type="text" name="soegeord"><input type="submit" value="Søg">
</form>
Avatar billede nicklasb Nybegynder
19. oktober 2003 - 01:25 #2
if tjekker da også bare om variablen _er_ .. !?
Tror det er versionsafhængigt.. Brug hellere
if(!empty($var)) {
    // hvis der står noget i $var
} else {
    // hvis IKKE der står noget i $var
}

så er du i hvert falde på den sikre side..
Avatar billede nak-m Nybegynder
19. oktober 2003 - 03:50 #3
nicklasb: if() tjekker kun efter, om variablens værdi er falsk eller sand - i hvilket tilfælde variablen selvfølgelig også er nødt til at eksistere ;-)
Avatar billede tipsen Nybegynder
19. oktober 2003 - 09:34 #4
Det er pæn programmeringsstil at undersøge om variablen rent faktisk eksisterer inden du begynder at forespørge på dens værdi og afhængigt af fejlrapporteringsniveauet, vil du få advarsler fra PHP hvis du benytter variable som ikke er definerede/deklarerede (kan ikke huske, hvilken der er mest korrekt)
Avatar billede zorg_86 Nybegynder
19. oktober 2003 - 10:19 #5
Hvad skal jeg så bruge?

Hvad skal jeg f.eks bruge til de her?

If($_SESSION['logget_ind'] == '1' && $_POST['ret_vote'] == '1') {

    if($row['andet']) {
    $andet = '<br><br><b>Andet:</b><br>'.nl2br($andet);
    } else {
    $andet;
    }

if($_POST['form_kommentar']) {
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 12:15 #6
når jeg skal se om en variable eksistere bruger jeg:

if ($variable != "") {
  //findes
}
else {
  //findes ikke
}

er det ikke gyldig kode?
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 12:16 #7
... eller rettere når jeg ser om en variable indeholder noget må det være!
Avatar billede fangel Nybegynder
19. oktober 2003 - 12:43 #8
alle gange hvor man skriver

if($foo) for at se om $foo eksistere, skriver en kode der generere notice's...

hvis du sætter error_reporting = E_ALL, vil du se disse notice's - ikke så pænt hvis du skulle få lyst til at flytte til en server der er sat op med dette!

---

og der er forskel på if($var) og if(isset($var)) se fx

<?php
$var = 0;
if(isset($var)) echo 'var findes';
if($var) echo ' | den findes stadig!";
?>

vil kun skrive 'var findes' - da $var = 0 == false - så if($var) vil blive falskt!

---

man bør altid skrive sin kode efter error_reporting = E_ALL og register_globals = off - på den måde ved man at det vil virke på alle nyere servere, uanset opsætning!

Morten
Avatar billede zorg_86 Nybegynder
19. oktober 2003 - 12:45 #9
Det vil sige at jeg skal skrive echo error_reporting = E_ALL; øverst på alle mine sider og så se om den kommer med nogle fejler?
Avatar billede fangel Nybegynder
19. oktober 2003 - 12:50 #10
nej, ikke echo - det er en php.ini indstilling ;)

set_error_reporting(E_ALL); tror jeg hedder for at sætte den via et script (og kun for det script)

Morten
Avatar billede fangel Nybegynder
19. oktober 2003 - 12:51 #11
hov, den hedder bare error_reporting(E_ALL);

http://php.net/error_reporting

Morten
Avatar billede zorg_86 Nybegynder
19. oktober 2003 - 12:59 #12
Ja men min hjmmeside ligger på wannafind.dk
Avatar billede fangel Nybegynder
19. oktober 2003 - 13:15 #13
du kan godt sætte det i et script - så skal du bare gøre det hver gang! så skal du bruge den funktion jeg linker til

Morten
Avatar billede zorg_86 Nybegynder
19. oktober 2003 - 13:20 #14
Kan du ikke give mig noget kode til det?
Avatar billede fangel Nybegynder
19. oktober 2003 - 13:23 #15
error_reportin(E_ALL); - er alt du skal bruge - sæt det i toppen af alle dine scripts og du er kørende - hvor svært kan det være? (læs manualen, jeg linker endda til den!)

Morten
Avatar billede zorg_86 Nybegynder
19. oktober 2003 - 13:42 #16
Ok takker skriv lige som et svar..
Avatar billede tipsen Nybegynder
19. oktober 2003 - 14:34 #17
Mener ikke man må/kan sætte fejl-niveau, hvis server kører i safe-mode...
Avatar billede fangel Nybegynder
19. oktober 2003 - 20:27 #18
svaa'r

tipsen -> der kan være noget om snakken :( men kender ikke wannafind.dk - så måske ingen safe-mode)

Morten
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester