Avatar billede dagny Nybegynder
21. maj 2006 - 22:30 Der er 7 kommentarer og
1 løsning

lidt hjælp med php, nemt

hejsa i kære eksperter
Er der nogen der kan fortælle mig hvordan nedenstående kode, skal skrives for at det fungerer.

det er et spørgeskema, og hvis det skulle være rigtigt så sku brugeren føres videre til spørgmål nr 2, og huskes ved hjælp af en session, men det kan jeg da vist overhovedet ikke finde ud af.

Så lige nu vil jeg bare gerne smide svaret på spørgsmålet, om man er mand eller kvinde, i databasen.

men øhh det her er vist helt galt.


<?php

$dbcnx = @mysqli_connect("localhost","root","","testi");
if (!$dbcnx) {
  echo( "<p>Unable to connect to the database server at this time</p>");
  exit();
}
$svar = array("mand", "kvinde" );
if($_POST["q"]){
 
 

mysqli_query("INSERT INTO mk(sp,svar) VALUES('$1','$svar')");
}?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

<html>
<head>



</head>

<body>
<form name="koen" method="post" action="ek4.php" >
  <p> Spørgsmål 1: </p>
<p> Angiv dit køn </p>
<input type="hidden" name="q" value="1">
<input type="radio" name="radioset"value="mand"/>Mand
<input type="radio" name="radioset"value="kvinde"/>Kvinde
<br> <br>
<input type="submit" name"Vaelgsvar" Value="Vælg"/>

</body>
</html>
Avatar billede webudvikleren Nybegynder
21. maj 2006 - 22:56 #1
mysqli_query("INSERT INTO mk(sp,svar) VALUES('$1','$svar')");

Skal det ikke være
mysql_query("INSERT INTO mk(sp,svar) VALUES($1,$svar)");
Avatar billede webudvikleren Nybegynder
21. maj 2006 - 22:58 #2
Nå, jeg er galdt på den.
Der findes sørme noget der hedder mysqli :)

Beklager
Avatar billede nielle Nybegynder
21. maj 2006 - 23:02 #3
Hvad er $1? Mon det ikke skal være:

mysqli_query("INSERT INTO mk (sp, svar) VALUES('" . $_POST["q"] . "', '" . $_POST["radioset"] . "')");
Avatar billede dagny Nybegynder
21. maj 2006 - 23:11 #4
Nu har jeg fået kontakt til databasen, havde bare glemt at skrive dbcnx ved mysqli_query.

Men den smider kun id og at det er spørgsmål nr 1 i databasen, jeg får ikke nohget ved svar.

hvordan får jeg svaret på spørgsmålet lagt i
Avatar billede tdafoobar Nybegynder
22. maj 2006 - 06:25 #5
nielle det kan på ingen måde anbefales at bruge $_POST direkte i SQL quries medmindre du føler for at blive defacet godt og grundigt.  Det er ikke tilfældet her, men for god ordens skyld, gør det ikke igen.

dagny din fejl ligger i du stoler på register globals som er forældet og en sikkerhedsrisiko af format. Og at $1 ikke er en legal variabel, en variabel skal altid starte med et bogstav.

Derudover bør du bruge isset() ;)

if(isset($_POST['q']))
{
  // svaret
  $svar = $_POST['radioset'];
  // typecaster til integer for sikkerheds skyld, da vi ved det er et tal
  $sp = (int)$_POST['q'];
  // en variabel gør alting nemmere
  $sql  = "INSERT INTO mk(sp,svar) VALUES ('".$sp."','".$svar."')";
  mysqli_query($sql);
}

// mvh.
Avatar billede tdafoobar Nybegynder
22. maj 2006 - 06:30 #6
Kommentar til din HTML.

> Du bør have en DTD url med, ellers får du problemer med CSS i fremtiden, en fuld DTD bør se sådan her ud:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

> Du mangler charset valg (og <title>) , charset valg vil typisk være dette:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

> Du skal have alle elementer i mindst 1 blockelement mere mellem <form> of elementet
altså <form><div> .. elementer ..</div></form>

> Du har ikke afsluttet din <form> med </form>, gør det !
Avatar billede dagny Nybegynder
22. maj 2006 - 10:19 #7
ok tak det hjalp, hvordan giver jeg dig dine point nu
Avatar billede tdafoobar Nybegynder
22. maj 2006 - 21:52 #8
Hvis du mente mig, så skal jeg ligge lægge et "svar", hvilket jeg gør her :-)

Happy coding.
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