-edit-quote:<html>
<body>
<?php
if ($submit) {
$db = mysql_connect("localhost", "<login>", "<pass>");
mysql_select_db("test",$db);
$sql = "INSERT INTO deelnemers (naam,telefoon,email) VALUES ('$naam','$telefoon','$email')";
$result = mysql_query($sql);
echo "Thank you! Information entered.\n";
} else{
?>
<form method="post" action="<?php echo $PHP_SELF ?>">
Naam:<input type="Text" name="naam"><br>
Teleoon:<input type="Text" name="telefoon"><br>
E-mail adres:<input type="Text" name="email"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
}
?>
</body>
</html>
Of $_POST['submit']quote:Op woensdag 5 mei 2004 19:07 schreef Phoenixz_In_Mexico het volgende:
maak van if($submit) eens if($_REQUEST["submit"])
de nieuwste versies van PHP hebben "register_globals" uitstaan, daardoor komen alle form variabelen niet meer automatisch als variabelen in je scriptje maar in $_REQUEST.
Dit is overigens een stuk veiliger dan die variabelen direct in je scriptje te krijgen
Als je maar één connectie aanmaakt is dit volstrekt overbodig (net zoals bij mysql_select_db), omdat PHP dan automatisch voor de laatst aangemaakte verbinding kiest.quote:Op woensdag 5 mei 2004 19:10 schreef twi het volgende:
$result = mysql_query($sql);
moet zijn
$result = mysql_query($sql,$db);
Je moet ook aangeven op welke database-connectie je deze query wilt uitvoeren.
Dat "or die" zorgt ervoor dat je iets te zien krijgt als mysql_query() een fout resultaat oplevert. De functie mysql_error() retourneert de error die MySQL doorgeeft (mocht die er zijn).quote:$sql = "INSERT INTO deelnemers (naam,telefoon,email) VALUES ('$naam','$telefoon','$email')";
$result = mysql_query($sql)
or die("Query kon niet uitgevoerd worden.<br />" . $sql . "<br />" . mysql_error());
dit werkt idd wel. thxquote:Op woensdag 5 mei 2004 19:07 schreef Phoenixz_In_Mexico het volgende:
maak van if($submit) eens if($_REQUEST["submit"])
de nieuwste versies van PHP hebben "register_globals" uitstaan, daardoor komen alle form variabelen niet meer automatisch als variabelen in je scriptje maar in $_REQUEST.
Dit is overigens een stuk veiliger dan die variabelen direct in je scriptje te krijgen
Als je gegevens verstuurt via de URL, dan gebruik je $_GET:quote:Op woensdag 5 mei 2004 19:18 schreef Vision het volgende:
dus als ik het goed begrijp is $_REQUEST een variabele waarin de verzonden info tijdelijk opgeslagen wordt en weer oproepbaar is? (als ik begrijp wat er nou psies gebeurt maak ik misschien niet meer dezelfde fouten )
duidelijk!quote:Op woensdag 5 mei 2004 19:20 schreef JeRa het volgende:
[..]
Als je gegevens verstuurt via de URL, dan gebruik je $_GET:
index.php?waarde=10
$waarde = intval($_GET['waarde']);
Als je gegevens verstuurt via een POST-formulier (method="post") dan gebruik je $_POST:
<input type="text" name="waarde" />
$waarde = $_POST['waarde']; //al dan niet met strip_slashes();
$_REQUEST is een variabele die deze combineert, maar over 't algemeen wordt aangeraden specifieker te zijn en dus $_POST of $_GET te gebruiken.
mocht er iets mis gaan vertelt die je het meteenquote:if ( !$result = mysql_query($sql, $b) )
{
echo mysql_error();
exit;
}
Niet helemaal..quote:Op woensdag 5 mei 2004 19:18 schreef Vision het volgende:
[..]
dit werkt idd wel. thx
dus als ik het goed begrijp is $_REQUEST een variabele waarin de verzonden info tijdelijk opgeslagen wordt en weer oproepbaar is? (als ik begrijp wat er nou psies gebeurt maak ik misschien niet meer dezelfde fouten )
Als ik wat invoer dan krijg ik in eerste instantie geen foutmelding. Als ik dan in de database kijk of de juiste informatie weggeschreven is dan is dit niet het geval. Er staat wel een nieuwe regel in maar bij telefoon staat "0" en bij naam/email staat helemaal niets.quote:<html>
<body>
<?php
$location = "localhost";
$username = "<user>";
$password = "<pass>";
$database = "<db>";
$conn = mysql_connect("$location", "$username", "$password");
if (!$conn) die ("kan geen verbinding krijgt met de mysql server");
mysql_select_db($database,$conn) or die ("Kan het databeest niet openen");
$insert = "INSERT INTO deelnemers (naam,telefoon,email)
VALUES ('$naam','$telefoon','$email')";
?>
<form method="post" action="<?php echo $PHP_SELF ?>">
Naam:<input type="Text" name="naam" value="<?php echo $naam ?>"><br>
Teleoon:<input type="Text" name="telefoon" value="<?php echo $telefoon ?>"><br>
E-mail adres:<input type="Text" name="email" value="<?php echo $email ?>"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
if ($_POST["submit"]) {
mysql_query($insert) or die ("Kan de data niet aan de tabel toe voegen");
}
?>
</body>
</html>
dat was niet echt (meer) de vraag, maar ik wist dat je idd register_globals kan aanzetten. doe dat liever niet, aangezien het wel niet zonder reden afgeraden zal worden.quote:Op woensdag 12 mei 2004 15:27 schreef rolandow het volgende:
Je kunt ook je register_globals aanzetten in je php.ini ...
Dan zijn die variabelen gewoon aanspreekbaar op hun eigen naam .. dus $_GET['submit'] is dan gewoon $submit.
Wordt afgeraden door PHP, maar aangezien ze $_REQUEST ook weer inbouwen wat eigenlijk hetzelfde doet is dat een beetje bullshit imho.
de tabel deelnemers bestaat uit de velden naam, telefoon en email. (heb ik wel 100x nagekeken of ik geen spelfout gemaakt heb). staat zowel in de php file als in de database goed.quote:Op woensdag 12 mei 2004 17:20 schreef Ali Salami het volgende:
Die database, wat voor velden zijn dat?
Wat je sowieso kunt doen in dit geval is even kijken of de query die je wilt wel wortd uitgevoerd: print $query
Spelfout had je sowieso niet gemaakt, aangezien de query wel wordt uitgevoerdquote:Op woensdag 12 mei 2004 18:59 schreef Vision het volgende:
[..]
de tabel deelnemers bestaat uit de velden naam, telefoon en email. (heb ik wel 100x nagekeken of ik geen spelfout gemaakt heb). staat zowel in de php file als in de database goed.
naam/email = varchars en telefoon = decimals. Ik kan vanuit phpmyadmin wel dingen invoeren via "insert". die komen dan ook goed in de database te staan. Dus daar ligt 't denk ik niet aan.
hij werkt idd.quote:Op woensdag 12 mei 2004 23:35 schreef folfas het volgende:
Zet deze code:
foreach ($_REQUEST as $k=>$v)
{
if (!isset($GLOBALS[$k]))
{
${$k}=$v;
}
}
na $database = "<db>" en je zal zien dat het wel werkt.
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |