27. maj 2002 - 19:39Der er
11 kommentarer og 1 løsning
PHP Hjælp - Eksamen
Hej Eksperter
Jeg har lavet en hjemmeside til et Eksamensprojekt, hvor jeg bruger formularer, til at sende eller slette nyheder fra en database...
Jeg har bare et problem, når man udfylder formularen skulle php tjekke brugernavn kode osv, og derefter sende variablerne til databasen og skrive "din nyheds er sendt til databasen" Men det er som om den springer det første led over hvor den skal tjekke om der er indtastet brugernavn og kode, og istædet viser formularen igen.
Jeg har indsat et eksempel nedenfor...
Jeg ville være glad for noget hjælp da jeg skal til eksamen på fredag, og forsvare min opgave....
if ($navn && $kode){ if ($navn == $brugernavn && $kode == $brugerkode){ echo "<b>Din nyhed er sendt til databasen</b>"; $db = mysql_connect("mysql.jepponet.dk","kbirk","Line83"); mysql_select_db("kbirk",$db); $nyhed_dato=time(); mysql_query("insert into nyheder (dato, overskrift, tekst)values ('$nyhed_dato','$nyhed_overskrift','$nyhed_indhold')"); }else { echo "<a href=\"opretn.php\">Fejl -> Gå tilbage og prøv igen.</a>"; }}else {
echo "<b>Indtast dit brugernavn og brugerkode.<br>Udfyld derefter tekstfelterne.</b>"; ?>
if ($navn && $kode){ $db = mysql_connect("****","****","****"); mysql_select_db("B70",$db);
$resultat = mysql_query("select * from login WHERE brugernavn = $navn AND brugerkode = '$kode'");
$number = mysql_num_rows($resultat);
if ($number > 0) { echo "<b>Din nyhed er sendt til databasen</b>"; $db = mysql_connect("****","****","****"); mysql_select_db("kbirk",$db); $nyhed_dato=time(); mysql_query("insert into nyheder (dato, overskrift, tekst)values ('$nyhed_dato','$nyhed_overskrift','$nyhed_indhold')");
}
else { echo "<a href="opretn.php">Fejl -> Gå tilbage og prøv igen.</a>"; }
}
else {
echo "<b>Indtast dit brugernavn og brugerkode.<br>Udfyld derefter tekstfelterne.</b>"; ?>
Det er kun en opgave som jeg skal bruge til eksamen på fredag. så det vigtigeste er at det kommer til at virke.. Og det er kun nødvendigt at der er en bruger som kan oprette nyheder...
det mærkelige er at det har virket, og ligepludseligt er gået helt død...
Det er rigtigt som jacoba siger, der er meget rod - og koden er rodet, og brugt "forkert".
Det jeg ville vise, var at du kunne hive alle data fra din db, hvor brugernavn var lig med det indtastede brugernavn og pass var lig med det indtastede pass.
Hvis den finder nogle - dvs. koden og kodeordet er skrevet rigtigt, kan man få lov til at skrive nyheden. Den sammenligner den ikke på selve siden, men den kan du logge på, hvis der er forkomster i db.
Selvom du siger, at det kun er én bruger, så er det stadig den forkerte måde at gøre det på! Det ville være det samme som at skrælle æbler med en motorsav :)
Det skal nok komme :( Og for at det gælds skal han naturligvis holde æblet i den ene hånd og motorsaven i den anden. (og helst køre på ethjulet cykel imens:-))
jeg har fundet fejlen.. imens jeg lavede siden havde hej internet explorer 5... derefter opgraderede jeg til IE 6, og derefter virkede det ikke mere.. jeg har lige testet den på IE 5 og det virker næsten... det enste problem nu er at der ikke bliver ændret i databasen, når jeg prøver at sende nyheder til den...
er der nogen som har en løsning....?
<html> <head> <title>-+- B70 -+-</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body class="brodtxt"> <center> <? $db = mysql_connect("localhost","root",""); mysql_select_db("B70",$db); $resultat = mysql_query("select * from login"); while ($raekke = mysql_fetch_array($resultat)) { $brugernavn = $raekke['brugernavn']; $brugerkode = $raekke['brugerkode']; } if ($navn && $kode){ if ($navn == $brugernavn && $kode == $brugerkode){ echo "<b>Din nyhed er sendt til databasen</b>"; $db = mysql_connect("localhost","root",""); mysql_select_db("B70",$db); $nyhed_dato=time(); mysql_query("insert into nyheder (dato, overskrift, tekst)values ('$nyhed_dato','$nyhed_overskrift','$nyhed_indhold')"); }else { echo "<a href=\"opretn.php\">Fejl -> Gå tilbage og prøv igen.</a>"; }}else { echo "<b>Indtast dit brugernavn og brugerkode.<br>Udfyld derefter tekstfelterne.</b>"; ?>
For at rette en fejl skal man kunne se den som en fejl, og k.birk er ikke kommet langt nok til at se dem vi pegede på. Det er en ærlig sag, og os der kvajede os ved at pege på noget 'usynligt'.
Noget andet er så at hvis læreren kender noget til programmering vil karakteren nok ikke blive høj for det der (selvom det 'virker'), men så har læreren vel også den fornødene pædagogiske uddannelse til at forklare hvorfor "det virker" ikke er det samme som "godt program".
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.