Hallo,

Ik ben net begonnen met php en probeer een sessie te maken.
Ik heb al op veel sites gekeken maar het werkt gewoon niet.

Dit is mijn script:

<html>
	<head>
		<title>Opdracht 44 inloggen</title>
	</head>
	<body>
		<?php
			$gebruikersnaam = $_POST["gebruikersnaam"];
			$wachtwoord = $_POST["wachtwoord"];
			if (!$gebruikersnaam || !$wachtwoord)
				{
		?>
					<p><b>Welkom! Maak een random gebruikersnaam en wachtwoord. Ze worden niet opgeslagen dus boeiend!</b></p>
					
					<table border="0"> 
						<form name="rekenmachine" method="post" action="Opdracht_44a.php">
							<tr><td>Gebruikersnaam:</td> 
							<td><input type = "text" size="25" name = "gebruikersnaam"></td></tr>
					
							<tr><td>Wachtwoord:</td>
							<td><input type = "password" size="25" name = "wachtwoord"></td></tr>
				
							<tr><td><input type = "submit" value = "Inloggen"></td></tr>
						</form>
					</table>
		<?php
				}
			
			else
				{
					session_start();
					$_SERVER['gebruikersnaam'];
					echo "Klik hier om door te gaan $gebruikersnaam";
		?>
					<form name="jwz" method="post" action="Opdracht_44b.php">
					<input type="submit" value="Naar geheime pagina...">
					</form>
		<?php
				}
		?>
	</body>
</html>


Het 2e script is:
 
<html>
	<head>
		<title>Opdracht 44 geheim</title>
	</head>
	<body>
		<?php
			session_set_cookie_params(0, '/', 'stan.graafhuyncollege.nl');
			session_start();
			if ($_SERVER['gebruikersnaam'])
			{
			echo"Heey $gebruikersnaam! Welkom op de beveiligde pagina! <br />
				 Uw gebruikersnaam is $gebruikersnaam. <br />
				 En uw wachtwoord is $wachtwoord. <br />
				 U kunt zich hier afmelden: <br />";
			}
			
			else 
			{
				echo"u bent niet ingelogd";
			}
		?>
			<form name="jwz" method="post" action="Opdracht_44a.php">
				<input type="submit" value="AFMELDEN <?php echo $gebruikersnaam; ?>">
			</form>
	</body>
</html>


Jammer genoeg werkt dit script niet.
Kan iemand mij misschien helpen?

Mvg,
Stan Peters
Ik heb alles geprobeerd wat jullie zeiden, maar het werkt nog steeds niet.
Is er misschien iemand die een oplossing weet?
En waar kunnen wij dat alles zien om te kijken wat je nou fout doet?
Op dit moment is dit mijn script:


<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', '1');

			$gebruikersnaam = $_POST["gebruikersnaam"];
			$wachtwoord = $_POST["wachtwoord"];
			if (!$gebruikersnaam || !$wachtwoord)
				{
?>
<html>
	<head>
		<title>Opdracht 44 inloggen</title>
	</head>
	<body>

					<p><b>Welkom! Maak een random gebruikersnaam en wachtwoord. Ze worden niet opgeslagen dus boeiend!</b></p>
					
					<table border="0"> 
						<form name="rekenmachine" method="post" action="Opdracht_44a.php">
							<tr><td>Gebruikersnaam:</td> 
							<td><input type = "text" size="25" name = "gebruikersnaam"></td></tr>
					
							<tr><td>Wachtwoord:</td>
							<td><input type = "password" size="25" name = "wachtwoord"></td></tr>
				
							<tr><td><input type = "submit" value = "Inloggen"></td></tr>
						</form>
					</table>
		<?php
				}
			
			else
				{
					$_SESSION['gebruikersnaam'] = $gebruikersnaam;
					echo "Klik hier om door te gaan $gebruikersnaam";
		?>
					<form name="jwz" method="post" action="Opdracht_44b.php">
					<input type="submit" value="Naar geheime pagina...">
					</form>

	</body>
</html>
		<?php
				}
		?>


En mijn 2e script is:

<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', '1');

			if ($_SESSION['gebruikersnaam'])
			{
			echo"Heey $gebruikersnaam! Welkom op de beveiligde pagina! <br />
				 Uw gebruikersnaam is $gebruikersnaam. <br />
				 En uw wachtwoord is $wachtwoord. <br />
				 U kunt zich hier afmelden: <br />";
			}
			
			else 
			{
				echo"u bent niet ingelogd";
			
?>
<html>
	<head>
		<title>Opdracht 44 geheim</title>
	</head>
	<body>
			<form name="jwz" method="post" action="Opdracht_44a.php">
				<input type="submit" value="AFMELDEN <?php echo $gebruikersnaam; ?>">
			</form>
	</body>
</html>
<?php
			}
?>


Script 2 :hij laat nu wel de if zien, maar de $gebruikersnaam doet het niet. Als ik in plaats van $gebruikersnaam, $_SESSION['gebruikersnaam'] neer zet, doet pagina 44b (2e script) het niet meer.
Kijk even mee naar mijn versie.

Ben je hier iets mee?

<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', '1');

// eerst kijken of er een $_POST in de lucht hangt
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// hier controleer jij dus of de gegevens overeen komen met wat in de DB staat. Dit doe ik even niet
$_SESSION['gebruikersnaam'] = $_POST["gebruikersnaam"];
}

// kijken of de session variabelen gezet zijn
if (!isset($_SESSION['gebruikersnaam'])) {
// geen login in de sessie gevonden
// zie heredoc notation
echo <<<HTML
<html>
<head>
<title>Opdracht 44 inloggen</title>
</head>
<body>
<p><b>Welkom! Maak een random gebruikersnaam en wachtwoord. Ze worden niet opgeslagen, dus boeiend!</b></p>
<table border="0">
<form name="rekenmachine" method="post" action="">
<tr><td>Gebruikersnaam:</td>
<td><input type = "text" size="25" name = "gebruikersnaam"></td></tr>
<tr><td>Wachtwoord:</td>
<td><input type = "password" size="25" name = "wachtwoord"></td></tr>
<tr><td><input type = "submit" value = "Inloggen"></td></tr>
</form>
</table>
</body>
</html>
HTML;
}
else {
// login in de sessie gevonden
// Met andere woorden, vanaf hier kan je al de geheime pagina's tonen die je wil.

// laat me hier even een basis navigatie toevoegen, dus op basis van de URL
switch(isset($_GET['p']) ? $_GET['p'] : '') {
default:
echo <<<HTML
<a href="?p=welcome">Klik hier</a> om door te gaan, $_SESSION[gebruikersnaam]
<br><br><br><a href="?p=logout">Uitloggen</a>
HTML;
break;
case 'welcome':
echo 'Welkom op de geheime pagina van Stan. <br>Het doel van het leven is 42
<br><br><br><a href="?p=logout">Uitloggen</a>';
break;
case 'logout':
unset($_SESSION['gebruikersnaam']);
header('location: ?p=');
break;
}
}
?>
Hij doet het bedankt iedereen!!!!

Reageren