If med to variabler

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
Brugeravatar
PatricksGamerTag
Rutineret
Rutineret
Indlæg:89
Tilmeldt:27. nov 2011, 14:47
Geografisk sted:Nordjylland, Visborg
If med to variabler

Indlæg af PatricksGamerTag » 16. maj 2012, 22:02

Hej jeg har denne tilsyneladende simple kode, som jeg ikke kan få til at virke.

Kode: Vælg alt

<form action="" method="post">
     Svar: <input type="test" name="svar" /><br />
        <input type ="submit" name="submit" value="Svar!" />
</form>
<?php
$svar = $_POST["svar"];
$svar1 = "test";
$svar12 = "Test";


if($svar == $svar1 && $svar12){
    echo "Det er korrekt!";
 }else{
     echo "Det er forkert.";
 }
 
   
?>
Hvis jeg skriver "Test" i feltet, skulle den skrive "Det er korrekt!" men det gør den kun hvis jeg skriver "test"


En der kan se problemet? :)


Mvh.
Patrick

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: If med to variabler

Indlæg af Daniel » 16. maj 2012, 22:22

Hej Patrick.

Jeg havde en ide om hvad det var, og da jeg smed det ind i min egen editor viste det sig også at være helt korrekt. :)

I din kode har du skrevet:

Kode: Vælg alt

$svar = $_POST["svar"];
$svar1 = "test";
$svar12 = "Test";
Du skal bruge:

Kode: Vælg alt

$svar = $_POST["svar"];
$svar1 = "Test";
$svar12 = "Test";
For at du kan bruge if == skal de være helt ens, hvis du med din gamle kode skriver test virker det, men ikke med stort, det er lidt kringlet, men håber det er til at forstå. :)
(Det skal jo så siges at hvis du så skriver test så vil den ikke vise korrekt).

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: If med to variabler

Indlæg af Daniel » 16. maj 2012, 22:26

Lige en anden lille ting som giver en lille fejl er at du under dit input har skrevet:

Kode: Vælg alt

Svar: <input type="test" name="svar" />
Det skal rettes til:

Kode: Vælg alt

Svar: <input type="text" name="svar" />
Du havde lige fået skrevet test i dit input type i stedet for text. :)

Brugeravatar
PatricksGamerTag
Rutineret
Rutineret
Indlæg:89
Tilmeldt:27. nov 2011, 14:47
Geografisk sted:Nordjylland, Visborg

Re: If med to variabler

Indlæg af PatricksGamerTag » 16. maj 2012, 22:28

Aah, okay. Ser ud til at virke nu. Tak for hjælpen :)

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: If med to variabler

Indlæg af Daniel » 16. maj 2012, 22:35

Ahh hvis jeg læser din besked rigtig er det fordi du gerne vil have den til at skrive Det er korrekt både ved test og Test, så skal den være lidt anderledes. :)

Det eneste du enlig skal er at indsætte to variabler mere med værdierne test og så eller indsætte en betingelse mere i dit if. :)

Den kommer til at se sådan ud:

Kode: Vælg alt

<form action="" method="post">
     Svar: <input type="text" name="svar" /><br />
        <input type ="submit" name="submit" value="Svar!" />
</form>
<?php
$svar = $_POST["svar"];
$svar1 = "Test";
$svar12 = "Test";
$svar2 = "test";
$svar22 = "test";


if($svar == $svar1 && $svar12 || $svar == $svar2 && $svar22){
    echo "Det er korrekt!";
}else{
     echo "Det er forkert.";
}

   
?>
Der er sikkert en eller anden smart måde at gøre det bedre og pænere på end jeg lige har gjort, men det virker i hvert fald. :)

Brugeravatar
PatricksGamerTag
Rutineret
Rutineret
Indlæg:89
Tilmeldt:27. nov 2011, 14:47
Geografisk sted:Nordjylland, Visborg

Re: If med to variabler

Indlæg af PatricksGamerTag » 17. maj 2012, 16:30

Hej Daniel

Tak for hjælpen :)
Det hele virker næsten, har bare dette lille problem, min kode ser sådan her ud..

Kode: Vælg alt

<form action="" method="post">
     Svar: <input type="text" name="svar" /><br />
        <input type ="submit" name="submit" value="Svar!" />
