Avatar billede djsteiner Nybegynder
11. januar 2009 - 16:21 Der er 19 kommentarer og
1 løsning

if strukturen til at tjekke for tomme værdier

Hej jeg er er helt nybegynder i PHP og ville gerne have noget hjælp til at lave if strukturen til at tjekke for tomme værdier og parametre.

Her har i den kode som jeg lige prøver mig frem med.

På forhånd tak for hjælpen.

<form action="php_begynder.php" method="post">
<input type="text" name="felt" /> <br />
<input type="submit" name="submit" value="Gem" /><br />
</form>
<a href="php_begynder.php?tekst=hej">Tryk på mig</a><br />



<?php
$vartekst = $_GET['tekst'];
echo $vartekst;
echo "<br />";
?>

<?php
$vartekst= $_POST['felt'];
echo $vartekst;
echo "<br />";
?>

<?php
// Tjek om en variabel ikke  har en værdi

if( $vartekst !=  {
    echo "Navn er tomt";
}
?>
Avatar billede michaelgm Nybegynder
11. januar 2009 - 16:27 #1
if($vartekst == "") {
    echo "Navn er tomt";
}
Avatar billede djsteiner Nybegynder
11. januar 2009 - 16:49 #2
Nu kommer den med denne fejmedelse og derefter "Navn er tomt"

Notice: Undefined index: tekst in D:\websider_PHP\Begynder PHP\php_begynder.php on line 106


Notice: Undefined index: felt in D:\websider_PHP\Begynder PHP\php_begynder.php on line 112

Navn er tomt
Avatar billede olebole Juniormester
11. januar 2009 - 17:03 #3
<ole>

Så viser du os ikke hele koden. De fejl opstår ikke i det, du viser.

Derudover må du aldrig kalde noget 'submit' (din knap, f.eks.). Bruge _aldrig_ navne, der bruges til andet  ;o)

/mvh
</bole>
Avatar billede showsource Seniormester
11. januar 2009 - 17:19 #4
Brug gerne trim() for at tjekke at var ikke er tom
trim() fjerner space og linieskift i starten og slutningen af en var

if(isset($_POST["felt"])) {

    if(trim($_POST["felt"]) == "") {
    echo"felt er tomt!";
    }else{
    echo $_POST["felt"];
    }

}
Avatar billede djsteiner Nybegynder
11. januar 2009 - 17:21 #5
her har i hele koden


<?php
//her udskrives tekst til browseren
echo "Hello world <br>";
?>

<?php
// her udskrives dag, månede, år og Time antallet, Minut antallet og Sekund antallet
echo date('d-m-y : H:i:s')."<br>";

echo date('H:i:s')."<br>";

echo date('d-m-y : H:i:s')." "." Hello Hvad så der <br>";
?>



<?php
// her bliver der lavet nogle vaiabler som så blive udskrevet med mellemrum
$var = "Her er nogle";
$vaR = "eksempler på";
$Var = "php variabler";
$vAr = "php er case-sensitive";
$_var = "Hello hva så der";
$_vAr = 1;
echo $var." ".$vaR." ".$Var." ".$vAr. " ".$_var. " " .$_vAr. " " ."<br>";
?>

<?php
//hvis 20 ikke er det samme som 10  så udskrives x som er 20. hvis x var 10 ville den uskrive "Tallet er 10    != betyder at variablen ikke er lig med tallet 10"
$x = 20;
if ($x != 10){
echo $x;}
else{
echo "Tallet er 10";
};
echo "<br>";
?>


<?php
// Her laver vi en forespørgelse på om x er = 10 eller om x er = 15 og derfor  udskrives "Tallet er 15" da $x er =15

$x = 15;
if ($x == 10){
echo "Tallet er 10";}
elseif ($x == 15){
echo "Tallet er 15";}
else{
echo $x;
};
echo "<br>";
?>

<?php
// Her laver vi en forespørgelse på om x er =2  var = 1 ? (true) eller : (false) og derfor bliver "var er ikke 1" udskrvet da det er :(false)
$var = 2;
$tekst = ($var == 1) ? "var er 1" : "var er ikke 1";
echo $tekst;
echo "<br>";
?>

<?php
  $vargender = "Mand";
  $tekst = ($vargender == "Mand") ? "Mand" : "Dame";
  echo $tekst;
  echo "<br>";
?> 
 


<?php
// Her laver vi en forespørgelse på om vaiable værdi "sin" eller i dette her tilfælde om det finden en case med navnet "sin" da det ike er tilfældet  så vil "Standard værdi" komme frem på skræmen


