Avatar billede mojdk Nybegynder
18. februar 2012 - 20:08 Der er 16 kommentarer

Vil ikke hente indhold af session

Hej igen eksperter.

Efter en tidligere vellykket tråd er jeg nu tilbage med endnu en kattepine. Denne gang med lidt mere omfattende kode. Jeg er ved at lave et bestillings modul for et firma. Og er efterhånden nået rigtig langt. Nok om det.

Siden jeg har problemer med er siden der "opsumerer" hele bestillingen, lige inden man bekræfter bestillingen. På min første side vælger man produkt, og farve. Og det hele spiller. Jeg kan bare ikke få farven til at blive vist. Og det må man sige er rigmeligt relevant for både firma og køber at vide hvilken farve deres produkt er bestilt i ;)

Jeg har prøvet forskellige ting for at løse problemet selv. B.la. også at debugge min session (som jeg lærte i forrige tråd). Og så vidt jeg kan se er der ikke noget indhold af sessionen åbenbart.

Herunder er koden til siden er driller. Lad mig vide hvis i skal bruge noget andet :)

http://pastebin.com/q2TeaQjF

PFT.
Mads
Avatar billede olebole Juniormester
18. februar 2012 - 20:24 #1
<ole>

Inden du begynder at lave applikationer, som skal bruges til noget, bør du sætte dig ind i helt grundlæggende sikkerhed. Hele databasen står pivåben for SQL-injection - hvilket betyder, at den er lige til at slette for enhver bruger, der kan komme i nærheden af formularen.

Der er forhåbentlig ikke nogen, der betaler dig for det der

/mvh
</bole>
Avatar billede mojdk Nybegynder
18. februar 2012 - 20:51 #2
Om jeg bliver betalt eller ej er vel fuldstændig ligemeget.

Du kommenterede også i min tidligere tråd vedr. sikkerhed. Og jeg ser mig nød til at gentage mig selv. Da jeg stadig er forholdsvis grøn på dette område vælger jeg at optimere sikkerheden til sidst. Ellers drukner jeg i kode. Om det er den måde du ville gøre det på eller ej, er jeg ligeglad med. Det her er måden jeg gør det på.
Noget helt andet er, at denne bestillings formular skal bruges af "almindelige" mennesker. Som nok ikke giver en fløjtende fis for om databasen står åben eller ej.
Avatar billede olebole Juniormester
18. februar 2012 - 20:55 #3
Det er alt andet end ligemeget, om du tillader dig at blive betalt for det. Gør du det, opfører du dig rystende uansvarligt!
Avatar billede mojdk Nybegynder
18. februar 2012 - 20:57 #4
Jeg har virkelig ikke lyst til at diskuterer det her hér.

Har du ikke noget konstruktivt at sige, så lad venligst være.
Avatar billede michael_stim Ekspert
18. februar 2012 - 20:58 #5
Som olebole siger, så søg på SQL injection. Du kan eventuelt kigge på mysq_real_escape_string og gerne mysqli prepared statement.

Hvad dit problem angår, så sæt ' om dine variabler.
"select * from product where suspend='No' and color="".$_SESSION['color']."""
Avatar billede michael_stim Ekspert
18. februar 2012 - 21:02 #6
Hov, der kom lige et par tråde mere mens jeg skrev. Må give olebole ret her, det er en utroligt dårlig måde at kode på. Der er ikke noget der hedder: "Det gør jeg senere", når det kommer til sikkerhed. Oleboles kommentarer er i høj grad konstruktive, men jeg behøver ikke tale for olebole, det klarer han udmærket selv ;o)
Avatar billede olebole Juniormester
18. februar 2012 - 21:03 #7
@mojdk: Tjah, der er vel ikke andet at gøre, end at acceptere, du ikke evner at se det konstruktive i at fortælle dig sandheden.

Man må kun håbe, at du - hvis du en dag skulle gå hen og få en uddannelse - opnår forståelse for, hvad faglig viden betyder for det, man laver!
Avatar billede michael_stim Ekspert
18. februar 2012 - 21:13 #8
Og kan se at alt det jeg skrev i #5, er du allerede blevet oplyst om af olebole i dit foregående spørgsmål ;o)
Avatar billede mojdk Nybegynder
18. februar 2012 - 21:14 #9
@michael_stim
Har prøvet at lege lidt rundt med " og ', men det virker ikke rigtig helt. Der kommer en SQL-fejl i ny og næ. Ellers er det det samme.

