Avatar billede foxmulder58 Praktikant
11. december 2005 - 20:58 Der er 6 kommentarer og
1 løsning

Definitoner/forklaringer i PHP kode

Hej eksperter,

jeg har følgende script til et PHP nyhedssystem:






<?

include "mysql.php";

echo "<form action=\"\" method=\"POST\">";

if ($_POST[submit]) {

if ($_POST[overskrift] == ""){
echo "Du mangler at skrive en overskrift<br>";
}

if ($_POST[beskrivelse] == ""){
echo "Du mangler at skrive en beskrivelse<br>";
}

if ($_POST[nyhed] == ""){
echo "Du mangler at skrive nyheden<br>";
}
else {
$dato = date('d/m/Y H:i:s');
mysql_query("INSERT INTO nyhedssystem (overskrift, beskrivelse, nyhed, dato) VALUES ('$_POST[overskrift]', '$_POST[beskrivelse]', '$_POST[nyhed]', '$dato')") or die(mysql_error());
}
}


echo "Overskrift: <input type=\"text\" name=\"overskrift\">";
echo "Beskrivelse: <input type=\"text\" name=\"beskrivelse\"><br>";
echo "<textarea rows=\"10\" cols=\"60\" name=\"nyhed\"></textarea><br>";
echo "<input type=\"submit\" value=\"Opret\" name=\"submit\">";

echo "</form>";
?>











Er der en der kan forklare mig hvordan de "if-sætninger" fungerer?



Eler hjvordan scriptet i det hele taget fungerer (behøver ikke være teknisk forklaret, gerne i lægmands termer så jeg kan følge med :]  )




mvh
Mads
Avatar billede innercitydk Nybegynder
11. december 2005 - 21:24 #1
if ($_POST[submit]) { <--- Hvis der trykkes på submit knappen

if ($_POST[overskrift] == ""){ <--- Hvis der ikke er skrevet noget i overskrifts feltet...
echo "Du mangler at skrive en overskrift<br>";
}

if ($_POST[beskrivelse] == ""){ <--- Hvis der ikke er skrevet noget i beskrivelses feltet...
echo "Du mangler at skrive en beskrivelse<br>";
}

if ($_POST[nyhed] == ""){ <--- Hvis der ikke er skrevet noget i Nyhedsfeltet...
echo "Du mangler at skrive nyheden<br>";
}
else { <--- Hvis alt er udfyldt så...
$dato = date('d/m/Y H:i:s');


Vh Nicki
Avatar billede innercitydk Nybegynder
11. december 2005 - 21:26 #2
Det er et meget simpelt script der gemmer de data der fyldes i felterne i en database. Hver gang der står "echo" betyder det at der vises noget på skærmen..

Den tjekker ganske enkelt om felterne er korrekt udfyldt, og hvis de er så gemmer den dataene i databasen..

Vh
Avatar billede innercitydk Nybegynder
11. december 2005 - 21:27 #3
Hvis bare en af felterne ikke er udfyldt hopper den ud af submit if sætningen, skriver en meddelelse og venter på at det manglende felt bliver udfyldt.
Avatar billede nielle Nybegynder
11. december 2005 - 21:34 #4
Det er nu ikke helt rigtigt ... else-sætningen matcher kun den sidste if.

Rent faktisk er der en del logiske fejl i det originale script. Denne version er nok noget bedre:

<?
include "mysql.php";

if (isset($_POST["submitButton"]))
{
    if (!isset($_POST["overskrift"]) || trim($_POST["overskrift"]) == "")
    {
        echo "Du mangler at skrive en overskrift<br>";
    }
    elseif (!isset($_POST["beskrivelse"]) || trim($_POST["beskrivelse"]) == "")
    {
        echo "Du mangler at skrive en beskrivelse<br>";
    }
    elseif (!isset($_POST["nyhed"]) || trim($_POST["nyhed"]) == "")
    {
        echo "Du mangler at skrive nyheden<br>";
    }
    else
    {
        $dato = date('d/m/Y H:i:s');
        mysql_query("INSERT INTO nyhedssystem (overskrift, beskrivelse, nyhed, dato) VALUES ('" . $_POST["overskrift"] . "', '" . $_POST["beskrivelse"] . "', '" . $_POST["nyhed"] . "', '" . $dato . "')") or die(mysql_error());
    }
}

echo "<form action=\"\" method=\"POST\">";
echo "Overskrift: <input type=\"text\" name=\"overskrift\">";
echo "Beskrivelse: <input type=\"text\" name=\"beskrivelse\"><br>";
echo "<textarea rows=\"10\" cols=\"60\" name=\"nyhed\"></textarea><br>";
echo "<input type=\"submit\" value=\"Opret\" name=\"submitButton\">";
echo "</form>";
?>
Avatar billede foxmulder58 Praktikant
14. december 2005 - 00:11 #5
smider du også svar nielle!


mvh
mads
Avatar billede nielle Nybegynder
14. december 2005 - 07:07 #6
Nej tak til point på denne her. innercitydk forklarede jo koden, og jeg rettede kun lidt fejl. Men ellers tak for tilbudet. :^)

Det var blot fordi at jeg kunne se at der var et større logisk hul, at jeg blev nødt til at reagere. I øvrigt er det min erfaring at, hvis man stiller sin kode ordentlig op, med indrykninger osv., ja så hjælper det i sig selv meget med forståelsen. Det er også derfor at jeg klart foretrækker notationen:

if ($a == $b){
    // ...
}

- frem for:

if ($a == $b)
{
    // ...
}

For med denne kan man tydeligt se hvilke {}-par der høre sammen. Men du kan jo selv bedømme. :^)
Avatar billede foxmulder58 Praktikant
14. december 2005 - 17:15 #7
ja jeg har godt nok PHP DESIGNER 2005 som burde kunne sætte koden op for mig på en pæn måde?


Tusind tak for hjælpen  nielle!



mvh
Mads
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