require_once niet once probleem?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Remote</title>
</head>
<body>
Code (php)
<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'login.inc.php'
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?
// 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 = '')
{
?>
// 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="" 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=""></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>
waar haal jij inloggen() vandaan?
include ("include.inc.php") vind ie nie fijn
Je hebt geen if om de require_once(), dus zal hij altijd één keer aangeroepen. Dit betekent echter niet dat als je de pagina refresht, dan ie het dan opeens niet meer request. Het gaat om "once per script".
PHPerik:
Je hebt geen if om de require_once(), dus zal hij altijd één keer aangeroepen. Dit betekent echter niet dat als je de pagina refresht, dan ie het dan opeens niet meer request. Het gaat om "once per script".
Ok, dus als ik refresch, gaat i weer opnieuw? dus dit gaat niet werken? of kan ik wat met if zoals je zegt? variabele opnemen of zo? thanks
Erik:
waar haal jij inloggen() vandaan?
Uit een boek om PHP te leren, PHP5 van easy computing. of bedoel je dit niet? gr
Ik denk dat je kunt aannemen dat deze functie gedefinieerd wordt in de geincludeerde file.
Toevallig las ik dezelfde vraag ook op PHPfreakz en weet ik dus dat het probleem ligt bij het feit dat topicstarter denkt dat er na een submit niet nogmaals geinclude wordt, omdat het 'require_once' is.
Oplossing:
Erik:
Ik zie nergens de functie inloggen staan maar je roept hem wel opeens aan.
Hier toch,
// Webpagina met een formulier en instructies weergeven:
function inloggen($gebruikersnaam = '')
{
dit werkt prima maar als ik dan in het andere PHP bestand op de button klik, krijg ik een refresh en pakt hij de inlog php ook weer opnieuw. ? gr
PHPerik:
@Erik
Ik denk dat je kunt aannemen dat deze functie gedefinieerd wordt in de geincludeerde file.
Toevallig las ik dezelfde vraag ook op PHPfreakz en weet ik dus dat het probleem ligt bij het feit dat topicstarter denkt dat er na een submit niet nogmaals geinclude wordt, omdat het 'require_once' is.
Oplossing:
Ik denk dat je kunt aannemen dat deze functie gedefinieerd wordt in de geincludeerde file.
Toevallig las ik dezelfde vraag ook op PHPfreakz en weet ik dus dat het probleem ligt bij het feit dat topicstarter denkt dat er na een submit niet nogmaals geinclude wordt, omdat het 'require_once' is.
Oplossing:
Ok mooi, waar mag ik dit plaatsen? thanks engr
dat plaats je voor je if(isset($_POST[]))
Erik:
dat plaats je voor je if(isset($_POST[]))
OK Erik, dit werkt dus perfect, thanks, mijn weekend is goed(;>)
de code nu,
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Remote</title>
</head>
<body>
Code (php)
<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>
Erik:
dat plaats je voor je if(isset($_POST[]))
Erik, dit werkt dus prima maar als ik nu op inloggen klik zonder gebruikersnaam en password in te vullen, kan ik zo naar binnen? Hij luistert niet meer naar login. Cookies waren verwijderd. met dat oude
gaat het wel goed maar dan het oude verhaal weer?
nog een ideetje? gr,
Gewijzigd op 10/02/2006 16:32:00 door Henk
wes:
Waar heb je die kennis vandaan? In phpMyAdmin (om maar even een gek voorbeeld te noemen) wordt gebruik gemaakt van config.header.inc.php (3 punten) en dat is toch echt geen probleem...sowieso geen dubbele . . in je bestandsnamen.
include ("include.inc.php") vind ie nie fijn
include ("include.inc.php") vind ie nie fijn
Dus kan het idee zijn van blablabla.inc.php dat dit nog veiliger is (is een aanname want ik weet niet waarom je dit doet) of wordt gedacht.
Niets is natuurlijk minder waar en is dit net zo lek als bijv .txt om maar is wat te noemen.
Ik heb dit zo functions.inc.php in een van de eerste lessen van de cursus van Eduvision zo geleerd en daarna de uitleg van wat ik net zeg.
Enfin hier waren effies mijn nog "vroege" frisse gedachtes :)
Wel vind ik het verstandig om in ieder geval de extensie .php te gebruiken. Als iemand dan de naam van de include-file weet en die opvraagt, zal de webserver hem eerst door PHP laten verwerken en niet zomaar de source laten zien. Op die manier hoef je niet bang te zijn dat eventuele wachtwoorden op straat komen te liggen.
" method="POST"> in het login.php script dat het script zonder invoer wordt uitgevoerd. Als ik 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>
<form method="post"action="">
<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
----------------
<!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="" 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=""></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>
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="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>
Code (php)
<form method="post"action="">
<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
----------------
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?
// 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 = '')
{
?>
// 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="" 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=""></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>