</form>
<?php
$svar = $_POST["svar"];
$svar1 = "Test";
$svar12 = "Test";
$svar2 = "test";
$svar22 = "test";


if($svar == $svar1 && $svar12 || $svar == $svar2 && $svar22){
    echo '<img src="images/correct.png" height=32 width=32 alt="Korrekt!" /> </br> det er rigtigt!'; 
}else{
     echo "Det er forkert.";
}

  if (isset($_POST['svar'])) {
    echo 'Husk at skriv noget.';
}
?>

Men når jeg går ind på siden, skriver den bare "Det er forkert." uden jeg har skrevet noget. Kan du se hvad der er galt? :)

Mvh.
Patrick.

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: If med to variabler

Indlæg af Daniel » 17. maj 2012, 17:12

Hej Patrick.

Igen så er jeg ikke på nogen måde PHP ekspert så den løsning jeg kan komme med er måske ikke den mest smarte og kompakte men den virker i hvert fald. :)

Først så ved jeg ikke om du gerne ville have det der med "Husk at skrive noget." til at stå dr hele tiden, jeg har rettet det ind i denne kode sådan at det ikke er tilfældet, men at den kun kommer når du ikke har skrevet noget i feltet, hvis du gerne vil have det tilbage skal du bare slette den ekstra variable jeg har lavet og ændre din kode tilbage til hvad den var før med det. :)
Jeg har også lige valgt ikke at tage billedet med her da det lige forstyrrede mens jeg testede det, så det skal lige sættes ind igen så det kommer frem.

Men ellers så har jeg lavet et dokument mere, kaldt det index.php og det ser sådan ud:

Kode: Vælg alt

<form action="test.php" method="post">
     Svar: <input type="text" name="svar" /><br />
        <input type ="submit" name="submit" value="Svar!" />
</form>
Så har jeg lavet et dokument som hedder test.php som ser sådan ud:

Kode: Vælg alt

<form action="test.php" method="post">
     Svar: <input type="text" name="svar" /><br />
        <input type ="submit" name="submit" value="Svar!" />
</form>
<?php
$svar = $_POST["svar"];
$svar1 = "Test";
$svar12 = "Test";
$svar2 = "test";
$svar22 = "test";
$svar3 = "";


if($svar == $svar1 && $svar12 || $svar == $svar2 && $svar22){
    echo 'Det er rigtigt! <br />';
}else{
     echo "Det er forkert. <br />";
}

  if ($svar == $svar3) {
    echo 'Husk at skrive noget.';
}
?>
På den måde starter den med at vise selve formen, så er action sat til næste side, og selvom du ved den skifter over på en ny side kan andre ikke se det, og det vil se helt lige sådan ud derovre som på den anden bare hvor din PHP funktion også kører med. :)

Nu ved jeg heller ikke om du gerne vil have lavet sådan at der ikke står det er forket når man trykker Svar! med et tomt input, hvis du bare vil have den til at skrive at der skal skrives noget skal du bruge denne kode på din test.php:

Kode: Vælg alt

<form action="test.php" method="post">
     Svar: <input type="text" name="svar" /><br />
        <input type ="submit" name="submit" value="Svar!" />
</form>
<?php
$svar = $_POST["svar"];
$svar1 = "Test";
$svar12 = "Test";
$svar2 = "test";
$svar22 = "test";
$svar3 = "";


if($svar == $svar1 && $svar12 || $svar == $svar2 && $svar22){
    echo 'Det er rigtigt! <br />';
	}
elseif($svar == $svar3) {
	echo 'Husk at skrive noget.';
	}
else{
     echo "Det er forkert. <br />";
}
?>
Jeg håber at du kan bruge en af mulighederne og at jeg ikke er helt forkert på den. :)

Brugeravatar
PatricksGamerTag
Rutineret
Rutineret
Indlæg:89
Tilmeldt:27. nov 2011, 14:47
Geografisk sted:Nordjylland, Visborg

Re: If med to variabler

Indlæg af PatricksGamerTag » 17. maj 2012, 17:16

Hej igen.
Det ser ud til at virke :)
Tak for hjælpen. :D

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: If med to variabler

Indlæg af Daniel » 17. maj 2012, 17:20

Super at det virker, du må jo enlig skrive hvis der er mere du kan bruge hjælp til. :)

Besvar