Avatar billede t_bg Nybegynder
09. juni 2005 - 10:16 Der er 15 kommentarer og
1 løsning

INSERT INTO virker ikke

Hej allesammen

Hvis der er nogen der kan fortælle mig hvorfor denne kode ikke sætter noget som helst ind i db, vil jeg være så glad.

Tanja

Kode:
$query = "INSERT INTO mail (mail_adr) VALUES(".$_REQUEST['mail'].")" or die(mysql_error());
mysql_query($query);
Avatar billede teh1337 Nybegynder
09. juni 2005 - 10:56 #1
$query = "INSERT INTO mail (mail_adr) VALUES('".$_REQUEST['mail']."')" or die(mysql_error());
mysql_query($query);
Avatar billede teh1337 Nybegynder
09. juni 2005 - 11:15 #2
men skriver en bruger en "mail"-adresse i adressebaren med ' eller " i, vil de kunne exploite dit site vha. sql-injection :) http://www.securiteam.com/securityreviews/5DP0N1P76E.html
Avatar billede t_bg Nybegynder
09. juni 2005 - 11:29 #3
hej jeg har lige prøvet dit forslag, det virker desværre ikke. Jeg ved den kommer ned til queryen, for den kan sagtens skrive den ud med den rigtige værdi. Men den vil ikke sætte noget ind i db
Avatar billede t_bg Nybegynder
09. juni 2005 - 11:30 #4
hmm hvordan undgår man det der sql-injection? jeg er relativt ny til mysql
Avatar billede erikjacobsen Ekspert
09. juni 2005 - 11:35 #5
$query = "INSERT INTO mail (mail_adr) VALUES('".$_REQUEST['mail']."')";
mysql_query($query)  or die(mysql_error());

Bør virke..
Avatar billede t_bg Nybegynder
09. juni 2005 - 11:35 #6
jeg har lige fået at vide at errorloggen siger det her : INSERT INTO mail (mail_adr) VALUES('') burde der ikke stå noget i values?
Avatar billede erikjacobsen Ekspert
09. juni 2005 - 11:37 #7
Og har din server sat "magicquotes" til, skal du ikke bekymre dig om sql-injection. Har den ikke skal du

$query = "INSERT INTO mail (mail_adr) VALUES('".addslashes($_REQUEST['mail'])."')";
mysql_query($query)  or die(mysql_error());

Du tester det simpelthen ved at skrive en enkelt: '  i dit indtastningsfelt og ser om det giver fejl eller det virker. Hvis det virker skal du ikke gøre yderligere, hvis ikke, skal du bruge addslashes.
Avatar billede erikjacobsen Ekspert
09. juni 2005 - 11:38 #8
Jo, der skal stå noget i feltet. Men så står der ikke noget i $_REQUEST['mail'] - hvordan ser din <form...> ud?
Avatar billede t_bg Nybegynder
09. juni 2005 - 11:38 #9
erikjacobsen--> det virker desværre heller ikke. Den sætter intet ind i db:(
Avatar billede erikjacobsen Ekspert
09. juni 2005 - 11:40 #10
"Intet" i betydningen et tom felt, eller ingen rækker. Hvis det ikke står noget i
$_REQUEST['mail'] så kommer der heller intet ind.
Avatar billede t_bg Nybegynder
09. juni 2005 - 11:41 #11
her er min form: <form name=\"form1\" method=\"post\" action=\"index.php?id=mail2\">
      <p>Mail:
          <input name=\"mail\" type=\"text\" id=\"mail\">
</p>
      <p>
        <input type=\"submit\" name=\"Submit\" value=\"Send\">
</p>
    </form> 

Længere oppe bruger jeg også $_REQUEST['mail'] og der tager den det med.
Avatar billede t_bg Nybegynder
09. juni 2005 - 11:42 #12
og den siger fejl ved ' i feltet:) tak for tippet:)
Avatar billede erikjacobsen Ekspert
09. juni 2005 - 11:42 #13
Hvis  $_REQUEST['mail']  har en værdi eet sted i dit script, så har den det selvfølgelig også andre steder. Hvad der er galt kan vi ikke sige uden at se mere kode.
Avatar billede t_bg Nybegynder
09. juni 2005 - 11:46 #14
det er her den skal sætte den ind i db :
<?
if (!empty($_REQUEST['mail'])) {
$to='tanja@webt.dk';
$message = 'TEST';
$from = 'Mail: '.$_REQUEST['mail'];
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: TEST <'.$to.'>' . "\r\n";
$headers .= 'From: TEST <tanja@webt.dk>' . "\r\n";                       
$headers .= 'X-Mailer: PHP/'.phpversion();
mail($to, $message, $from, $headers);                                                                           
echo "<h3>Mailen er afsendt.</h3><p>Dette er en test...</p>";
}
$query = "INSERT INTO mail (mail_adr) VALUES('".$_REQUEST['mail']."')";
mysql_query($query) or die(mysql_error());
?>

Er det hvad i skal bruge?
Avatar billede erikjacobsen Ekspert
09. juni 2005 - 12:41 #15
Det ser godt nok ud. Hvordan ved du er står det rigtige i $_REQUEST['mail'] ?
Det er vel problemet lige nu, at den tilsyneladende er tom. Jeg kan ikke af den kode
du viser, se hvor tingene kommer og går.
Avatar billede t_bg Nybegynder
09. juni 2005 - 13:00 #16
det er kommet til at virke...os der lavede det var gået forbi hinanden så jeg tjekkede den forkerte database...der er 2 med det samme navn.Kun en lille smule pinligt:$  Men tak for jeres forslag:)
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
Computerworld tilbyder specialiserede kurser i database-management

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