Og så vil jeg lige pointere at det ikke er nogen gode idé at indsætte data i en database på den måde. Her vælger du 100% at stole på at din bruger har rene intentioner, men hvis det ikke er tilfældet vil det være super let at injecte din database. Du bør derfor altid vælge at "vaske dine input rene" inden du indsætter, et eksempel på det kunne være mysql_real_escape_string.
Men on-topic , læg din SQL streng ud i en mellemvariabel og prøv at skrive den ud, så kan du formentlig se hvis der skulle være en fejl.
$sql = "INSERT INTO lejemaal (category,city,overskrift,beskrivelse,pris,url) VALUES ('$_POST[category]','$_POST[city]','$_POST[overskrift]','$_POST[content]','$_POST[pris]','$_POST[url]'";
mysql_errorSQL: INSERT INTO lejemaal (category,city,overskrift,beskrivelse,pris,url) VALUES ('privat','Ebeltoft','Skønt hus med udsigt',' Skønt hus med udsigt
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1SQL: INSERT INTO lejemaal (category,city,overskrift,beskrivelse,pris,url) VALUES ('privat','Ebeltoft','Skønt hus med udsigt',' Skønt hus med udsigt
Nu ved vi jo ikke hvordan dit system virker, men som hovedregel skal du ALTID escape på input der kommer fra inputfelter , altså alle steder hvor brugeren har mulighed for at skrive noget. Generelt ville jeg dog nok blive irriteret hvis jeg skulle læse din kode igennem, den der opbygning er bare ikke særlig pæn, men semantik er jo noget man selv vælger at priotere :)
//Henter POST data og kører en mysql_real_escape_string for at undgå MySQL injection $category = mysql_real_escape_string($_POST['category']); $city = mysql_real_escape_string($_POST['city']); $overskrift = mysql_real_escape_string($_POST['overskrift']);
$sql = "INSERT INTO lejemaal (category,city... ... VALUES ('$cetagory','$city'...
Jeg behøver vel næppe skrive mere end dette. Men som tidligere nævnt er det jo en smagssag. Men mine erfaringer siger mig at hvis ikke man passer på giver en kode som #15 ikke meget mening efter et par måneder :)
#14 Nej, du har ingen sikkerhed overhovedet. Så det kan ikke just siges. Der bør valideres på dine inputfelter og så skal du sikre dit data, inden du smider det i databasen.
mysql_real_escape_string bliver nævnt af de andre, hvilket er en udemærket måde at sikre sig på. Det bedste mod SQL injections vil dog være at benytte sig af prepared statements. Så det vil jeg anbefale, at du læser lidt om :-)
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.