Avatar billede killogs Nybegynder
26. maj 2005 - 15:10 Der er 9 kommentarer

nogen der hjælpe mig med at få min php-form til at virke

jeg er ved at lave en eksamens opgave og kan ikke få det til at virke. jeg er ved at lave en side hvor man kan tilmelde sig en klub ved at udfylde en formular. i formularen har jeg prøvet at få javascript til at validere det samt at få php til at dobbelt tjekke det. vil  nogen se på hvorfår det ikke virker, jeg er har siddet med det længe nu og kan ikke længere tænke klart.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>kongeklubben</title>
<link rel="stylesheet" type="text/css" href="kongestyle.css"/>


<script type="text/javascript">
  function valider() {
    if ( document.forms['form22'].fornavn.value.length < 2 ) {
      alert("Du glemte fornavnet");
      document.forms['form22'].fornavn.focus();
      return false;
    }
   
    if (document.forms['form22'].adresse.value.length < 8) {
      alert("Indtastet dato for kort");
      document.forms['form22'].adresse.focus();
      return false;
    }
       
    w1 = document.forms["form22"].adresse.value;
    wdd = parseInt(w1.substring(0,2), 10);
    wmm = parseInt(w1.substring(2,4), 10);
    wyy = w1.substring(4,8) - 0;

</script>
   
<script language="JavaScript1.2">

var resultat

function valideremail(){
var str=document.forms['form22'].email.value;
var filter=/^.+@.+\..{2,3}$/

if (filter.test(str))
    resultat=true
else {
    alert("Angiv en gyldig e-mail-adresse.")
    resultat=false
}
return (resultat)
}
</script>


</head>

<body class="sw">

<h1><?php echo $title ?></h1>
<form method="post" action="test.php" id="form22" onsubmit="return valider();">
<?php

if isset($_POST['Navn']) {
    $navn = $_POST['navn'];
    $adresse = $_POST['adresse'];
    $by = $_POST[ 'by'];
    $postnr = $_POST['postnummer'];
    $email = $_POST['email'];
   
    // Checker om emailadressen stadig er gyldig:
    if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email) {
        echo "E-mail-adresse er ikke gyldig!";
    } else {
        // Skriver dataene til en database (F.eks.)
        $sql = "insert into tabel values ('$navn', '$adresse', '$postnr', '$email')";
    }
}

?>


  <table width="610" height="112">
  <tr>
  <td width="668" height="26">Velkommen til konge klubben</td>
 
  </tr>
 
  <tr>
  <td height="77">tilmeld dig burger kings kongeklub og få fordele såsom rabatter, nyhedsbreve og lign.</td>
 
  </tr>
  </table>
 
  <table>
 
<tr>
  <td>Navn:</td>
  <td><input type="text" name="navn" maxlength="45" size="45" /></td>
</tr>
<tr>
  <td>Adresse:</td> 
  <td><input type="text" name="adresse" maxlength="45" size="45" /></td>
</tr>
<tr>
  <td>By:</td> 
  <td><input type="text" name="by" maxlength="45" size="45" /></td>
</tr>
<tr>
  <td>Postnummer:</td> 
  <td><input type="text" name="postnummer" maxlength="4" size="4" /></td>
</tr>
<tr>
  <td>Email-adresse:</td>
  <td><input type="text" name="email" maxlength="45" size="45" /></td>
</tr>
<tr>
  <td></td>
  <td><input type="Submit" name="submitknap" value="Send" /></td>
</tr>
</table>
</form>

<script type="text/javascript">
  lukogsluk();
</script>
</body>
</html>
Avatar billede necro655 Nybegynder
26. maj 2005 - 15:14 #1
hvor får du fejl ?
Avatar billede shb Nybegynder
26. maj 2005 - 15:17 #2
dno, men det er en god ide at udelukke tegn så som ' og ", da de kan gøre din side vuln. mod sql-injection. så byt dette ud
    $navn = $_POST['navn'];
    $adresse = $_POST['adresse'];
    $by = $_POST[ 'by'];
    $postnr = $_POST['postnummer'];
    $email = $_POST['email'];


med dette

    $navn = str_replace("'", "",    $_POST['navn']);
    $adresse = str_replace("'", "", $_POST['adresse']);
    $by = str_replace("'", "",      $_POST[ 'by']);
    $postnr = str_replace("'", "",  $_POST['postnummer']);
    $email = str_replace("'", "",  $_POST['email']);

    $navn = str_replace('"', '',    $_POST['navn']);
    $adresse = str_replace('"', '', $_POST['adresse']);
    $by = str_replace('"', '',      $_POST[ 'by']);
    $postnr = str_replace'"', '',  $_POST['postnummer']);
    $email = str_replace('"', '',  $_POST['email']);
Avatar billede necro655 Nybegynder
26. maj 2005 - 15:17 #3
$sql = "insert into tabel values ('$navn', '$adresse', '$postnr', '$email')";


jeg tror det hedder noget mere sådan

  $sql = "insert into tabel (navn,adresse,postnr,email) values ('$navn', '$adresse', '$postnr', '$email')";

men er dog ikke sikker..du bruge garanteret mysql..og den kender jeg ikke
Avatar billede shb Nybegynder
26. maj 2005 - 15:20 #4
tjek http://www.securiteam.com/securityreviews/5DP0N1P76E.html hvis du ikke helt forstår hvad det går ud på.
du bør også erstatte < med et eller andet, stedet hvor brugerens input skrives direkte til sitet (sikring mod xss/cross site scripting (hvor brugeren indsætter html-tags på din side)).
Avatar billede hmortensen Nybegynder
26. maj 2005 - 15:21 #5
Den sql streng bliver slet ikke eksekveret. Mangler mysql_query()
Avatar billede necro655 Nybegynder
26. maj 2005 - 15:22 #6
har du kun vist nogen af din kode ???

Hvor er din forbindelse til database ???

jeg kan kun se din sql statment $sql = bla bla bl

men hvor er dit connection object ?
Avatar billede shb Nybegynder
26. maj 2005 - 15:24 #7
negro har ret. dog skal du undlade at skrive ' uden om dine variabler:
$sql = "insert into tabel (navn,adresse,postnr,email) values ('$navn', '$adresse', '$postnr', '$email')";
->
$sql = "insert into tabel (navn,adresse,postnr,email) values ('"'.$navn.'"', '"'.$adresse.'"', '"'.$postnr.'"', '"'.$email.'"')";

der skal self. noget der kendetegner at det er en string, og defor alle de latterlige '"'.variabel.'"' som bliver smidt ind som "string"
Avatar billede shb Nybegynder
26. maj 2005 - 15:25 #8
sorry fux, vent. mig der vrøvler. glem sidste indlæg. DOH!, du starter jo med "
Avatar billede killogs Nybegynder
26. maj 2005 - 16:06 #9
til necro. jeg har vist hele min kode. men har endnu ikke fået lavet min forbindelse til  en database
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