Ik zit met het volgende probleem:
Ik heb een script gemaakt waarbij je gegevens kan invoeren en deze op een andere pagina worden getoont.
Op mijn LOCALHOST worden de gegevens wel weergegeven en op het moment dat ik de scripts online zet en ik voer dan gegevens in, dan krijg ik lege (onzichtbare) velden te zien.
De SQL velden bij m'n provider zijn hetzelfde als op m'n LOCALHOST
Kan iemand mij misschien helpen?


Bij deze script voer ik de gegevens in:

<?php
	session_start();
 $actie=$_POST["submit"];
		if($actie=="toevoegen"){

	if(empty($_POST["datum"])){
	echo("U heeft geen datum opgegeven");}
		else{
	$_SESSION["datum"]=$_POST["datum"];

	if(empty($_POST["locatie"])){
	echo("U heeft geen 'locatie' opgegeven");}
	else{
	$_SESSION["locatie"]=$_POST["locatie"];

	if(empty($_POST["adres"])){
	echo("U heeft geen 'adres' opgegeven");}
	else{
	$_SESSION["adres"]=$_POST["adres"];

	if(empty($_POST["plaats"])){
	echo("U heeft geen 'plaats' opgegeven");}
	else{
	$_SESSION["plaats"]=$_POST["plaats"];

	if(empty($_POST["begintijd"])){
	echo("U heeft geen 'begintijd' opgegeven");}
	else{
	$_SESSION["begintijd"]=$_POST["begintijd"];
	
	if(empty($_POST["eindtijd"])){
	echo("U heeft geen 'begintijd' opgegeven");}
	else{
	$_SESSION["begintijd"]=$_POST["eindtijd"];
	

header("Location:agenda_connect.php");}}}}}}}
else{
}
?>

<html>
<head>
</head>
<body>
<form name="reset" method="post" action="<?php echo ($_SERVER["PHP_SELF"]);?>">
<h2>Voeg een optreden toe</h2>
<br>
<table>
<tr>
<td>Datum:</td>
<td><input name="datum" type="text" id="datum" maxlength="10"> (DD-MM-YYYY)</td>
</tr>

<tr>
<td>Locatie:</td>
<td><input name="locatie" type="text" id="locatie"></td>
</tr>

<tr>
<td>Adres:</td>
<td><input name="adres" type="text" id="adres"></td>
</tr>

<tr>
<td>Plaats:</td>
<td><input name="plaats" type="text" id="plaats"></td>
</tr>

<tr>
<td>Begintijd:</td>
<td><select name="begintijd">
		<?php
		for($i=0;$i<24;$i++) {
			$hour=($i+7)%24;
			print "<option value=\"" . $hour . ":00\"";
			if($_SESSION["begintijd"]==$hour . ":00") {
				print " selected";
			}
			print ">" . $hour . ":00</option>\n";

			print "<option value=\"" . $hour . ":15\"";
			if($_SESSION["begintijd"]==$hour . ":15") {
				print " selected";
			}
			print ">" . $hour . ":15</option>\n";

			print "<option value=\"" . $hour . ":30\"";
			if($_SESSION["begintijd"]==$hour . ":30") {
				print " selected";
			}
			print ">" . $hour . ":30</option>\n";

			print "<option value=\"" . $hour . ":45\"";
			if($_SESSION["begintijd"]==$hour . ":45") {
				print " selected";
			}
			print ">" . $hour . ":45</option>\n";
		}
		?>
	</select></td>
</tr>

