Avatar billede larsaasted Nybegynder
09. januar 2002 - 11:35 Der er 29 kommentarer og
2 løsninger

Værdier i HTML form bliver ikke overført til mit php script??

Jeg har en HTML form som submitter videre til en PHP fil. denne PHP fil uploader data til en MySQL database.

Problemet er at værdierne i formen bliver ikke sent videre til PHP filen. Variablerne i PHP filen er tomme. HVORFOR???
Avatar billede whatever Nybegynder
09. januar 2002 - 11:40 #1
Prøv at vise os koden....??

Hvordan er PHP sat op? Er register_globals slået fra?
Avatar billede snigermunken Nybegynder
09. januar 2002 - 11:40 #2
må vi se koden?
Avatar billede gnyff Nybegynder
09. januar 2002 - 11:40 #3
Din method=post eller method=get? Ellers sender den ikke nogen oplysninger
Avatar billede larsaasted Nybegynder
09. januar 2002 - 11:45 #4
kode fra HTML fil:

<FORM method=\"POST\" action=\"klibrary_form.php\">           
        <table cellspacing=\"2\" cellpadding=\"2\" border=\"0\">
            <tr>
                <td>Firstname</td>
                <td><INPUT type=\"text\" name=\"firstname\" size=\"50\" maxlength=\"50\"></td>
            </tr>
            <tr>
                <td>Middlename</td>
                <td><INPUT type=\"text\" name=\"middlename\" size=\"50\" maxlength=\"50\"></td>
            </tr>
            <tr>
                <td>Surname</td>
                <td><INPUT type=\"text\" name=\"surname\" size=\"50\" maxlength=\"50\"></td>
            </tr>
            <tr>
                <td>E-mail</td>
                <td><INPUT type=\"text\" name=\"email\" size=\"50\" maxlength=\"50\"></td>
            </tr>
            <tr>
                <td>Company</td>
                <td><INPUT type=\"text\" name=\"company\" size=\"50\" maxlength=\"50\"></td>
            </tr>
            <tr>
                <td><INPUT type=\"submit\" name=\"Submit\" value=\"Next\"></td>
                <td></td>
            </tr>
            </table>
            </form>       


kode fra PHP fil:

<?php

