-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.
$insert = "INSERT INTO deelnemers (naam,telefoon,email)quote:Op woensdag 12 mei 2004 23:21 schreef Vision het volgende:
uhm, ik begrijp even niet waar ik nog een $_POST[] voor moet zetten?
Voor die $insert?
Hij zorgt dat alle $_ waarden als gewone waarden beschikbaar worden, dus alle $_POST[waarde] als $waarde. Bovenstaande oplossing zou evengoed moeten werken.quote:Op donderdag 13 mei 2004 00:10 schreef Vision het volgende:
[..]
hij werkt idd.thx men!!!
zou je me ook nog kunnen uitleggen wat het precies doet?
klinkt idd logisch. thx, kan ik iig weer verderquote:Op donderdag 13 mei 2004 00:36 schreef Ali Salami het volgende:
[..]
$insert = "INSERT INTO deelnemers (naam,telefoon,email)
VALUES ('$_POST[naam]','$_POST[telefoon]','$_POST[email]')";
Je gebruikt hetzelfde namelijk wel bij submit -> $_POST[submit], waarom dan niet bij de rest? Dat zijn namelijk dezelfde soort waarden als 'submit'
[..]
Hij zorgt dat alle $_ waarden als gewone waarden beschikbaar worden, dus alle $_POST[waarde] als $waarde. Bovenstaande oplossing zou evengoed moeten werken.
quote:Op donderdag 13 mei 2004 00:10 schreef Vision het volgende:
[..]
hij werkt idd.thx men!!!
zou je me ook nog kunnen uitleggen wat het precies doet?
quote:Op donderdag 13 mei 2004 @ 00:36 schreef Ali Salami het volgende:
Hij zorgt dat alle $_ waarden als gewone waarden beschikbaar worden, dus alle $_POST[waarde] als $waarde. Bovenstaande oplossing zou evengoed moeten werken.
Ik krijg geen php errors als ik het script wil uitvoeren maar wel de opmerking "Kan insert2 niet toevoegen aan de db".quote:<?php
if ($_POST["submit"]) {
mysql_query($insert1) or die (Kan insert1 niet toevoegen aan de db");
mysql_query($insert2) or die (Kan insert2 niet toevoegen aan de db");
daar komt de melding "Query was empty" uit.quote:Op dinsdag 25 mei 2004 13:37 schreef slindenau het volgende:
maak er iig ... or die( mysql_error() ); van, dan krijg je de foutmelding te zien
krijg wederom bij de laatste query de melding "Query was empty" en een paar witregels erboven.quote:Op dinsdag 25 mei 2004 14:37 schreef Chandler het volgende:
doe eens het volgende na iedere mysql_query($nogwat) die je aanroept
stel je query is iets van dit
$query = mysql_query($sql_query1);
maak dan van de errorhandler dit
or die ($sql_query1 ."<br/><br/>". mysql_error());
dan zie je als het goed is je query en de fout, indien niet, dan bestaat je query variable niet
Dan staat er dus niks in $insert2quote:Op dinsdag 25 mei 2004 15:38 schreef Vision het volgende:
[..]
krijg wederom bij de laatste query de melding "Query was empty" en een paar witregels erboven.
inderdaad, dan lijkt het er op dat je query leeg is hé...quote:Op dinsdag 25 mei 2004 15:38 schreef Vision het volgende:
[..]
krijg wederom bij de laatste query de melding "Query was empty" en een paar witregels erboven.
maar dat is dus niet het geval. Tenzij ik ergens (1000x) overheen heb gekeken verschilt de query (buiten 2 waardes) geen zak met de eerste query die wel gewoon werkt.quote:Op woensdag 26 mei 2004 08:32 schreef Chandler het volgende:
inderdaad, dan lijkt het er op dat je query leeg is hé...
* Vision wordt er gek vanquote:<html>
<body>
<?php
$location = "localhost";
$username = "<user>";
$password = "<pass>";
$database = "test";
foreach ($_REQUEST as $k=>$v)
{
if (!isset($GLOBALS[$k]))
{
${$k}=$v;
}
}
$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 database niet openen");
$insert1 = "INSERT INTO deelnemers (naam,telefoon,email)
VALUES ('$naam','$telefoon','$email')";
$insert2 = "INSERT INTO test (email,UitslagThuis,UitslagUit)
VALUES ('$email', '$UitslagThuis', '$UitslagUit')";
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
Naam: <input type="Text" name="naam" value="<?php print $naam; ?>" ><br>
Telefoon: <input type="Text" name="telefoon" value="<?php echo $telefoon; ?>"><br>
E-mail adres: <input type="Text" name="email" value="<?php echo $email; ?>"><br>
Wedstrijd 01: <input type="Text" name="Thuis" value="<?php echo $UitslagThuis; ?>">
<input type="Text" name="Uit" value="<?php echo $UitslagUit; ?>"> <br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
if ($_POST["submit"]) {
mysql_query($insert1) or die ("Kan de NAW data niet aan de tabel toe voegen");
mysql_query($insert2) or die ($insert2. "<br/> <br/>". mysql_error());
}
?>
</body>
</html>
Enjoy!quote:<html>
<body>
<?php
$location = "localhost";
$username = "<user>";
$password = "<pass>";
$database = "test";
$conn = mysql_connect($location,
$username,
$password) or die("Sorry, er kan geen verbinding gemaakt worden met de MySQL server");
mysql_select_db($database,
$conn) or die("Sorry, kan geen verbinding maken met huidig geselecteerde database");
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
// er is een submit gedaan.
$insert1 = "INSERT INTO
`deelnemers` (`naam`, `telefoon`, `email`)
VALUES
('" . $_POST['naam'] . "',
'" . $_POST['telefoon'] . "',
'" . $_POST['email'] . "')";
$insert2 = "INSERT INTO
`test` (`email`, `UitslagThuis`, `UitslagUit`)
VALUES
('" . $_POST['email'] . "',
'" . $_POST['UitslagThuis'] . "',
'" . $_POST['UitslagUit'] . "')";
mysql_query($insert1) or die ("Kan de NAW data niet aan de tabel toe voegen");
mysql_query($insert2) or die ($insert2. "<br/> <br/>". mysql_error());
header("location: " . $_SERVER['PHP_SELF']);
exit();
}
else
{
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
Naam: <input type="Text" name="naam" value="<?php print $_POST['naam']; ?>" ><br>
Telefoon: <input type="Text" name="telefoon" value="<?php echo $_POST['telefoon']; ?>"><br>
E-mail adres: <input type="Text" name="email" value="<?php echo $_POST['email']; ?>"><br>
Wedstrijd 01: <input type="Text" name="Thuis" value="<?php echo $_POST['UitslagThuis']; ?>">
<input type="Text" name="Uit" value="<?php echo $_POST['UitslagUit']; ?>"> <br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
}
?>
</body>
</html
aangezien daar de fout in lijkt te zitten. en dan voert ie iig de NAW gegevens in in de 'deelnemers' tabel. De $email waarde schrijft ie ook weg naar de tabel 'test', maar de waardes $UitslagThuis en $UitslagUit blijven in de database op 0 staan, ipv de waardes die ik ingevoerd had.quote:header("location: " . $_SERVER['PHP_SELF']);
exit();
Deze error komt omdat "<html><head>" boven je php code staat...zet deze voor de grap eens onder het stukje waar header() staatquote:Warning: Cannot modify header information - headers already sent
nu doet hij het idd wel.quote:Op woensdag 26 mei 2004 15:05 schreef slindenau het volgende:
[..]
Deze error komt omdat "<html><head>" boven je php code staat...zet deze voor de grap eens onder het stukje waar header() staat
(ik stel voor: de regel boven <form...>)
En maak van $_POST["UitslagThuis"] en $_POST["UitslagUit"] eens $_POST["Thuis"] en $_POST["Uit"]...
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |