Ik wil iets invoegen in de database, en daar heb ik een scriptje voor gemaakt. Het probleem is dat het toevoegen WEL werkt met Firefox, maar het toevoegen werkt NIET met Internet explorer. Over google kreeg ik niets gevonden, dus dacht ik dat jullie me misschien konden helpen.

Het gaat over de volgende code:

De pagina groepen_formulier.php
<CODE>
<?php
$waarde = ($_SESSION['gebruiker2']);
// deze sessie geeft een Id van de school mee
<form method="post" name="toevoegen" action="groepen_toevoegen.php">
<input name="naam" type="text">
<input name="school" type="hidden" value="<?php echo $waarde;?>">
</td><td>
<input type="submit" name="toevoegen" value="toevoegen">
</form>

En de pagina groepen_toevoegen.php

<CODE>
<?php
$sql = "INSERT INTO groepen (naam, school) VALUES ('". $_POST['naam'] ."','". $_POST['school'] ."')";
$res = mysql_query($sql);

De naam die wordt ingevoerd wordt wel netjes in de database geplaatst, maar de school die in een hidden wordt meegestuurd niet.
In Firefox werkt het geheel perfect.
Ik zie geen session_start().
alles zit erin, mss beter om de gehele code te posten.

De pagina groepen_formulier.php

<?php include('dbconnect.php');
if($_SESSION['gebruiker2'] != ''){
  header("Location: inlog.php");
}
else{
 session_start();
?>
<body bgcolor="#FFFFCC">
<table style="font-family:Tahoma;">
<tr>
	<td width="200" valign="top">
	<?php include("home_admin.php"); ?>
	</td>
	<td valign="top">
<?php
echo ("<table bgcolor=#FFEE99 align=center>
		<tr>
		<td><b>groepsnaam</b></td>
		<td><b>toevoegen / verwijder</b></td>
		</tr>
	");

$waarde = ($_SESSION['gebruiker2']);
$sql = "select * from groepen where $waarde = groepen.school";
$res = mysql_query($sql);

while ($row = mysql_fetch_array($res)) {
    echo ("
		<tr>
			<td>". $row['naam'] ."</td>
			<td>"); ?>
			<form method="post" name="verwijder" action="groepen_verwijder_admin.php">
			<input name="Id" type="hidden" value="<?php echo $row['Id'];?>">
			<input name="school" type="hidden" value="<?php echo $waarde;?>">
			<input type="submit" value="verwijder" name="bevestig">
			</form>
			<?php echo ("
			</td>
		</tr>
		");}
?>
<tr>
<td>
<form method="post" name="toevoegen" action="groepen_toevoegen.php">
	<input name="naam" type="text">
	<input name="school" type="hidden" value="<?php echo $waarde;?>">
  	</td><td>
  	<input type="submit" name="toevoegen" value="toevoegen">
</form>
</td>
</tr>
<br>
	</td>
</tr>
</table>
</body>
</html>
<?php } ?>





En de pagina groepen_toevoegen.php


<?php include('dbconnect.php'); ?>
<?php
if($_SESSION['username'] != ''){
  header("Location: inlog.php");
}
else{
session_start();
if($_SESSION['username'] != 'cgn'){
  header("Location: inlog.php");
}
else{ ?>
<?php

$sql = "INSERT INTO groepen (naam, school) VALUES ('". $_POST['naam'] ."','". $_POST['school'] ."')";
$res = mysql_query($sql);

echo ("uw gegevens zijn toegevoegd, u wordt automatich doorgelinkt.");

echo ('<META HTTP-EQUIV=Refresh CONTENT="2; URL=groepen_formulier.php">');
 ?>
<?php }} ?>

Frank zet je script even tussen [ignore]
 en 
[/ignore] tags, dan is het wat handiger.
if($_SESSION['gebruiker2'] != ''){
header("Location: inlog.php");
}
else{
session_start();

Dit is onmogelijk. Eerst kijken wat er in de session staat en daarna eventueel de session starten.
eventueel een andere sessie starten is de bedoeling ;)
Is er een reden dat die het in IE niet doet, maar in Firefox wel?

Heeft niemand verder ooit zo'n probleem gehad?


<form method="post" name="toevoegen" action="groepen_toevoegen.php">
    <input name="naam" type="text">
    <input name="school" type="hidden" value="<?php echo $waarde;?>">
      </td><td>
      <input type="submit" name="toevoegen" value="toevoegen">
</form>


Het hidden veldje wil die niet meesturen in IE, maar wel in firefox. Als ik dit verander in text werkt het wel, maar ik wil die waarde niet op het scherm.

Iemand suggesties?
Zet session_start(); op regel 2 van je script dus:

<?php
session_start();
?>
SanThe heeft gelijk. Niet negeren dus.
De sessie is helemaal niets mis mee,
de gebruiker cgn heeft andere rechten, en andere pagina's als een gewone gebruiker, daarom heb ik dat zo gedaan, en dat werkt perfect. Niet ingelogde gebruikers komen gewoon niet op de website.

Maar niemand een oplossing voor mijn probleem ?
Dat hij de veld NIET meestuurd in een hidden met IE en WEL met Firefox.
En met een text-veld in een formulier heb ik nergens problemen mee.

Wat is de reden dat de hidden niet mee wordt gestuurd in IE.
De naam (text) wordt wel meegestuurd, dus met de sessie is niets aan de hand.

$sql = "INSERT INTO groepen (naam, school) VALUES ('". $_POST['naam'] ."','". $_POST['school'] ."')";
$res = mysql_query($sql);


Deze query was verkeerd, met de POST school stuur ik een integer mee, dus zijn die backticks niet toegestaan!

stomme fout

Reageren