$connection = mysql_connect(\"mysql.consensusonline.net\", \"consensusonlinet\", \"caa57ahn\") or die(\"Couldn\'t connect to server.\");

  // Skaber forbindelse til SQL serveren.

  $db = mysql_select_db(\"consensusonlinet\", $connection) or die(\"Couldn\'t select database.\");

  // Vælger database.

//$sql =  \"UPDATE klibrary SET firstname = \'$firstname\', middlename = \'$middlename\', surname = \'$surname\', company = \'$company\', email = \'$email\' WHERE email = \'$email\'\";
$sql =  \"INSERT INTO klibrary (firstname, middlename, surname, email, company) VALUES (\'$firstname\', \'$middlename\', \'$surname\', \'$email\', \'$company\')\";
$sql_result = mysql_query($sql, $connection) or die(\"Email already exist!\");

mysql_close($connection);

echo \"<HEAD><meta http-equiv=\\\"Refresh\\\" content=\\\"0;url=klibrary_download.htm\\\"></HEAD>\";

?>


Avatar billede gnyff Nybegynder
09. januar 2002 - 11:48 #5
Prøv at give din form et navn, og sæt så INPUT type=\"submit\" name=\"Submit\" value=\"Next\" OnClick=\"formnavn.submit\">
Avatar billede larsaasted Nybegynder
09. januar 2002 - 11:55 #6
gnyff: det hjalp ikke... stadig tomme variabler i php filen!
Avatar billede gnyff Nybegynder
09. januar 2002 - 12:00 #7
Jeg ved ikke om det hjælper med prøv at ændre din method til get
Avatar billede larsaasted Nybegynder
09. januar 2002 - 12:03 #8
gnyff: Det hjalp heller ikke...
Avatar billede gnyff Nybegynder
09. januar 2002 - 12:07 #9
Når jeg prøver virker det uden fejl, hvis jeg fjerne method :o) Prøv det
Avatar billede cpt.kangaroo Nybegynder
09. januar 2002 - 12:07 #10
Når du nu siger at den ikke overfører variablerne, er det fordi de ikke indsættes i databasen, eller har du prøvet at echo variablerne?

F.eks. echo $sql
Avatar billede larsaasted Nybegynder
09. januar 2002 - 12:10 #11
gnyff: det hjalp heler ikke. Gad vide om det er min SQL server der er noget i vejen med.
Avatar billede larsaasted Nybegynder
09. januar 2002 - 12:11 #12
cpt.kangaroo: Der kommer kun tomme felter i databasen!
Avatar billede whatever Nybegynder
09. januar 2002 - 12:12 #13
Kører du siden lokalt eller på et webhotel?

Prøv at lave en php-fil, i hvilken du kalder funktionen phpinfo(). Så kan du se opsætningen af php. Prøv at kigge efter \"register_globals\".
Avatar billede cpt.kangaroo Nybegynder
09. januar 2002 - 12:14 #14
Prøv at echo $sql, så kan du se om alle variabler er blevet sendt til php filen. Hvis de er det, må der være noget galt i SQL\'en.
Avatar billede gnyff Nybegynder
09. januar 2002 - 12:14 #15
Det er fordi du sætter variabel $sql til INSERT INTO.... og variablen skal være \"INSERT INTO

Prøv at erstatte den med:
$sql_result = mysql_query(\"INSERT INTO klibrary (firstname, middlename, surname, email, company) VALUES (\'$firstname\', \'$middlename\', \'$surname\', \'$email\', \'$company\')\", $connection) or die(\"Email already exist!\");
Avatar billede larsaasted Nybegynder
09. januar 2002 - 12:14 #16
cpt.kangaroo: har lige prøvet echo $sql -> der er tomme variabler!
Avatar billede whatever Nybegynder
09. januar 2002 - 12:18 #17
Så prøv at kalde phpinfo(), og tjek om register_globals er slået fra.
Avatar billede larsaasted Nybegynder
09. januar 2002 - 12:20 #18
gnyff: det blev det kun være af........
Avatar billede gnyff Nybegynder
09. januar 2002 - 12:20 #19
Jeg har lige prøvet med method=\"post\" og der virker variablerne.

Men prøv at ændre $sql = \"insert into..... med $sql = \"\\\"insert into.....
Avatar billede whatever Nybegynder
09. januar 2002 - 12:22 #20
Det kan jo stadig skyldes, at variablerne ikke er globale.
Avatar billede larsaasted Nybegynder
09. januar 2002 - 12:23 #21
whatever: den er slået fra! hvordan slår jeg den til?
Avatar billede whatever Nybegynder
09. januar 2002 - 12:27 #22
Kører du windows eller linux?
Avatar billede larsaasted Nybegynder
09. januar 2002 - 12:31 #23
whatever: det er ikke sikkert jeg kan slå den til, da serveren står hos min udbyder.....
MySQL bliver kørt på en Windows 2000 server
Avatar billede whatever Nybegynder
09. januar 2002 - 12:35 #24
Så kan du ikke slå det til. Har selv haft samme problem hos Azero.

Istedet kan du lave en php-fil som du inkluderer i alle dine php-filer. Denne fil skal indeholde følgende:

<?

if($HTTP_POST_VARS){
  foreach($HTTP_POST_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

if($HTTP_COOKIE_VARS){
  foreach($HTTP_COOKIE_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

if($HTTP_GET_VARS){
  foreach($HTTP_GET_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

if($HTTP_SERVER_VARS){
  foreach($HTTP_SERVER_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

if($HTTP_ENV_VARS){
  foreach($HTTP_ENV_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

?>

Avatar billede cpt.kangaroo Nybegynder
09. januar 2002 - 12:36 #25
Hvis de ikke vil/kan slå det til, kan du hente variablerne sådan:

$HTTP_POST_VARS[\'firstname\']
$HTTP_POST_VARS[\'middlename\']

osv..
Avatar billede larsaasted Nybegynder
09. januar 2002 - 12:42 #26
cpt.kangaroo, whatever: i begge har givet et rigtigt svar!

cpt.kangaroo: send en besked som svar og jeg vil give jer begge point!
Avatar billede cpt.kangaroo Nybegynder
09. januar 2002 - 12:43 #27
whatever> Din var vist smarter :-)
Avatar billede cpt.kangaroo Nybegynder
09. januar 2002 - 12:44 #28
Okie :)
Avatar billede Noone Nybegynder
09. januar 2002 - 12:58 #29
$connection = mysql_connect(\"mysql.consensusonline.net\", \"consensusonlinet\", \"caa57ahn\") or die(\"Couldn\'t connect to server.\");


Jeg håber at caa57ahn IKKE er dit password, eller at du har skiftet det... Det er nemlig MEGET DUMT at poste brugernavn og password et sted som her på eksperten!!
Avatar billede larsaasted Nybegynder
09. januar 2002 - 13:05 #30
chanoa: Jeg ved det, det var en fejl. Er ved at løse problemmet.....Jeg var lidt for hurtig med at ligge koden ud på nettet!
Avatar billede Noone Nybegynder
09. januar 2002 - 13:23 #31
Hehe...Det sker...
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