require_once probleem? niet once?
descartes - 10/02/2006 14:44
Nieuw lid
Hallo, ik zit al uren te '....' maar elke keer als ik op de submit button klik, keer ik telkens terug naar de login. wat doe ik fout? heel het formulier wordt steeds opnieuw geopend met login. thanks
<?php
require_once('login.inc.php');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Remote</title>
</head>
<body>
<?php
if (isset($_POST['actie']))
{
// Uit te voeren actie bepalen:
$actie = $_POST['actie'];
if ($actie == "Lamp 1 aan")
{
echo 'Lamp is aan!';
}
}
?>
<form method="post">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td align="center" nowrap>
<input class="knop " name="actie" type="submit" value="Lamp 1 aan">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
require_once ( 'login.inc.php' ) ;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Remote</title>
</head>
<body>
<?php
if ( isset ( $_POST [ 'actie' ] ) ) {
// Uit te voeren actie bepalen:
$actie = $_POST [ 'actie' ] ;
if ( $actie == "Lamp 1 aan" )
{
}
}
?>
<form method="post">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td align="center" nowrap>
<input class="knop " name="actie" type="submit" value="Lamp 1 aan">
</td>
</tr>
</table>
</form>
</body>
</html>
Login code:
<?
// Associatieve array met gebruikers (gebruikersnaam => wachtwoord):
$gebruikers = array(
"Administrator" => "test",
"root" => "test",
"user" => "test"
// enzovoorts ...
);
// Gebruikersnaam en wachtwoord controleren:
if (isset($_REQUEST['gn'])) {
// Gebruikersnaam lezen uit een formulier of cookie:
if (isset($_POST['gn'])) {
$gebruikersnaam = $_POST['gn'];
} elseif (isset($_COOKIE['gn'])) {
$gebruikersnaam = $_COOKIE['gn'];
} else {
inloggen();
}
$gebruikersnaam = trim(strip_tags($gebruikersnaam));
// Controleren of de gebruikersnaam bestaat:
if (array_key_exists($gebruikersnaam, $gebruikers)) {
// Wachtwoord lezen uit een formulier of cookie:
if (isset($_POST['ww'])) {
$wachtwoord = $_POST['ww'];
} elseif (isset($_COOKIE['ww'])) {
$wachtwoord = $_COOKIE['ww'];
} else {
inloggen($gebruikersnaam);
}
$wachtwoord = trim(strip_tags($wachtwoord));
// Het wachtwoord bij deze gebruikersnaam controleren:
if ($gebruikers[$gebruikersnaam] == $wachtwoord) {
// Cookie verloopt na 30 dagen = 2592000 seconden:
$verloopt_op = time() + 2592000;
// Gebruikersnaam opslaan in een cookie:
setcookie("gn", $gebruikersnaam, $verloopt_op);
// Wachtwoord naar keuze opslaan in een cookie:
if (isset($_POST['wo'])) {
if ($_POST['wo'] == 1) {
setcookie("ww", $wachtwoord, $verloopt_op);
}
}
} else {
inloggen($gebruikersnaam);
}
} else {
inloggen($gebruikersnaam);
}
} else {
inloggen();
}
//echo "<script>location.href='remote.php'</script>";
// Webpagina met een formulier en instructies weergeven:
function inloggen($gebruikersnaam = '')
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="nl">
<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
<link href="windows.css" rel="stylesheet" type="text/css">
</head>
<body lang="nl">
<h1>Inloggen</h1>
<p>De pagina die u probeert te openen, is uitsluitend toegankelijk voor geregistreerde gebruikers.<br>
Voer uw gebruikersnaam en wachtwoord in en klik op Inloggen.</p>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td>
<label for="gn"><span style="text-decoration: underline">G</span>ebruikersnaam:</label>
</td>
</tr>
<tr>
<td><input accesskey="g" id="gn" name="gn" type="text" value="<?php echo $gebruikersnaam; ?>"></td>
</tr>
<tr>
<td>
<label for="ww"><span style="text-decoration: underline">W</span>achtwoord:</label>
</td>
</tr>
<tr>
<td><input accesskey="w" id="ww" name="ww" type="password"></td>
</tr>
<tr>
<td>
<label for="wo">
<input accesskey="s" id="wo" name="wo" type="checkbox" value="1"> Wachtwoord op<span style="text-decoration: underline">s</span>laan
</label>
</td>
</tr>
<tr>
<td><input class="knop" type="submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php
exit;
}
?>
<?
// Associatieve array met gebruikers (gebruikersnaam => wachtwoord):
"Administrator" => "test" ,
"root" => "test" ,
"user" => "test"
// enzovoorts ...
) ;
// Gebruikersnaam en wachtwoord controleren:
if ( isset ( $_REQUEST [ 'gn' ] ) ) { // Gebruikersnaam lezen uit een formulier of cookie:
if ( isset ( $_POST [ 'gn' ] ) ) { $gebruikersnaam = $_POST [ 'gn' ] ;
} elseif ( isset ( $_COOKIE [ 'gn' ] ) ) { $gebruikersnaam = $_COOKIE [ 'gn' ] ;
} else {
inloggen( ) ;
}
// Controleren of de gebruikersnaam bestaat:
// Wachtwoord lezen uit een formulier of cookie:
if ( isset ( $_POST [ 'ww' ] ) ) { $wachtwoord = $_POST [ 'ww' ] ;
} elseif ( isset ( $_COOKIE [ 'ww' ] ) ) { $wachtwoord = $_COOKIE [ 'ww' ] ;
} else {
inloggen( $gebruikersnaam ) ;
}
// Het wachtwoord bij deze gebruikersnaam controleren:
if ( $gebruikers [ $gebruikersnaam ] == $wachtwoord ) {
// Cookie verloopt na 30 dagen = 2592000 seconden:
$verloopt_op = time ( ) + 2592000 ; // Gebruikersnaam opslaan in een cookie:
setcookie ( "gn" , $gebruikersnaam , $verloopt_op ) ; // Wachtwoord naar keuze opslaan in een cookie:
if ( isset ( $_POST [ 'wo' ] ) ) { if ( $_POST [ 'wo' ] == 1 ) {
}
}
} else {
inloggen( $gebruikersnaam ) ;
}
} else {
inloggen( $gebruikersnaam ) ;
}
} else {
inloggen( ) ;
}
//echo "<script>location.href='remote.php'</script>";
// Webpagina met een formulier en instructies weergeven:
function inloggen( $gebruikersnaam = '' )
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="nl">
<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
<link href="windows.css" rel="stylesheet" type="text/css">
</head>
<body lang="nl">
<h1>Inloggen</h1>
<p>De pagina die u probeert te openen, is uitsluitend toegankelijk voor geregistreerde gebruikers.<br>
Voer uw gebruikersnaam en wachtwoord in en klik op Inloggen.</p>
<form action="
<?php echo $_SERVER [ 'SCRIPT_NAME' ] ; ?> " method="post">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td>
<label for="gn"><span style="text-decoration: underline">G</span>ebruikersnaam:</label>
</td>
</tr>
<tr>
<td><input accesskey="g" id="gn" name="gn" type="text" value="
<?php echo $gebruikersnaam ; ?> "></td>
</tr>
<tr>
<td>
<label for="ww"><span style="text-decoration: underline">W</span>achtwoord:</label>
</td>
</tr>
<tr>
<td><input accesskey="w" id="ww" name="ww" type="password"></td>
</tr>
<tr>
<td>
<label for="wo">
<input accesskey="s" id="wo" name="wo" type="checkbox" value="1"> Wachtwoord op<span style="text-decoration: underline">s</span>laan
</label>
</td>
</tr>
<tr>
<td><input class="knop" type="submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php
}
?>
8 antwoorden
Gesponsorde links
superlol - 10/02/2006 14:48
PHP interesse
mss moet je dit : <form method="post"> veranderen in dit :
<form method="post" action="blaat.php?actie=bla">
descartes - 10/02/2006 14:58
Nieuw lid
Ik heb nu dit
<form method="post" action="beveiligd1.php?actie=beveiligd1.php">
< form method= "post" action= "beveiligd1.php?actie=beveiligd1.php" >
maar werkt nog niet steeds weer login?
timo - 10/02/2006 15:09
PHP ver gevorderde
miss moet je zeggen welke actie er op actie=... moet gebeuren, verder: zet bovenaan je script: session_start(); dan laat hij nm sessies doorlopen... en miss alleen de pagina laten zien als de cookies bestaan?
descartes - 10/02/2006 15:56 (laatste wijziging 11/02/2006 11:24)
Nieuw lid
Nee dat met die punten maakt niet uit. Maar ik vind het nog steeds vreemd dat ik nu zo door mijn inlogscherm heen kan klikken. zie laatste code onder. Waarschijnlijk ligt het aan <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST"> in het login.php script dat het script zonder invoer wordt uitgevoerd. Als ik <?
require_once("login.php");?> boven aan zet spring ik constant terug naar de login.php. dus if ($_SERVER['REQUEST_METHOD'] != "POST")
require("login.php"); werkt prima alleen nu hoef ik alleen maar op login te klikken zonder invoer??
Nog maar eens wat uurtjes aan besteden, maar hulp is welkom. gr henk.
code dat login.php aanroept.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Remote</title>
</head>
<body>
<?php
if ($_SERVER['REQUEST_METHOD'] != "POST")
require("login.php");
if (isset($_POST['actie']))
{
// Uit te voeren actie bepalen:
$actie = $_POST['actie'];
if ($actie == "Lamp 1 aan")
{
echo 'Lamp is aan!';
}
}
?>
<form method="post"action="<? echo $_SERVER['PHP_SELF']; ?>">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td align="center" nowrap>
<input class="knop " name="actie" type="submit" value="Lamp 1 aan">
</td>
</tr>
</table>
</form>
</body>
</html>
----------------
login.php
----------------
<?
// Associatieve array met gebruikers (gebruikersnaam => wachtwoord):
$gebruikers = array(
"Administrator" => "test123",
"henk" => "test456",
"user" => "test789"
// enzovoorts ...
);
// Gebruikersnaam en wachtwoord controleren:
if (isset($_REQUEST['gn'])) {
// Gebruikersnaam lezen uit een formulier of cookie:
if (isset($_POST['gn'])) {
$gebruikersnaam = $_POST['gn'];
} elseif (isset($_COOKIE['gn'])) {
$gebruikersnaam = $_COOKIE['gn'];
} else {
inloggen();
}
$gebruikersnaam = trim(strip_tags($gebruikersnaam));
// Controleren of de gebruikersnaam bestaat:
if (array_key_exists($gebruikersnaam, $gebruikers)) {
// Wachtwoord lezen uit een formulier of cookie:
if (isset($_POST['ww'])) {
$wachtwoord = $_POST['ww'];
} elseif (isset($_COOKIE['ww'])) {
$wachtwoord = $_COOKIE['ww'];
} else {
inloggen($gebruikersnaam);
}
$wachtwoord = trim(strip_tags($wachtwoord));
// Het wachtwoord bij deze gebruikersnaam controleren:
if ($gebruikers[$gebruikersnaam] == $wachtwoord) {
// Cookie verloopt na 30 dagen = 2592000 seconden:
$verloopt_op = time() + 2592000;
// Gebruikersnaam opslaan in een cookie:
setcookie("gn", $gebruikersnaam, $verloopt_op);
// Wachtwoord naar keuze opslaan in een cookie:
if (isset($_POST['wo'])) {
if ($_POST['wo'] == 1) {
setcookie("ww", $wachtwoord, $verloopt_op);
}
}
} else {
inloggen($gebruikersnaam);
}
} else {
inloggen($gebruikersnaam);
}
} else {
inloggen();
}
//echo "<script>location.href='remote.php'</script>";
// Webpagina met een formulier en instructies weergeven:
function inloggen($gebruikersnaam = '')
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="nl">
<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
<link href="windows.css" rel="stylesheet" type="text/css">
</head>
<body lang="nl">
<h1>Inloggen</h1>
<p>De pagina die u probeert te openen, is uitsluitend toegankelijk voor geregistreerde gebruikers.<br>
Voer uw gebruikersnaam en wachtwoord in en klik op Inloggen.</p>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td>
<label for="gn"><span style="text-decoration: underline">G</span>ebruikersnaam:</label>
</td>
</tr>
<tr>
<td><input accesskey="g" id="gn" name="gn" type="text" value="<?php echo $gebruikersnaam; ?>"></td>
</tr>
<tr>
<td>
<label for="ww"><span style="text-decoration: underline">W</span>achtwoord:</label>
</td>
</tr>
<tr>
<td><input accesskey="w" id="ww" name="ww" type="password"></td>
</tr>
<tr>
<td>
<label for="wo">
<input accesskey="s" id="wo" name="wo" type="checkbox" value="1"> Wachtwoord op<span style="text-decoration: underline">s</span>laan
</label>
</td>
</tr>
<tr>
<td><input class="knop" type="submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php
exit;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Remote</title>
</head>
<body>
<?php
if ( $_SERVER [ 'REQUEST_METHOD' ] != "POST" )
require ( "login.php" ) ;
if ( isset ( $_POST [ 'actie' ] ) ) {
// Uit te voeren actie bepalen:
$actie = $_POST [ 'actie' ] ;
if ( $actie == "Lamp 1 aan" )
{
}
}
?>
<form method="post"action="
<? echo $_SERVER [ 'PHP_SELF' ] ; ?> ">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td align="center" nowrap>
<input class="knop " name="actie" type="submit" value="Lamp 1 aan">
</td>
</tr>
</table>
</form>
</body>
</html>
----------------
login.php
----------------
<?
// Associatieve array met gebruikers (gebruikersnaam => wachtwoord):
"Administrator" => "test123" ,
"henk" => "test456" ,
"user" => "test789"
// enzovoorts ...
) ;
// Gebruikersnaam en wachtwoord controleren:
if ( isset ( $_REQUEST [ 'gn' ] ) ) { // Gebruikersnaam lezen uit een formulier of cookie:
if ( isset ( $_POST [ 'gn' ] ) ) { $gebruikersnaam = $_POST [ 'gn' ] ;
} elseif ( isset ( $_COOKIE [ 'gn' ] ) ) { $gebruikersnaam = $_COOKIE [ 'gn' ] ;
} else {
inloggen( ) ;
}
// Controleren of de gebruikersnaam bestaat:
// Wachtwoord lezen uit een formulier of cookie:
if ( isset ( $_POST [ 'ww' ] ) ) { $wachtwoord = $_POST [ 'ww' ] ;
} elseif ( isset ( $_COOKIE [ 'ww' ] ) ) { $wachtwoord = $_COOKIE [ 'ww' ] ;
} else {
inloggen( $gebruikersnaam ) ;
}
// Het wachtwoord bij deze gebruikersnaam controleren:
if ( $gebruikers [ $gebruikersnaam ] == $wachtwoord ) {
// Cookie verloopt na 30 dagen = 2592000 seconden:
$verloopt_op = time ( ) + 2592000 ; // Gebruikersnaam opslaan in een cookie:
setcookie ( "gn" , $gebruikersnaam , $verloopt_op ) ; // Wachtwoord naar keuze opslaan in een cookie:
if ( isset ( $_POST [ 'wo' ] ) ) { if ( $_POST [ 'wo' ] == 1 ) {
}
}
} else {
inloggen( $gebruikersnaam ) ;
}
} else {
inloggen( $gebruikersnaam ) ;
}
} else {
inloggen( ) ;
}
//echo "<script>location.href='remote.php'</script>";
// Webpagina met een formulier en instructies weergeven:
function inloggen( $gebruikersnaam = '' )
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="nl">
<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
<link href="windows.css" rel="stylesheet" type="text/css">
</head>
<body lang="nl">
<h1>Inloggen</h1>
<p>De pagina die u probeert te openen, is uitsluitend toegankelijk voor geregistreerde gebruikers.<br>
Voer uw gebruikersnaam en wachtwoord in en klik op Inloggen.</p>
<form action="
<?php echo $_SERVER [ 'SCRIPT_NAME' ] ; ?> " method="POST">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td>
<label for="gn"><span style="text-decoration: underline">G</span>ebruikersnaam:</label>
</td>
</tr>
<tr>
<td><input accesskey="g" id="gn" name="gn" type="text" value="
<?php echo $gebruikersnaam ; ?> "></td>
</tr>
<tr>
<td>
<label for="ww"><span style="text-decoration: underline">W</span>achtwoord:</label>
</td>
</tr>
<tr>
<td><input accesskey="w" id="ww" name="ww" type="password"></td>
</tr>
<tr>
<td>
<label for="wo">
<input accesskey="s" id="wo" name="wo" type="checkbox" value="1"> Wachtwoord op<span style="text-decoration: underline">s</span>laan
</label>
</td>
</tr>
<tr>
<td><input class="knop" type="submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php
}
?>
timo - 11/02/2006 11:27
PHP ver gevorderde
haal die exit; onderaan je script eens weg... want zo krijg je dat als je het script uitvoert en die functie hij op het eind van de functie (wat eigenlijk alleen maar HTML is) de pagina beeindigd
descartes - 11/02/2006 13:08
Nieuw lid
@Timo, geprobeerd, maar nu start hij dus direct op, hoef ik helemaal niet meer in te loggen zie 2x inlogscherm en dan direct het beveiligde gedeelte.? gr
Gesponsorde links
Dit onderwerp is gesloten .