$myvar = "sin";

switch($myvar){
case "æble";
echo"Du valgte æble";

    break;
case "pære";

echo "Du valgte pære";
    break;

default;
echo"Standard værdi";
echo "<br>";
    break;
}
?>


<form action="php_begynder.php" method="post">
<input type="text" name="felt" /> <br />
<input type="submit" name="ok" value="Gem" /><br />
</form>
<a href="php_begynder.php?tekst=hej">Tryk på mig</a><br />



<?php
$vartekst = $_GET['tekst'];
echo $vartekst;
echo "<br />";
?>

<?php
$vartekst= $_POST['felt'];
echo $vartekst;
echo "<br />";
?>

<?php
// Tjek om en variabel ikke  har en værdi

if($vartekst == "") {
    echo "Navn er tomt";
}
?>
Avatar billede djsteiner Nybegynder
11. januar 2009 - 17:22 #6
liner 106 er denne liner
$vartekst = $_GET['tekst'];

liner 112 er denne liner

$vartekst= $_POST['felt'];
Avatar billede olebole Juniormester
11. januar 2009 - 17:31 #7
Jeg kan ikke genskabe din fejl med din kode
Avatar billede djsteiner Nybegynder
11. januar 2009 - 17:40 #8
så du for ingen fejl ??
Avatar billede tjens Nybegynder
11. januar 2009 - 17:59 #9
De 2 gange "notice" er vel ikke fejl:

De vil altid komme når siden loader første gang, da der ikke er medsendt hverken POST eller GET variable.

Først nå du klikker på submit knap eller "Tryk på mig" link, vil siden blive modtage en variabel.  Og her vil den kun modtage enten en POST eller en GET og dermed vil der stadig komme 1 notice.
Avatar billede djsteiner Nybegynder
11. januar 2009 - 18:07 #10
okay ja det har jeg også fundet ud af, men kan man ikke gøre noget så den fejlmedelse ikke kommer frem føste gang man loader siden ??
Avatar billede olebole Juniormester
11. januar 2009 - 19:31 #11
Jo, i virkeligheden kan man argumentere for, altid at slå alle fejlmeddelelser til under udvikling - og altid slå dem fra under drift, hvor koden selv bør håndtere evt. fejl.

Du kan håndtere fejlmeddelelser med:
    http://dk2.php.net/manual/en/function.error-reporting.php
Avatar billede olebole Juniormester
11. januar 2009 - 19:33 #12
- og så bør man altid tjekke, om formen er sendt:

<?php
if (if($_POST["contxt"]) && $_POST["contxt"]=="blabla") {
    // Formen blev sendt - kør koden her
}
?>

<form action="php_begynder.php" method="post">
<input type="hidden" name="contxt" value="blabla">
<input type="text" name="felt" /> <br />
<input type="submit" name="ok" value="Gem" /><br />
</form>
Avatar billede olebole Juniormester
11. januar 2009 - 19:34 #13
Hov ... hvad var det ...?!??!!!  :D

<?php
if (isset($_POST["contxt"]) && $_POST["contxt"]=="blabla") {
    // Formen blev sendt - kør koden her
}
?>
Avatar billede olebole Juniormester
11. januar 2009 - 19:36 #14
- og husk: Sålænge du udvikler, må du _ikke_ slå fejlmeddelelser fra!
Avatar billede djsteiner Nybegynder
11. januar 2009 - 19:41 #15
okay mange tak for hjælpen nu ved jeg ikke lige hvad vi gør ved point
Avatar billede djsteiner Nybegynder
18. august 2010 - 15:12 #16
KOm lige med et svar Olebole så vi kan få dette spørgsmål lukket :)
Avatar billede djsteiner Nybegynder
24. februar 2011 - 15:59 #17
Ole smid lige et svar så giver jeg point :)
Avatar billede djsteiner Nybegynder
21. juli 2011 - 00:24 #18
Lukke tid
Avatar billede olebole Juniormester
21. juli 2011 - 00:30 #19
Hej djsteiner. Jeg er her efterhånden meget sjældent og samler ikke længere points - og reagerer sjældent på E-mails om gamle tråde.

Bare luk evt. spørgsmål, jeg måtte have besvaret ... men tak for dine gentagne forsøg på at råbe mig op  *o)
Avatar billede djsteiner Nybegynder
21. juli 2011 - 11:14 #20
Super og endnu engang tak! :)
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