<tr>
<td>Eindtijd:</td>
<td><select name="eindtijd">
		<?php
		for($i=0;$i<24;$i++) {
			$hour=($i+7)%24;
			print "<option value=\"" . $hour . ":00\"";
			if($_SESSION["eindtijd"]==$hour . ":00") {
				print " selected";
			}
			print ">" . $hour . ":00</option>\n";

			print "<option value=\"" . $hour . ":15\"";
			if($_SESSION["eindtijd"]==$hour . ":15") {
				print " selected";
			}
			print ">" . $hour . ":15</option>\n";

			print "<option value=\"" . $hour . ":30\"";
			if($_SESSION["eindtijd"]==$hour . ":30") {
				print " selected";
			}
			print ">" . $hour . ":30</option>\n";

			print "<option value=\"" . $hour . ":45\"";
			if($_SESSION["eindtijd"]==$hour . ":45") {
				print " selected";
			}
			print ">" . $hour . ":45</option>\n";
		}
		?>
	</select></td>
</tr>

<tr>
<td>
<input type="submit" name="submit" value="toevoegen">
</td>
</tr>

</table>
</form>
</body>
</html>



En dit is mijn script die ervoor zorgt dat de gegevens daadwerkelijk worden toegevoegd:

<?php
	session_start();

//definieer variabelen voor database-connectie
//open database connectie
include("sql_connectie_database.php");

$datum=$_SESSION["datum"];
$locatie=$_SESSION["locatie"];
$adres=$_SESSION["adres"];
$plaats=$_SESSION["plaats"];
$begintijd=$_SESSION["begintijd"];
$eindtijd=$_SESSION["eindtijd"];

$sql="INSERT INTO agenda (datum,locatie,adres,plaats,begintijd,eindtijd) VALUES ('$datum','$locatie','$adres','$plaats','$begintijd','$eindtijd');";
$result=mysql_query($sql);

echo("U heeft succesvol een optreden toegevoegd");
?>

Aub ff [ignore]
[/ignore] gebruiken en alleen relevante code posten, hierin zie je door de bomen het bos niet meer.
Pas je script even aan en gebruik [ignore]
 en 
[/ignore] tags om je code heen. Gebruik je knop om dit te doen.

Haal gelijk even overbodige code weg en laat alléén relevante code staan. Niemand heeft zin om enkele honderden regels door te spitten.

SanThe.
Je controleert helemaal niet of je query gelukt is! Het laatste stukje van je code zou zo moeten:

<?php
	$sql = "
		INSERT INTO agenda
		(
			datum,
			locatie,
			adres,
			plaats,
			begintijd,
			eindtijd
		)
		VALUES
		(
			'" . mysql_real_escape_string ($datum) . "',
			'" . mysql_real_escape_string ($locatie) . "',
			'" . mysql_real_escape_string ($adres) . "',
			'" . mysql_real_escape_string ($plaats) . "',
			'" . mysql_real_escape_string ($begintijd) . "',
			'" . mysql_real_escape_string ($eindtijd) . "'
		)
		";
	if (!mysql_query ($sql)) {
		trigger_error (mysql_error ());
	}
	else {
		if (mysql_affected_rows () == 1) {
			echo 'record toegevoegd';
		}
		else {
			echo 'toevoegen mislukt';
		}
	}
?>

Er zitten nog meer dingen in je script die een stuk beter kunnen, maar dit is het belangrijkste.
1 advies

een form welke met method="POST" wordt verstuur controleer je in eerste instantie met
<?php
if ($_SERVER['REQUEST_METHOD']=='POST') {
?>

daarna ga je alle $_POST (verwachte postvelden controleren) en gebruik bij controle op een lege string niet de functie empty maar !=''

dus dan krijg je iets in de trant van:
<?php
if ( $_SERVER['REQUEST_METHOD']=='POST'
&& isset($_POST["datum"]) && $_POST["datum"]!=''
// en dat dan voor alle formvelden je kan eventueel ook preg_match doen om de te kijken of de inhoud van een veld alleen die karakters bevat welke deze mag bevatten
) {

// en hier doe je de rest
}
else {
// niet alle form velden zijn op correcte wijze ingevuld
}
?>

dan nog:
-> mysql_real_escape_string()
-> waar o waar is de correcte foutafhandeling
-> php variabelen buiten qoutes

Reageren