Avatar billede udvikler Nybegynder
06. november 2005 - 18:17 Der er 23 kommentarer og
1 løsning

Kan i finde nogle fejl i forummet her ?

Som i måske ved har jeg været igang med et forum i et stykke tid nu, jeg har fundet fejl og rettet dem en efter en, og den
måske sidste fejl blev fundet idag og rettet med hjælp fra jaw her fra eksperten :)

Nu vil jeg så bare høre om i kan finde nogle fejl ved forummet, og jeg vil derefter afgøre om det er en fejl som ikke burde
være der eller om det skal være sådan, men en af de "fejl" i hurtigst vil finde er link fejlen, men har skrevet lidt mere om
det nederst i indlægget. Der vil være point til den/dem som finder en fejl, som jeg også er enig i er en fejl.

og jeg ved godt at man kan ikke lave links, det er ikke en fejl, men lavet med vilje, så man ikke kommer til at trykke på
links man ikke burde.

Test forummet kan findes her: www.fora.frac.dk
Avatar billede whatever Nybegynder
06. november 2005 - 18:36 #1
Du kan starte med at tjekke på, om id'erne er nummeriske:

http://www.fora.frac.dk/laes.php?id='
Avatar billede udvikler Nybegynder
06. november 2005 - 18:37 #2
Forstår ikke helt hvad du mener ?
Avatar billede whatever Nybegynder
06. november 2005 - 18:38 #3
Hvis man indtaster ' i overskrift eller besked feltet i oprettelsen af beskeder, fejler siden også. Benyt addslashes() inden du gemmer indholdet af felterne i databasen.
Avatar billede udvikler Nybegynder
06. november 2005 - 18:42 #4
Øhm, det gør jeg da også:

nl2br(htmlentities(addslashes($_POST['besked'])));


:)
Avatar billede whatever Nybegynder
06. november 2005 - 18:45 #5
Når du henter en parameter fra url'en, og benytter den i en sql query, er det en god idé at tjekke om den indeholder det man forventer. Da id'et på beskeden i databasen er nummerisk, er det en god idé at tjekke om id'et fra url'en er nummerisk.

Du kunne f.eks. skrive følgende:

if (isset($_GET['id']) && is_numeric($_GET['id'])) {
  // hent dataen ud af databasen.
} else {
  header("location: ./index.php");
}
Avatar billede whatever Nybegynder
06. november 2005 - 18:45 #6
Hvordan ser din insert query ud?
Avatar billede whatever Nybegynder
06. november 2005 - 18:48 #7
I listen over beskeder har offset paremeteren i url'en, samme problem som id'et.

Du kunne f.eks. skrive:

$offset = (isset($_GET['offset']) && is_numeric($_GET['offset'])) ? $_GET['offset'] : 0;
// her henter du så beskederne ud af databasen
Avatar billede udvikler Nybegynder
06. november 2005 - 18:52 #8
Jamen, det er jo ikke rigtige fejl, men bare forslag til forbedringer ?
- forstå mig korrekt, jeg er glad for du vil hjælpe mig, men det er da ikke fejl det der :)

eller hvad ?
forstår det ikke helt..
Avatar billede erikjacobsen Ekspert
06. november 2005 - 18:57 #9
Men det er da dejligt nemt at se alle indlæg. Jo, det er en fejl
  http://www.fora.frac.dk/laes.php?id='0'+or+1=1
Avatar billede udvikler Nybegynder
06. november 2005 - 19:00 #10
Hvordan for man så lige det rettet ?
og hvad betyder det du har skrevet i adresse linien ?
Avatar billede erikjacobsen Ekspert
06. november 2005 - 19:04 #11
Det betyder bare at jeg har lavet om i din sql-sætning. Forslag til rettelser er allerede fremsat.
Avatar billede udvikler Nybegynder
06. november 2005 - 19:12 #12
Har ændret den med offset:
$offset = (isset($_GET['offset']) && is_numeric($_GET['offset'])) ? $_GET['offset'] : 0;

men den første ting 'whatever' sagde forstår jeg ikke helt ?
Avatar billede JOHN_DOE Nybegynder
06. november 2005 - 19:12 #13
man kan fx skrive


<script>
location.href='hej.php';
</script>

også linker den over til hej.php

og man kan ikke skrive ' man skal skrive \'
Avatar billede udvikler Nybegynder
06. november 2005 - 19:16 #14
Hvad kan man gøre for at fjerne link funktionen som du har brugt aalouv ?
har jo brugt htmlentities og troede det fjernede ALLE form for koder, det burde det vel også ?
Avatar billede whatever Nybegynder
06. november 2005 - 19:25 #15
Prøv at sende din kode til index.php, opret.php og laes.php.
Avatar billede JOHN_DOE Nybegynder
06. november 2005 - 19:26 #16
hm.. ved det faktisk ikke jeg gør sådan..
------------------------
  $besked = str_replace("<", "&lt;", $besked);
  $besked = str_replace(">", "&gt;", $besked);

der hvor der står $besked skal du intaste navnet på dit felt..

// Louv
Avatar billede udvikler Nybegynder
06. november 2005 - 19:27 #17
Har du ikke msn eller en mail adresse som jeg kan skrive til istedet ?
Avatar billede showsource Seniormester
06. november 2005 - 19:32 #18
Jeg gemmer altid den "rå tekst" i DB'en
Først ved output bruges htmlentities() m.m.
Avatar billede whatever Nybegynder
06. november 2005 - 19:35 #19
Du kan sende filerne til beltofte@gmail.com
Avatar billede udvikler Nybegynder
06. november 2005 - 19:36 #20
Jamen jeg har gjort begge dele, men stadig virker det ikke helt, nu har jeg så indsat den kode aalouv kom med men nu kommer den med en mysql fejl hvis man skriver <script> koden som han kom med :S
Avatar billede udvikler Nybegynder
06. november 2005 - 19:44 #21
5 styks mail er sendt :)

1 - med lidt forklaring

4 - med hver sin fil

resten ordner jeg og whatever over mail, så alle dem der vil have point lægger lige et svar okay ?
Avatar billede udvikler Nybegynder
11. november 2005 - 07:36 #22
Læg nu nogle svar :D
Avatar billede whatever Nybegynder
11. november 2005 - 09:36 #23
svar
Avatar billede erikjacobsen Ekspert
11. november 2005 - 09:57 #24
nej 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