Hvad sikkerheden angår vil jeg gerne læse lidt op på det. Men igen, det bliver ikke før det hele virker.

@olebole
Jeg ser absolut ingen grund til at du skal blive personlig omkring dette her. Jeg stiller et spørgsmål. Du vælger at svare på noget som ikke har noget med mit spørgsmål at gøre.

Jeg ved ikke hvem du tror du er, men beder dig venligst om at holde dig væk fra min tråd.
Avatar billede erikjacobsen Ekspert
18. februar 2012 - 21:27 #10
Du kunne vise os hvor du putter en værdi i $_SESSION[color].

Og hvis du beder Ole holde sig væk, så vil jeg da overtage: Det kode du viser er fint nok til at starte med, måske endda til en skoleopgave, men det burde være ANSVARSPÅDRAGENDE, hvis det nogensiden bliver lagt på Internettet.

Sammenlignet med en autoriseret el-tekniker, har du lige lavet ulovlige el-installationer. ;)

Prøv at lære lidt om faget først.

Og ja, du er ikke den eneste. Og ja, du kan finde mange eksempler der ligner dit. Men det gør det jo ikke mere rigtigt.
Avatar billede olebole Juniormester
18. februar 2012 - 21:34 #11
Jeg tror ikke, du har nogen somhelt idé om, hvad det kan koste en evt. kunde i sagsanlæg, erstatninger og statustab, hvis ikke applikationen er skudsikker. Det har firmaer som Harald Nyborg, Universalmusic.dk og det stort anlagte betalingssystem Valus måtte erfare.

"Hvad sikkerheden angår vil jeg gerne læse lidt op på det. Men igen, det bliver ikke før det hele virker." >> Det hurtige fix kan du læse om her. Den lange og kedelige løsning består i at afsætte 8 timer om dagen i 3-5 år til intensivt selvstudie.
Avatar billede danco Nybegynder
20. februar 2012 - 07:17 #12
Og jeg vil så gerne have lov til at tilføje at jeg synes det er utrolig dårlig kodestil at blande HTML og PHP på denne her måde, og jeg skal undlade at gentage de forrige indlæg. Men nok om det.

For at vi rent faktisk kan hjælpe dig bliver du nok nødt til at uddybe hvornår der opstår en fejl. Her er "i ny og næ" ikke beskrivende nok.
Naturen i koden er sådan at hvis den virker én gang virker den flere gange, vel og mærke hvis tilstanden er den samme.  Derudover ville det nok være fordelagtigt hvis du valgte at fortælle hvilken SQL du får da det giver os en mulighed for at se hvad problemet kunne være.

Og så vil jeg lige tilføje at jeg ikke synes det skal slå dig ud at folk kommenterer som de gør, at du måske ikke opfatter det sådan gøre ikke kommentarerne irrelevante. Det er nemlig højt kvalificerede og du har formået at samle nogle af de bedste i netop denne tråd. Lyt og lær, det lønner sig i sidste ende.
Avatar billede olebole Juniormester
20. februar 2012 - 16:10 #13
@danco: Helt enig vedr. sammenblanding - plus brug af 'stjerne' i SQL'en - plus at navngive et element med ordet 'submit' - og jeg tør godt sætte et substantielt beløb på, at der desuden mangler indeksering af tabeller.

Det virkelig seriøse problem her er, at spørger er ved at lave en bestillings-/købsside for en kunde. Det grænser til en kriminel handling og er udtryk for en totalt forvrænget selvforståelse!
Avatar billede michael_stim Ekspert
20. februar 2012 - 16:28 #14
Så drenge, nu behøver i ikke skræmme opretter helt væk, hvis det ikke allerede er sket, tror godt denne person er klar over at han/hun er ude på dybt vand ;o)
Avatar billede michael_stim Ekspert
20. februar 2012 - 16:28 #15
Og det er en han, ser jeg nu på hans spørgsmål.
Avatar billede olebole Juniormester
20. februar 2012 - 17:57 #16
#15 >> Præcis - og spørgsmålet hænger uden tvivl sammen med dette fra dagen før. Heraf fremgår det, at der er tale om en kunde
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