07. august 2003 - 22:45
Der er
36 kommentarer og 2 løsninger
der kommer ikke noget data til mysql database
hvorfor sender det her script ikke noget data til min database. den skriver det bare oppe i adresselinien.
www.pc-dk.dk/test2/adresse.php og jeg får ingen fejl efter tryk på min submit button
scriptet er her:
-----------------------------------------------
<?php
if ( isset( $navn ) && isset( $adresse ) && isset( $gade ) && isset( $Nr ) && isset( $Email ) && isset( $tlf))
{
///chech user input here
$dberror = "";
$ret = add_to_database( $navn, $adresse, $gade, $nr, $email, $tlf );
if ( ! $ret )
print "error: $dberror<BR>";
else
print "tak for det, dit cv er nu registreret i databasen";
}
else {
write_form();
}
function add_to_database( $navn, $adresse, $gade, $nr, $email, $tlf )
{
$user = "root";
$pass = "";
$db = "adresse";
$link = mysql_connect( "localhost", $user, $pass );
if ( ! $link )
{
$dberror = "couldn´t connect to database";
return false;
}
if ( ! mysql_select_db( $db, $link ))
{
$dberror = mysql_error();
return false;
}
$query = "INSERT INTO adresse ( navn, adresse, gade, nr, email, tlf )
values( '$navn', '$adresse', '$gade', '$nr', '$email', 'tlf' )";
if ( ! mysql_query( $query, $link ))
{
$dberror = mysql_error();
return false;
}
return true;
}
function write_form()
{
global $php_self;
print "<form action=\"$php_self\"method?\"post\">\n";
print "<input type=\"text\"name=\"navn\">";
print "Dit Navn<p>\n";
print "<input type=\"text\" name=\"adresse\">";
print "Din adresse<p>\n";
print "<input type=\"text\" name=\"nr\">";
print "Dit gade nr<p>\n";
print "<input type=\"text\" name=\"E-mail\">";
print "Din E-Mail<p>\n";
print "<input type=\"text\" name=\"Tlf\">";
print "Dit tlf. nr<p>\n";
#print "<select name=\"sex\">\n";
#print "\t<option value=\"F\"> Female\n";
#print "\t<optiom value=\"M\"> Male\n";
print "</select>\n";
print "<input type=\"submit\" value=\"subnit!\">\n</form>\n";
}
?>
Annonceindlæg fra Cognizant
AI er ikke problemet. Eksekvering er.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
07. august 2003 - 22:49
#1
$query = "INSERT INTO adresse VALUES ( navn, adresse, gade, nr, email, tlf ) values( '$navn', '$adresse', '$gade', '$nr', '$email', 'tlf' )";
07. august 2003 - 22:50
#2
Og så er det vist nogen, der har overtalt dig til at gøre noget sjovt med $dberror variablen. Kan du ikke så nu bare erstatte linien $dberror = mysql_error(); med die(mysql_error());
07. august 2003 - 22:53
#3
nej der kommer stadig ikke noget i databasen :-(
07. august 2003 - 22:55
#4
Hvad sker der ellers? Har du gjort begge dele? Du må være lidt mere meddelsom
07. august 2003 - 23:01
#5
jamen der sker ingenting andet end altsammen står oppe i adresse linien. i stedet for at ryge i databasen mín db structure er flg. id datatype "int" navn datatype "varchar" adresse datatype "varchar" sex datatype "char" nr datatype "int" email datatype "varchar" tlf datatype "varchar" hvis der er mere du vil vide må du skrive igen :-)
07. august 2003 - 23:03
#6
Ok, så er det nok dine variabler der ikke kommer med over. Du skal nu også rette print "<form action=\"$php_self\"method?\"post\">\n"; til print "<form action=\"$PHP_SELF\" method=\"post\">\n"; og så for alle dine variabler $name = $_POST['name']; allerøverst
07. august 2003 - 23:09
#7
så de ser sådan her ud $ret = add_to_database( $_POST[navn], $_[adresse], $_post[gade], $_POST[nr], $_post[email], $_[tlf] );
07. august 2003 - 23:19
#8
Nu er der vist ingen der har bedt dig om at skrive $_post, kun $_POST. Og det er ikke det eneste sted du bytter om på store og små bogstaver. Det kan man ikke i PHP. Hvorfor gjorde du så heller ikke som jeg sagde: skrev det med $_POST øverst?
08. august 2003 - 12:52
#9
jeg forstår ikke hvor jeg skal bruge $_POST så. du må uddybe det lidt :-)
08. august 2003 - 22:18
#10
og så for alle dine variabler $name = $_POST['name']; allerøverst. Men er det ikke en lidt stor mundfuld at gå i gang med hvis du ikke helt forstår hvad der foregår? Er det et script du har fundet på nettet, så er det for gammelt, eller fejlbehæftet, eller sådan noget. Du er nok bedre tjent med at finde et nyt.
08. august 2003 - 22:57
#11
det er mit eget script. finder ikke noget på nettet som jeg bare sidder og kigger i og laver om i. jeg har siddet og brugt mange timer på at læse php in 24 hours. og er nu selv begyndt at lave et script. MEN der har ikke været nævnt noget om $name = $_POST['name'] i den bog. Så hjælp mig videre eller lad vær'. og lad vær med at snakke om for stor mundfuld, jeg skal nok stoppe hvis jeg mener jeg ikke kan synke den!!!!
09. august 2003 - 01:15
#12
Gamle versioner af PHP giver $name. Nye version kun $_POST['name']. Det er sådan set bare det. Bogen er nok forældet, hvis du vil følge eksemplerne til punkt og prikke.
09. august 2003 - 08:39
#13
det er php 4 in 24 hour, jeg ved ikke helt hvadphp vers. jeg kører med.
09. august 2003 - 09:20
#14
lad os lave et eksperiment, så du kan se forskellen - hvis der er en. Lav dette script, tast noget ind i feltet, tryk på knappen, og se hvad den skriver til dig: <? if (isset($_POST['sendt'])) { print "\$navn giver ".$navn."<br>"; print "\$_POST['navn'] giver ".$_POST['navn']."<br>"; } ?> <form method="post"> <input type="text" name="navn"> <input type="hidden" name="sendt" value="joda"> <input type="submit"> </form>
09. august 2003 - 09:52
#15
Den skriver dette her tilbage. $navn giver Thomas $_POST['navn'] giver Thomas men når jeg bruger $_POST er det så fordi den variabel skal POSTE noget et sted. og så kunne man også bruge $_GET til at hente noget. er det helt forkert?? Og hvor ser man php vers. der er en kode til det men kan ikke lige huske den nu :-O
09. august 2003 - 10:02
#16
nu ser det sådan her ud
<?php
if ( isset( $_POST['navn'] ) && isset( $_post['adresse'] ) && isset( $_POST['gade'] ) && isset( $_POST['Nr'] ) && isset( $_POST['Email'] ) && isset( $_POST['tlf'] ))
{
///chech user input here
$dberror = "";
$ret = add_to_database( $navn, $adresse, $gade, $nr, $email, $tlf );
if ( ! $ret )
print "error: $dberror<BR>";
else
print "tak for det, dit cv er nu registreret i databasen";
}
else {
write_form();
}
function add_to_database( $navn, $adresse, $gade, $nr, $email, $tlf )
{
$user = "root";
$pass = "";
$db = "adresse";
$link = mysql_connect( "localhost", $user, $pass );
if ( ! $link )
{
$dberror = "couldn´t connect to database";
return false;
}
if ( ! mysql_select_db( $db, $link ))
{
die(mysql_error());
return false;
}
$query = "INSERT INTO adresse VALUES ( navn, adresse, gade, nr, email, tlf )
values( '$navn', '$adresse', '$gade', '$nr', '$email', 'tlf' )";
if ( ! mysql_query( $query, $link ))
{
$dberror = mysql_error();
return false;
}
return true;
}
function write_form()
{
global $php_self;
print "<form action=\"$PHP_SELF\"method?\"post\">\n";
print "<input type=\"text\"name=\"navn\">";
print "Dit Navn<p>\n";
print "<input type=\"text\" name=\"adresse\">";
print "Din adresse<p>\n";
print "<input type=\"text\" name=\"nr\">";
print "Dit gade nr<p>\n";
print "<input type=\"text\" name=\"E-mail\">";
print "Din E-Mail<p>\n";
print "<input type=\"text\" name=\"Tlf\">";
print "Dit tlf. nr<p>\n";
#print "<select name=\"sex\">\n";
#print "\t<option value=\"F\"> Female\n";
#print "\t<optiom value=\"M\"> Male\n";
print "</select>\n";
print "<input type=\"submit\" value=\"subnit!\">\n</form>\n";
}
?>
www.pc-dk.dk/test2/index2.php
09. august 2003 - 10:15
#17
Dit eksperiment viser så, at du i den PHP-version du bruger nu, kan bruge både $navn og $_POST['navn']. Til gengæld er der ikke noget der hedder $_post
09. august 2003 - 10:26
#18
den rettede jeg lige efter jeg sendte det her. men det virker stadig ikke, den sender ikke til databasen
09. august 2003 - 10:29
#19
Nu er det altså rimeligt intetsigende bare at sige at det ikke virker. Hvad sker der helt præcist. Kommer der en af de udskrifter der står i scriptet, eller kommer der slet, slet ingenting. Du er nødt til at være præcis, hvis du vil have hjælp.
09. august 2003 - 10:37
#21
hvis dette er hele din sql-struktur, så mangler du et 'gade'-felt, id datatype "int" navn datatype "varchar" adresse datatype "varchar" sex datatype "char" nr datatype "int" email datatype "varchar" tlf datatype "varchar" Du kan bl.a. se din php-version ved at lave en fil med følgende indhold: <?php phpinfo(); ?> kald den hvad du vil, eks. phpinfo.php smæk den op på serveren og gå ind på den ;o)
09. august 2003 - 10:37
#22
Okay, jeg opgiver og hopper ud af spørgsmålet. Du har ikke rettet ting jeg allerede har sagt du skulle rette, og så rækker min tålmodighed ikke længere. Beklager.
09. august 2003 - 10:39
#23
Hvad er det jeg ikke har rettet?? >>>>erik jacobsen
09. august 2003 - 10:40
#24
desuden har du en fejl i denne linje: print "<form action=\"$PHP_SELF\"method?\"post\">\n"; Det er derfor du ser dine ting i adresselinjen, den sender det nemlig som 'GET' og ikke 'POST', ret den til: print "<form action=\"$PHP_SELF\" method=\"post\">\n";
09. august 2003 - 10:48
#25
gade er slettet fra scriptet da det var i den gamle db jeg havde den med. har også rettet den lille fejl du skrev, og det kommer heller ikke i adresse linien mere :-) Men der kommer heller ikke noget til databasen :-(. hvad ppokker er det der er galt.
09. august 2003 - 11:11
#26
Hvis dette er dit script (det du postede d. 09/08-2003 10:02:46) ja så er 'gade' ikke slettet. se følgende linjer: $ret = add_to_database( $navn, $adresse, $gade, $nr, $email, $tlf ); function add_to_database( $navn, $adresse, $gade, $nr, $email, $tlf ) men vigtigst: $query = "INSERT INTO adresse VALUES ( navn, adresse, gade, nr, email, tlf ) values( '$navn', '$adresse', '$gade', '$nr', '$email', 'tlf' )"; <?php if ( isset( $_POST['navn'] ) && isset( $_post['adresse'] ) && isset( $_POST['gade'] ) && isset( $_POST['Nr'] ) && isset( $_POST['Email'] ) && isset( $_POST['tlf'] )) { ///chech user input here $dberror = ""; $ret = add_to_database( $navn, $adresse, $gade, $nr, $email, $tlf ); if ( ! $ret ) print "error: $dberror<BR>"; else print "tak for det, dit cv er nu registreret i databasen"; } else { write_form(); } function add_to_database( $navn, $adresse, $gade, $nr, $email, $tlf ) { $user = "root"; $pass = ""; $db = "adresse"; $link = mysql_connect( "localhost", $user, $pass ); if ( ! $link ) { $dberror = "couldn´t connect to database"; return false; } if ( ! mysql_select_db( $db, $link )) { die(mysql_error()); return false; } $query = "INSERT INTO adresse VALUES ( navn, adresse, gade, nr, email, tlf ) values( '$navn', '$adresse', '$gade', '$nr', '$email', 'tlf' )"; if ( ! mysql_query( $query, $link )) { $dberror = mysql_error(); return false; } return true; } function write_form() { global $php_self; print "<form action=\"$PHP_SELF\"method?\"post\">\n"; print "<input type=\"text\"name=\"navn\">"; print "Dit Navn<p>\n"; print "<input type=\"text\" name=\"adresse\">"; print "Din adresse<p>\n"; print "<input type=\"text\" name=\"nr\">"; print "Dit gade nr<p>\n"; print "<input type=\"text\" name=\"E-mail\">"; print "Din E-Mail<p>\n"; print "<input type=\"text\" name=\"Tlf\">"; print "Dit tlf. nr<p>\n"; #print "<select name=\"sex\">\n"; #print "\t<option value=\"F\"> Female\n"; #print "\t<optiom value=\"M\"> Male\n"; print "</select>\n"; print "<input type=\"submit\" value=\"subnit!\">\n</form>\n"; } ?>
09. august 2003 - 11:13
#27
'gade' er slettet... <?php if ( isset( $_POST['navn'] ) && isset( $_post['adresse'] ) && isset( $_POST['gade'] ) && isset( $_POST['Nr'] ) && isset( $_POST['Email'] ) && isset( $_POST['tlf'] )) { ///chech user input here $dberror = ""; $ret = add_to_database( $navn, $adresse, $nr, $email, $tlf ); if ( ! $ret ) print "error: $dberror<BR>"; else print "tak for det, dit cv er nu registreret i databasen"; } else { write_form(); } function add_to_database( $navn, $adresse, $nr, $email, $tlf ) { $user = "root"; $pass = ""; $db = "adresse"; $link = mysql_connect( "localhost", $user, $pass ); if ( ! $link ) { $dberror = "couldn´t connect to database"; return false; } if ( ! mysql_select_db( $db, $link )) { die(mysql_error()); return false; } $query = "INSERT INTO adresse VALUES ( navn, adresse, nr, email, tlf ) values( '$navn', '$adresse', '$nr', '$email', 'tlf' )"; if ( ! mysql_query( $query, $link )) { $dberror = mysql_error(); return false; } return true; } function write_form() { global $php_self; print "<form action=\"$PHP_SELF\"method?\"post\">\n"; print "<input type=\"text\"name=\"navn\">"; print "Dit Navn<p>\n"; print "<input type=\"text\" name=\"adresse\">"; print "Din adresse<p>\n"; print "<input type=\"text\" name=\"nr\">"; print "Dit gade nr<p>\n"; print "<input type=\"text\" name=\"E-mail\">"; print "Din E-Mail<p>\n"; print "<input type=\"text\" name=\"Tlf\">"; print "Dit tlf. nr<p>\n"; #print "<select name=\"sex\">\n"; #print "\t<option value=\"F\"> Female\n"; #print "\t<optiom value=\"M\"> Male\n"; print "</select>\n"; print "<input type=\"submit\" value=\"subnit!\">\n</form>\n"; } ?>
09. august 2003 - 11:14
#28
prøver igen... <?php if ( isset( $_POST['navn'] ) && isset( $_post['adresse'] ) && isset( $_POST['Nr'] ) && isset( $_POST['Email'] ) && isset( $_POST['tlf'] )) { ///chech user input here $dberror = ""; $ret = add_to_database( $navn, $adresse, $nr, $email, $tlf ); if ( ! $ret ) print "error: $dberror<BR>"; else print "tak for det, dit cv er nu registreret i databasen"; } else { write_form(); } function add_to_database( $navn, $adresse, $nr, $email, $tlf ) { $user = "root"; $pass = ""; $db = "adresse"; $link = mysql_connect( "localhost", $user, $pass ); if ( ! $link ) { $dberror = "couldn´t connect to database"; return false; } if ( ! mysql_select_db( $db, $link )) { die(mysql_error()); return false; } $query = "INSERT INTO adresse VALUES ( navn, adresse, nr, email, tlf ) values( '$navn', '$adresse', '$nr', '$email', 'tlf' )"; if ( ! mysql_query( $query, $link )) { $dberror = mysql_error(); return false; } return true; } function write_form() { global $php_self; print "<form action=\"$PHP_SELF\"method?\"post\">\n"; print "<input type=\"text\"name=\"navn\">"; print "Dit Navn<p>\n"; print "<input type=\"text\" name=\"adresse\">"; print "Din adresse<p>\n"; print "<input type=\"text\" name=\"nr\">"; print "Dit gade nr<p>\n"; print "<input type=\"text\" name=\"E-mail\">"; print "Din E-Mail<p>\n"; print "<input type=\"text\" name=\"Tlf\">"; print "Dit tlf. nr<p>\n"; #print "<select name=\"sex\">\n"; #print "\t<option value=\"F\"> Female\n"; #print "\t<optiom value=\"M\"> Male\n"; print "</select>\n"; print "<input type=\"submit\" value=\"subnit!\">\n</form>\n"; } ?> Derudover har du fejl med nogle små/store bogstaver i selve koden, bl.a. Nr/nr
09. august 2003 - 11:14
#29
hvorfor dender du det tilbage??
09. august 2003 - 11:15
#30
i mit scrpt jeg har her er gade slettet, men ikke det i ser inde på eksperten mit script ser sådan her ud nu ------------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <?php if ( isset( $_POST['navn'] ) && isset( $_POST['adresse'] )&& isset( $_POST['Nr'] ) && isset( $_POST['Email'] ) && isset( $_POST['tlf'] )) { ///chech user input here $dberror = ""; $ret = add_to_database( $navn, $adresse, $nr, $email, $tlf ); if ( ! $ret ) print "error: $dberror<BR>"; else print "tak for det, dit cv er nu registreret i databasen"; } else { write_form(); } function add_to_database( $navn, $adresse, $nr, $email, $tlf ) { $user = "root"; $pass = ""; $db = "adresse"; $link = mysql_connect( "localhost", $user, $pass ); if ( ! $link ) { $dberror = "couldn´t connect to database"; return false; } if ( ! mysql_select_db( $db, $link )) { die(mysql_error()); return false; } $query = "INSERT INTO adresse VALUES ( navn, adresse, nr, email, tlf ) VALUES( '$navn', '$adresse', '$gade', '$email', 'tlf' )"; if ( ! mysql_query( $query, $link )) { $dberror = mysql_error(); return false; } return true; } function write_form() { global $php_self; print "<form action=\"$PHP_SELF\" method=\"post\">\n"; print "<input type=\"text\"name=\"navn\">"; print "Dit Navn<p>\n"; print "<input type=\"text\" name=\"adresse\">"; print "Din adresse<p>\n"; print "<input type=\"text\" name=\"nr\">"; print "Dit gade nr<p>\n"; print "<input type=\"text\" name=\"E-mail\">"; print "Din E-Mail<p>\n"; print "<input type=\"text\" name=\"Tlf\">"; print "Dit tlf. nr<p>\n"; #print "<select name=\"sex\">\n"; #print "\t<option value=\"F\"> Female\n"; #print "\t<optiom value=\"M\"> Male\n"; print "</select>\n"; print "<input type=\"submit\" value=\"subnit!\">\n</form>\n"; } ?> </body> </html>
09. august 2003 - 11:17
#31
kik på denne linje, som antaget havde du ikke slettet 'gade' helt ud af dit script... $query = "INSERT INTO adresse VALUES ( navn, adresse, nr, email, tlf ) VALUES( '$navn', '$adresse', '$gade', '$email', 'tlf' )"; desuden skal du nok lige kikke på 'tlf', den mangler vist et '$'
09. august 2003 - 11:20
#32
ja det er rigtigt. sletter gade og smider $ ind der og prøver igen :-D
09. august 2003 - 11:20
#33
desuden har du mange små fejl i dit script... i linjen: print "<input type=\"text\" name=\"E-mail\">"; skriver du E-mail, men prøver at hive det ud med $_POST['Email'] ) <-- der mangler en '-' (også andre steder du hiver det ud...
09. august 2003 - 11:21
#34
du har endvidere problemer med store/små bogstaver ved nr/Nr og tlf/Tlf husk at php er casesensitive (der er forskel på store/små bogstaver)
09. august 2003 - 11:32
#35
nu skulle store/små fejl være rettet som du skriver. det vil jeg huske fremover, vidste det faktisk ikke. nu er det hele sådan her <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <?php if ( isset( $_POST['navn'] ) && isset( $_POST['adresse'] )&& isset( $_POST['sex'] ) && isset( $_POST['nr'] ) && isset( $_POST['email'] ) && isset( $_POST['$tlf'] )) { ///chech user input here $dberror = ""; $ret = add_to_database( $navn, $adresse, $sex, $nr, $email, $tlf ); if ( ! $ret ) print "error: $dberror<BR>"; else print "tak for det, dit cv er nu registreret i databasen"; } else { write_form(); } function add_to_database( $navn, $adresse, $sex, $nr, $email, $tlf ) { $user = "root"; $pass = ""; $db = "adresse"; $link = mysql_connect( "localhost", $user, $pass ); if ( ! $link ) { $dberror = "couldn´t connect to database"; return false; } if ( ! mysql_select_db( $db, $link )) { die(mysql_error()); return false; } $query = "INSERT INTO adresse VALUES ( navn, adresse, sex, nr, email, tlf ) VALUES( '$navn', '$adresse', '$sex', '$nr', '$email', '$tlf' )"; if ( ! mysql_query( $query, $link )) { $dberror = mysql_error(); return false; } return true; } function write_form() { global $php_self; print "<form action=\"$PHP_SELF\" method=\"post\">\n"; print "<input type=\"text\"name=\"navn\">"; print "Dit Navn<p>\n"; print "<input type=\"text\" name=\"adresse\">"; print "Din adresse<p>\n"; print "<input type=\"text\" name=\"nr\">"; print "Dit gade nr<p>\n"; print "<input type=\"text\" name=\"email\">"; print "Din E-Mail<p>\n"; print "<input type=\"text\" name=\"tlf\">"; print "Dit tlf. nr<p>\n"; #print "<select name=\"sex\">\n"; #print "\t<option value=\"F\"> Female\n"; #print "\t<optiom value=\"M\"> Male\n"; print "</select>\n"; print "<input type=\"submit\" value=\"subnit!\">\n</form>\n"; } ?> </body> </html> Men den sender ikke endnu :-)
10. august 2003 - 00:52
#36
har skrevet det om og nu virker det, det blev sådan her ------------------------------------------------------------------- <?php $max = 0; // Variabler til MySQL oplysninger $mysql_host = "localhost"; // MySQL server $mysql_user = "root"; // MySQL brugernavn $mysql_pw = ""; // MySQL Adgangskode $mysql_db = "adresse"; // MySQL database navn // Variabler til indsættelse i database $navn = $_POST["navn"]; $adresse = $_POST["adresse"]; $nr = $_POST["nr"]; // Her åbnes for MySQL databasen $DB = mysql_connect($mysql_host, $mysql_user, $mysql_pw)or die(mysql_error()); mysql_select_db($mysql_db, $DB)or die(mysql_error()); // Her indsættes der til MySQL mysql_query("INSERT INTO adresse (navn, adresse, nr) VALUES ('$navn','$adresse','$nr')")or die(mysql_error()); ?>
10. august 2003 - 12:04
#37
okay, jeg var ikke hjemme hele dagen igår, derfor jeg ikke nåede at svare dig. Husk at lukke spm. ;o)
10. august 2003 - 18:06
#38
helt ok, jeg lukker nu
Vi tilbyder markedets bedste kurser inden for webudvikling