Avatar billede beaviz_ Nybegynder
03. marts 2004 - 13:12 Der er 8 kommentarer og
1 løsning

Variabler og html-form

Jeg er ved at lave en side, hvor brugere skal kunne oprette et login. Men problemet ligger i, at php-variablerne ikke bliver sat til noget, så når jeg i funktionen opret_bruger skal indsætte i databasen, så bliver der bare indsat tomme felter. Koden til siden ser således ud:
-------------------------------
  <html>
  <head>
  <title>Titel</title>
  </head>
  <body>
  <?php
  include "./common_db.inc";
      function register_form(){
      global $navn, $adr, $by, $email, $kode1, $kode2, $postnr, $tlfnr;
      global $PHP_SELF;
  ?>

  <FORM METHOD="POST" ACTION="<?php echo $PHP_SELF ?>">
  <INPUT TYPE="HIDDEN" NAME="action" VALUE="registrer">
  <table width = "200">
  <TR>
  <TD width="40%">
  <b>Navn:</b>
  </TD>
  <TD width="60%" align=center>
  <input type="text" name="navn" value="<?php echo $navn ?>">
  </TD>
  </TR>
  <TR>
  <TD width="40%">
  <b>Adresse:</b>
  </TD>
  <TD width="60%" align=center>
  <input type="text" name="adr" value="<?php echo $adr ?>">
  </TD>
  </TR>
  <TR>
  <TD width="40%">
  <b>Postnummer:</b>
  </TD>
  <TD width="60%" align=center>
  <input type="text" name="postnr" value="<?php echo $postnr ?>">
  </TD>
  </TR>
  <TR>
  <TD width="40%">
  <b>By:</b>
  </TD>
  <TD width="60%" align=center>
  <input type="text" name="by" value="<?php echo $by ?>">
  </TD>
  </TR>
  <TR>
  <TD width="40%">
  <b>E-mail:</b>
  </TD>
  <TD width="60%" align=center>
  <input type="text" name="email" value="<?php echo $email ?>">
  </TD>
  </TR>
  <TR>
  <TD width="40%">
  <b>Telefonnummer:</b>
  </TD>
  <TD width="60%" align=center>
  <input type="text" name="tlfnr" value="<?php echo $tlfnr ?>">
  </TD>
  </TR>
  <TR>
  <TD width="40%">
  <b>Kodeord:</b>
  </TD>
  <TD width="60%" align=center>
  <input type="password" name="kode1" value="<?php echo $kode1 ?>">
  </TD>
  </TR>
  <TR>
  <TD width="40%">
  <b>Gentag kodeord:</b>
  </TD>
  <TD width="60%" align=center>
  <input type="password" name="kode2" value="<?php echo $kode2 ?>">
  </TD>
  </TR>
  </table>
  <BR>
  <INPUT TYPE="SUBMIT" VALUE="Registrerr" NAME="send">
  </FORM>
  <BR>


  <?php
  }
        function fejl_besked($besked){
              echo "<SCRIPT>alert(\"Fejl: $besked\");history.go(-1)</SCRIPT>";
              exit;
        }

        function opret_bruger(){
      // global $navn, $adr, $by, $email, $kode1, $kode2, $postnr, $tlfnr;
        //global $dbnavn, $tabelnavn;
      echo "Navn: ".$navn."";

      // if(empty($navn)) fejl_besked("Indtast venligst dit navn!");
        //if(empty($adr)) fejl_besked("Indtast venligst din adresse!");
        //if(empty($by)) fejl_besked("Indtast venligst din by!");
        //if(empty($email)) fejl_besked("Indtast venligst din e-mail!");
        //if(empty($kode1)) fejl_besked("Indtast venligst kodeord!");
        //if(empty($kode2)) fejl_besked("Indtast venligst det gentagne kodeord!");
        //if(empty($postnr)) fejl_besked("Indtast venligst dit postnummer!");
        //if(empty($tlfnr)) fejl_besked("Indtast venligst dit telefonnummer!");

        //if($kode1 != $kode2) fejl_besked("Det valgte kodeord og det genindtastede stemmer ikke overens!");

        $link_id = db_connect();
        mysql_select_db("bogdvd");

        $query = "insert into kunder values ('$email', '$navn', '$tlfnr', '$adresse', '$postnr', '$by', '$kode1')";

        $result = mysql_query($query);
        if(!$result) fejl_besked(sql_error());
        }

        switch($_POST['action']){
        case "registrer":
        opret_bruger();
        break;
        default:
        register_form();
        break;
        }
  ?>
    </body>
    </html>
------------------------------
Hvordan får jeg værdien af variablerne, så de kan indsættes i databasen?
Avatar billede 3xm Nybegynder
03. marts 2004 - 13:18 #1
æhh... du har udkommenteret dine global-linier?
Avatar billede beaviz_ Nybegynder
03. marts 2004 - 13:20 #2
Jeg forsøgte mig med lidt af hvert, for at se om det kunne være det, men det er ikke pga. at de er udkommenteret.
Avatar billede 3xm Nybegynder
03. marts 2004 - 13:23 #3
det er i hvert fald også derfor. de variabler eksisterer ikke indefor funktionen medmindre du gør dem global.

er register_globals slået til eller fra på serveren?
Avatar billede beaviz_ Nybegynder
03. marts 2004 - 13:26 #4
register_globals er sat til off.
Avatar billede 3xm Nybegynder
03. marts 2004 - 13:30 #5
så kan du ikke tilgå variablerne blot ved at skrive $navn. så skal du have fat i $_POST["navn"] osv.

=)
Avatar billede beaviz_ Nybegynder
03. marts 2004 - 13:40 #6
Sådan her eller hvad?: $query = "insert into kunder values ('$_POST["email"]', '$_POST["navn"]', $_POST["tlfnr"], '$_POST["$adresse"]', $_POST["postnr"], '$_POST["by"]', '$_POST["kode1"]')";
Avatar billede 3xm Nybegynder
03. marts 2004 - 13:46 #7
næsten... da variablerne indeholder tegnet " (gåseøjne) vil din querystring fucke hvis ikke du bruger lidt concatenation...

values ('".$_POST["email"]."', '".$_POST["navn"]."',

(osv.)


=)
Avatar billede beaviz_ Nybegynder
03. marts 2004 - 13:51 #8
JAAAAAAAA!!! Tusind tak for hjælpen! Du smider bare et svar, hvis det er...
Avatar billede 3xm Nybegynder
03. marts 2004 - 14:02 #9
=)
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