Avatar billede thewebmaker Nybegynder
08. juli 2008 - 16:36 Der er 5 kommentarer og
1 løsning

Probs. med indsætte data i MySQL

Hej alle eksperter :)

Jeg har bevæget mig ud på PHP området og er nu gået i stå :(

Jeg vil gerne prøve at lave noget, lidt lignene et forum, hvor man på en hjemmeside skriver noget tekst, hvor det efterfølgende bliver vist på en anden side.

Så langt er jeg nået ind til videre ...

<head>
<title>Untitled Document</title>
</head>

HTML-Formular:

<body>
Forum halløj :)
<br />
<br />
<form action="post.php" method="post">
<input name="navn" type="text" />
<br /><br />
<input name="emne" type="text" />
<br /><br />
<input name="besked" type="text" />
<br /><br />
<input type="submit" value="Send"/>
</form>
</body>
</html>

Php-kode (post.php):

<head>
<title>Untitled Document</title>
</head>

<body>
<?php
mysql_connect("localhost", "mit brugernavn", "pw") or die(mysql_error());
mysql_select_db("database") or die(mysql_error()); 

mysql_query("INSERT INTO forum (navn, emne, besked) VALUES ('$navn','$emne','$besked')") OR DIE(mysql_error());
?>
</body>
</html>

Når jeg trykker send, bliver der sendt noget til databasen, men i stedet for det jeg har skrevet i felterne, opretter den 2 felter uden noget indhold overhovedet :S

Hvad gør jeg forkert?

/Mvh. Jesper
Avatar billede nopper Praktikant
08. juli 2008 - 17:15 #1
Input skal være:
Navn<input type="text" name="navn">
Avatar billede punqtured Nybegynder
08. juli 2008 - 17:25 #2
Jeps - du mangler name-parameteren i dine input-fields.

Derudover vil du - på post.php være bedre tjent med at bruge $_POST - det gør det nemlig mere tydeligt, hvorfra data kommer.

Så hvis dit input-felt i forum-siden ser således ud:
<input type='text' name='navn'>
så kan du med fordel bruge følgende på post.php:
mysql_query("insert into forum(navn,emne,besked) values ('$_POST['navn']', .... osv.

Du bør i øvrigt også være opmærksom på såkaldt SQL-injection, for hvordan mon din query kommer til at se ud, hvis $navn (eller $_POST['navn']) indeholder et ' tegn?

Der er en række forskellige måder at sikre sig mod den slags, og jeg kan anbefale dig at læse lidt om det på http://www.securiteam.com/securityreviews/5DP0N1P76E.html hvor de giver en rigtig god og grundig forklaring af problemstillingen og dernæst på http://roshanbh.com.np/2007/12/sql-injection-attack-examples-and-preventions-in-php.html for et par eksempler på, hvad man kan gøre for at forhindre uautoriseret adgang til databasen.
Avatar billede thewebmaker Nybegynder
08. juli 2008 - 17:43 #3
Super!
Tak for hjælpen både nopper og punqtured!

Jeg roder videre med mit koderi :b
Avatar billede thewebmaker Nybegynder
08. juli 2008 - 17:57 #4
Hmm ..
Forstår dog ikke helt hvad i mener med jeg  mangler name-parametrene?

Såvidt jeg kan se er name="" da med i alle min input-fields?
Avatar billede thewebmaker Nybegynder
08. juli 2008 - 21:28 #5
Men har tænkt på om man kan lave en if, der siger at hvis den finder æ,ø eller å skriver den det automatisk om det &aelig; osv.

Kan det lade sig gøre?
Avatar billede thewebmaker Nybegynder
08. juli 2008 - 21:28 #6
lol, forkert topic xD
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



IT-JOB

Cognizant Technology Solutions Denmark ApS

Sr. Test Analyst

SporingsGruppen ApS

Backend-udvikler

Cognizant Technology Solutions Denmark ApS

Data Architect