Jeg er mildest talt ingen haj til PHP og MySQL, men jeg prøver alligevel at få lidt styr på det, hvilket er gået mig ok indtil videre. Det eneste problem jeg dog er støt på, er at jeg ikke kan få min "submit form" til at uploade de indtastede data til min MySQL-database, vha. kommandoen "INSERT INTO". At hente ned fra databasen virker gnidningsfrit, men omvendt sker der intet udover at siden ikke loader, hvis jeg har "INSERT INTO"-kommandoen i min kode.
Jeg poster en kode næsten magen til herunder (uden kodeord til min database osv.), nogen der kan hjælpe mig? I må endelig spørge hvis der er nogle af mine variabler I ikke lige har styr på, samt rette andre mulige fejl - jeg bliver jo kun klogere af en længere diskussion og/eller flere råd.
"form" var en slåfejl, der er jo kun én form Tak for din respons, men jeg kan ikke få siden til at virke. Siden vil simpelthen ikke loade når jeg bruger denne kommando i koden:
mysql_query("INSERT INTO temp(quote) VALUES ("$_POST['thequote']")");
Når jeg fjerner den éne kommando, loader resten fuldstændigt som det skal.
Jeg ville være så taknemmelig, hvis du vil kigge på filen og se om du kan finde fejlen. Forbindelsen til databasen dannes uden problemer
Er du sikker på databasen med navnet "database" og tabellen med navnet "temp" findes? Kig evt. efter i din backend (phpMyAdmin eller lignende).
Som Niels korrekt nævner er din kode sårbar overfor SQL Injection, kort fortalt kan jeg f.eks. slette din tabel ved at indtaste noget i retning af "blabla"); DROP TABLE quote; --" i din form, så den endelige SQL query i din kode kommer til at være:
"INSERT INTO temp(quote) VALUES ("blabla"); DROP TABLE temp; --" (alt efter -- bliver ignoreret og set som en kommentar af MySQL).
Ved du hvad, Martin? Det fungerer perfekt med din kode! Der er en del syntakser jeg ikke forstår, men jeg vil helt klart slå dem op, så jeg kan finde ud af hvordan magien virker Tusind tak!
Mht. SQL Injection, så ved jeg ikke meget om det, men heldigvis er dette også kun et eksempel jeg laver for at blive bedre til PHP og SQL. Tak for linket alligevel - jeg vil bruge det i fremtiden!
Mht. SQL injection så handler det egentlig bare om at du aldrig kan stole på brugerens input, altså i dette tilfælde det brugeren skriver i input feltet.
En "ond" bruger kan skrive ting i feltet som har utilsigtede sideeffekter, i mit tilfælde ovenfor sletter den f.eks. din database tabel.
Hvis nu du f.eks. skriver data fra databasen ud på en anden side, og en bruger har indsat "<script>alert('HACKED YOUR SITE');</script>" i stedet for hvad du forventede og du ikke filtrerer dataene før de præsenteres, så kan brugerne gøre farlige ting ved din side og dine brugeres data.
Softwareudvikler med speciale indenfor skalerbare webløsninger. PHP, MySQL, Puppet, Python, Apache, nginx, HTML5, m.m. http://bitmasch.com/