include om adminpagina's via inlog te bereiken lukt niet
Ik ben bezig met de cursus php en mysql prof van de Loi. (was ik hier maar nooit aan begonnen, maar met een portie geduld, paar grijze haren erbij, en een laptop die het raam al bijna 239 keer van dichtbij heeft gezien haal ik de eindstreep wel.
Mijn eindopdracht is het maken van een blog systeem met een eigen beheerpagina. Dit is me gelukt, maar nu dacht ik sja zo kan iedereen wel bij de admin komen, dus ik moet hem beveiligen zodat deze alleen voor mij bereikbaar is. Met een log in dus.
Ook dat is me gelukt. Maar op mijn admin pagina staan 4 (links) subpagina's waar ik in kan bewerken of verwijderen etc. Nu lukt het mij niet om ook voor deze pagina's een log in te maken, mocht iemand achter mijn subpagina's naam komen.
Via de include dacht ik dit wel te kunnen regelen. Maar als ik dan de pagina aanroep zie ik EN de bewerk tekst, EN de login. Sja, de Log in moet juist als eerst komen zodat ik daarna naar de bewerkpagina kan.
Ik ben absoluut nog geen prof, werk al 3 weken aan deze opdracht, dus een duwtje in de goede richting is zeer welkom.
Ik heb dit script gebruikt voor de log in http://www.sitemasters.be/scripts/1/4/85/PHP/loginscript_mbv_sessies_v1.2
Nadat ik de database had aangemaakt en ik via de aanmeld.php een wachtwoord gemaakt had heb ik de aanmeld.php hernoemt zodat ik alleen met mijn gebruikersnaam en wachtwoord toegang heb. Als ik zoals er staat op iedere pagina de session.php moet include gebeurt er niks...
Wie kan me een beetje op weg helpen?
Post je script hier dan kunnen we helpen.
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
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
<?php
require("connect.php"); // connectie met database maken en database selecteren
session_start(); // start een sessie of zet een sessie voort
// controleer hier of iemand inlogt - dit moet _voor_ de <HTML>-tag gebeuren gebeuren
if(isset($_POST['login'])) {
if(trim($_POST['naam']) <> "" && trim($_POST['wacht']) <> "") {
// naam en wachtwoord zijn ingevuld. Haal het (versleutelde) wachtwoord en
// het gebruikersniveau dat bij deze gebruikersnaam hoort uit de database op
// en vergelijk dit wachtwoord met het in het formulier opgegeven wachtwoord.
$naam = $_POST['naam'];
$wacht = md5($_POST['wacht']);
$res = mysql_query("SELECT id, pass, level FROM users where name='".$naam."'") or die(mysql_error());
// Als er een resultaat is, oftewel er bestaat een gebruiker met de naam $naam
if(mysql_num_rows($res) > 0) {
$row = mysql_fetch_assoc($res);
// aanname: het wachtwoord in de database is eenmalig gehashed mbv de functie md5()
// vergelijk het opgehaalde wachtwoord met een versleutelde versie van het in het
// formulier opgegeven wachtwoord
if(!strcmp($wacht, $row['pass'])) {
// alle gegevens kloppen
// v1.2 extra functionaliteit, onthouden login
// wil de gebruiker zijn gegevens onthouden ?
if(isset($_POST['memory'])) {
// set cookie (voor 2 maanden) en onthoud het IP
// gebruik hierbij het id van de gebruiker
setcookie("login_cookie", $row['id'].";".$row['pass'], time()+3600*24*31*2, "/");
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("UPDATE users SET last_ip='".$ip."' WHERE id=".$row['id']) or die(mysql_error());
}
// vul sessievariabelen
$_SESSION['suser'] = $naam; // gebruikersnaam van ingelogd persoon
$_SESSION['slevel'] = $row['level']; // bijbehorende gebruikersniveau
$_SESSION['stime'] = time(); // de huidige tijd
$_SESSION['smaxidle'] = 60 * 60; // het aantal seconden inactiviteit
} else {
// wachtwoorden komen niet overeen, breek de sessie weer af
$_SESSION = array();
session_destroy();
}
// geef de resultaten van deze query weer vrij
unset($row);
mysql_free_result($res);
}
// ververs, of de gebruikersnaam/wachtwoord combinatie nou klopt of niet, de pagina
header("Location: login.php");
}
}
?>
require("connect.php"); // connectie met database maken en database selecteren
session_start(); // start een sessie of zet een sessie voort
// controleer hier of iemand inlogt - dit moet _voor_ de <HTML>-tag gebeuren gebeuren
if(isset($_POST['login'])) {
if(trim($_POST['naam']) <> "" && trim($_POST['wacht']) <> "") {
// naam en wachtwoord zijn ingevuld. Haal het (versleutelde) wachtwoord en
// het gebruikersniveau dat bij deze gebruikersnaam hoort uit de database op
// en vergelijk dit wachtwoord met het in het formulier opgegeven wachtwoord.
$naam = $_POST['naam'];
$wacht = md5($_POST['wacht']);
$res = mysql_query("SELECT id, pass, level FROM users where name='".$naam."'") or die(mysql_error());
// Als er een resultaat is, oftewel er bestaat een gebruiker met de naam $naam
if(mysql_num_rows($res) > 0) {
$row = mysql_fetch_assoc($res);
// aanname: het wachtwoord in de database is eenmalig gehashed mbv de functie md5()
// vergelijk het opgehaalde wachtwoord met een versleutelde versie van het in het
// formulier opgegeven wachtwoord
if(!strcmp($wacht, $row['pass'])) {
// alle gegevens kloppen
// v1.2 extra functionaliteit, onthouden login
// wil de gebruiker zijn gegevens onthouden ?
if(isset($_POST['memory'])) {
// set cookie (voor 2 maanden) en onthoud het IP
// gebruik hierbij het id van de gebruiker
setcookie("login_cookie", $row['id'].";".$row['pass'], time()+3600*24*31*2, "/");
$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("UPDATE users SET last_ip='".$ip."' WHERE id=".$row['id']) or die(mysql_error());
}
// vul sessievariabelen
$_SESSION['suser'] = $naam; // gebruikersnaam van ingelogd persoon
$_SESSION['slevel'] = $row['level']; // bijbehorende gebruikersniveau
$_SESSION['stime'] = time(); // de huidige tijd
$_SESSION['smaxidle'] = 60 * 60; // het aantal seconden inactiviteit
} else {
// wachtwoorden komen niet overeen, breek de sessie weer af
$_SESSION = array();
session_destroy();
}
// geef de resultaten van deze query weer vrij
unset($row);
mysql_free_result($res);
}
// ververs, of de gebruikersnaam/wachtwoord combinatie nou klopt of niet, de pagina
header("Location: login.php");
}
}
?>
<html>
<head>
<title>sessies · login</title>
</head>
<body>
Code (php)
<form action="login.php" method="post">
naam <input type="text" name="naam" size="15"><br />
wachtwoord <input type="password" name="wacht" size="15"><br />
<!-- v1.2 extra functionaliteit, login onthouden -->
<input type="checkbox" name="memory" value="1"> onthoud mijn login (gebruikt cookie)<br />
<input type="submit" name="login" value="log in"><br />
</form>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
} else {
// de gebruiker is ingelogd - geef een welkomstboodschap oid
// hier kun je tevens kijken of alle sessievariabelen de goede
// waarden hebben (debugging)
?>
} else {
// de gebruiker is ingelogd - geef een welkomstboodschap oid
// hier kun je tevens kijken of alle sessievariabelen de goede
// waarden hebben (debugging)
?>
Hi <b></b>,<br />
<a href="admin.php">admin</a><br />
<a href="logout.php">uitloggen</a><br />
</body>
</html>
nieuws_bewerk.php (nu zonder inlog scherm dus)
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
58
59
60
61
62
63
64
65
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
58
59
60
61
62
63
64
65
<?php
include("session.php");
include_once("connect.php");
if (isset($_POST['id']) && ctype_digit($_POST['id']))
{
$query = "UPDATE nieuws SET
titel = '". saveInput($_POST["titel"]) ."',
datum = '". saveInput($_POST["datum"]) ."',
bericht = '". saveInput($_POST["bericht"]) . "'
WHERE id=" .saveInput($_POST["id"]);
$res = mysql_query($query) or die ("Fout: " . mysql_error());
if ($res)
{
echo 'Het bericht is bijgewerkt<br /><br />';
}
}
if (isset($_GET['id']))
{
$query = "SELECT * FROM nieuws WHERE id=".$_GET['id'];
$res = mysql_query($query) or die ("Fout: " . mysql_error());
$rij = mysql_fetch_array($res);
echo '
<form action="nieuws_bewerk.php?id='.$_GET['id'].'" method="POST">
<input type="hidden" name="id" value="'.$_GET['id'].'" />
Titel: <input type="text\" name="titel" value="'.$rij['titel'].'" size="30" /><br />
Datum: <input type="text" name="datum" value="'.$rij['datum'].'" size="30" /><br />
Bericht:<br /> <textarea name="bericht" cols="50" rows="20">'.$rij['bericht'].'</textarea><br /><br />
<input type="submit" value="Bewerk" />
<input type="reset" value="Reset" />
</form>
<br /><br />
';
}
$sql = "SELECT * FROM nieuws ORDER BY id DESC";
$res = mysql_query($sql);
echo"<ol>";
while ($gegevens = mysql_fetch_array($res))
{
echo '<li> '.$gegevens['bericht'].'- <a href="nieuws_bewerk.php?id='.$gegevens['id'].'">Bewerk</a></li>';
}
echo"</ol>";
echo"<a href=\"admin.php\">Ga terug naar de admin</a>";
?>
include("session.php");
include_once("connect.php");
if (isset($_POST['id']) && ctype_digit($_POST['id']))
{
$query = "UPDATE nieuws SET
titel = '". saveInput($_POST["titel"]) ."',
datum = '". saveInput($_POST["datum"]) ."',
bericht = '". saveInput($_POST["bericht"]) . "'
WHERE id=" .saveInput($_POST["id"]);
$res = mysql_query($query) or die ("Fout: " . mysql_error());
if ($res)
{
echo 'Het bericht is bijgewerkt<br /><br />';
}
}
if (isset($_GET['id']))
{
$query = "SELECT * FROM nieuws WHERE id=".$_GET['id'];
$res = mysql_query($query) or die ("Fout: " . mysql_error());
$rij = mysql_fetch_array($res);
echo '
<form action="nieuws_bewerk.php?id='.$_GET['id'].'" method="POST">
<input type="hidden" name="id" value="'.$_GET['id'].'" />
Titel: <input type="text\" name="titel" value="'.$rij['titel'].'" size="30" /><br />
Datum: <input type="text" name="datum" value="'.$rij['datum'].'" size="30" /><br />
Bericht:<br /> <textarea name="bericht" cols="50" rows="20">'.$rij['bericht'].'</textarea><br /><br />
<input type="submit" value="Bewerk" />
<input type="reset" value="Reset" />
</form>
<br /><br />
';
}
$sql = "SELECT * FROM nieuws ORDER BY id DESC";
$res = mysql_query($sql);
echo"<ol>";
while ($gegevens = mysql_fetch_array($res))
{
echo '<li> '.$gegevens['bericht'].'- <a href="nieuws_bewerk.php?id='.$gegevens['id'].'">Bewerk</a></li>';
}
echo"</ol>";
echo"<a href=\"admin.php\">Ga terug naar de admin</a>";
?>
session.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
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
<?php
session_start(); // start een sessie of zet een sessie voort
// als de gebruiker is ingelogd
if(isset($_SESSION['suser'])) {
// het volgende timeout deel is optioneel - dit mag worden weggelaten
// * timeout gedeelte *
$now = time();
// als er meer tijd is verstreken dan smaxidle
// sinds het aanmaken van de sessie
if($now - $_SESSION['stime'] > $_SESSION['smaxidle']) {
// breek de sessie af, de gebruiker dient opnieuw in te loggen
$_SESSION = array();
session_destroy();
} else {
// ververs anders de sessietijd. Dit zorgt er voor
// dat de gebruiker ingelogd blijft zolang deze actief is.
$_SESSION['stime'] = $now;
}
// * einde timeout gedeelte *
// v1.2 extra functionaliteit, onthouden login
} elseif(isset($_COOKIE['login_cookie'])) {
// bekijk de waarden van de cookie en als deze kloppen met de database - start alsnog een sessie
// aanname - er is een verbinding met de database
list($id, $wacht) = split(";", $_COOKIE['login_cookie']);
$res = mysql_query("SELECT id, pass, level, last_ip FROM users WHERE id='".$id."'") or die(mysql_error());
if(mysql_num_rows($res) > 0) {
$row = mysql_fetch_assoc($res);
if(!strcmp($wacht, $row['pass']) && $_SERVER['REMOTE_ADDR'] == $row['last_ip']) {
// init session
$_SESSION['suser'] = $naam;
$_SESSION['slevel'] = $row['level'];
$_SESSION['stime'] = time();
$_SESSION['smaxidle'] = 60 * 60;
// update cookie
// gebruik hierbij wederom het id en het versleutelde wachtwoord
setcookie("login_cookie", $id.";".$wacht, time()+3600*24*31*2, "/");
} else {
// password of ip komt niet overeen - unset het cookie en beeindig de sessie
setcookie("login_cookie", "", time(), "/");
$_SESSION = array();
session_destroy();
}
// geef resultaten vrij
unset($row);
mysql_free_result($res);
} else {
// gebruiker onbekend, cookie vervalst ?
$_SESSION = array();
session_destroy();
}
// ververs de pagina
header("Location: ".$_SERVER['REQUEST_URI']);
}
?>
session_start(); // start een sessie of zet een sessie voort
// als de gebruiker is ingelogd
if(isset($_SESSION['suser'])) {
// het volgende timeout deel is optioneel - dit mag worden weggelaten
// * timeout gedeelte *
$now = time();
// als er meer tijd is verstreken dan smaxidle
// sinds het aanmaken van de sessie
if($now - $_SESSION['stime'] > $_SESSION['smaxidle']) {
// breek de sessie af, de gebruiker dient opnieuw in te loggen
$_SESSION = array();
session_destroy();
} else {
// ververs anders de sessietijd. Dit zorgt er voor
// dat de gebruiker ingelogd blijft zolang deze actief is.
$_SESSION['stime'] = $now;
}
// * einde timeout gedeelte *
// v1.2 extra functionaliteit, onthouden login
} elseif(isset($_COOKIE['login_cookie'])) {
// bekijk de waarden van de cookie en als deze kloppen met de database - start alsnog een sessie
// aanname - er is een verbinding met de database
list($id, $wacht) = split(";", $_COOKIE['login_cookie']);
$res = mysql_query("SELECT id, pass, level, last_ip FROM users WHERE id='".$id."'") or die(mysql_error());
if(mysql_num_rows($res) > 0) {
$row = mysql_fetch_assoc($res);
if(!strcmp($wacht, $row['pass']) && $_SERVER['REMOTE_ADDR'] == $row['last_ip']) {
// init session
$_SESSION['suser'] = $naam;
$_SESSION['slevel'] = $row['level'];
$_SESSION['stime'] = time();
$_SESSION['smaxidle'] = 60 * 60;
// update cookie
// gebruik hierbij wederom het id en het versleutelde wachtwoord
setcookie("login_cookie", $id.";".$wacht, time()+3600*24*31*2, "/");
} else {
// password of ip komt niet overeen - unset het cookie en beeindig de sessie
setcookie("login_cookie", "", time(), "/");
$_SESSION = array();
session_destroy();
}
// geef resultaten vrij
unset($row);
mysql_free_result($res);
} else {
// gebruiker onbekend, cookie vervalst ?
$_SESSION = array();
session_destroy();
}
// ververs de pagina
header("Location: ".$_SERVER['REQUEST_URI']);
}
?>
Welk php script moeten jullie nog meer zien?
Hier van de nieuws blog waar de link staat admin waar als je erop klikt wel de inlog pagina krijgt..
<body style="color: #000; border-top-color: #FFF; border-color: #FFF; outline-color: #F69;"><FONT FACE="NIFTY FONT"><FONT SIZE=5><FONT COLOR="#2C2C2C">
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
include_once("connect.php");
if(@is_numeric($_GET['max'])) $max = $_GET['max'];
if(@is_numeric($_GET['start'])) $start = $_GET['start'];
if (empty($max)) $max = $standaardMax;
if (empty($start)) $start = 0;
$end = $start + $max;
$prev = $start - $max;
$next = $end;
$query = mysql_query("SELECT id,datum,bericht,titel,img FROM nieuws ORDER BY id DESC LIMIT $start, $max") or die (mysql_error());
$num = mysql_num_rows($query);
if (empty($num))
{
echo "<p>Er zijn geen nieuwsberichten.</p>";
}
else
{
while ($result = mysql_fetch_row($query))
{
if($klikbaar == 1)
{
$front = '<a href="'.$result[4].'" target="_BLANK">';
$back = '</a>';
}
else
{
$front = '';
$back = '';
}
echo '<table border="1px" width="500px">
<tr><td bgcolor="#FFF"><span style="color:#FFF;"> '.$result[1].' | '.$result[3].'</span><br /></td></tr>
<tr><td>'.$front.'<img src="'.$result[4].'" height="'.$hoogte.'" width="'.$breedte.'" style="border: 1px solid black;" align="left">'.$back.'<p align="left">'.nl2br($result[2]).'</p></td></tr>
</table>';
}
echo "<p>\n";
if ($prev >= '0')
{
echo "[<a href=\"nieuws.php?start=$prev&max=$max\">Vorige</a>]\n";
} else {
echo "[Vorige]\n";
}
$count = mysql_fetch_row(mysql_query("SELECT count(*) FROM nieuws"));
$thispage = ceil($start/$max+1);
if ($count[0] > $max)
{
$total = ceil($count[0]/$max);
for($i=0;$i<$total;$i++)
{
$number = $i+1;
$start = $i*$max;
if ($thispage == $number)
{
echo "<strong>[<a href=\"nieuws.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>]</strong>\n";
} else {
echo "<a href=\"nieuws.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>\n";
}
}
}
if ($count[0] > $next)
{
echo "[<a href=\"nieuws.php?start=$next&max=$max\">Volgende</a>]\n";
} else {
echo "[Volgende]\n";
}
echo "</p>\n";
}
echo "[<a href=\"login.php?start=$prev&max=$max\">[admin login]"
?>
include_once("connect.php");
if(@is_numeric($_GET['max'])) $max = $_GET['max'];
if(@is_numeric($_GET['start'])) $start = $_GET['start'];
if (empty($max)) $max = $standaardMax;
if (empty($start)) $start = 0;
$end = $start + $max;
$prev = $start - $max;
$next = $end;
$query = mysql_query("SELECT id,datum,bericht,titel,img FROM nieuws ORDER BY id DESC LIMIT $start, $max") or die (mysql_error());
$num = mysql_num_rows($query);
if (empty($num))
{
echo "<p>Er zijn geen nieuwsberichten.</p>";
}
else
{
while ($result = mysql_fetch_row($query))
{
if($klikbaar == 1)
{
$front = '<a href="'.$result[4].'" target="_BLANK">';
$back = '</a>';
}
else
{
$front = '';
$back = '';
}
echo '<table border="1px" width="500px">
<tr><td bgcolor="#FFF"><span style="color:#FFF;"> '.$result[1].' | '.$result[3].'</span><br /></td></tr>
<tr><td>'.$front.'<img src="'.$result[4].'" height="'.$hoogte.'" width="'.$breedte.'" style="border: 1px solid black;" align="left">'.$back.'<p align="left">'.nl2br($result[2]).'</p></td></tr>
</table>';
}
echo "<p>\n";
if ($prev >= '0')
{
echo "[<a href=\"nieuws.php?start=$prev&max=$max\">Vorige</a>]\n";
} else {
echo "[Vorige]\n";
}
$count = mysql_fetch_row(mysql_query("SELECT count(*) FROM nieuws"));
$thispage = ceil($start/$max+1);
if ($count[0] > $max)
{
$total = ceil($count[0]/$max);
for($i=0;$i<$total;$i++)
{
$number = $i+1;
$start = $i*$max;
if ($thispage == $number)
{
echo "<strong>[<a href=\"nieuws.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>]</strong>\n";
} else {
echo "<a href=\"nieuws.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>\n";
}
}
}
if ($count[0] > $next)
{
echo "[<a href=\"nieuws.php?start=$next&max=$max\">Volgende</a>]\n";
} else {
echo "[Volgende]\n";
}
echo "</p>\n";
}
echo "[<a href=\"login.php?start=$prev&max=$max\">[admin login]"
?>
Hoop dat ik de goede heb doorgegeven
grtz
Toevoeging op 20/02/2011 19:55:33:
Oei, dat ziet er raar uit ...:-)
Ik wil niet lullig doen, maar dat bovenste script heeft u niet zelf gemaakt. Misschien kan u dit eerst doen, dat maakt heel wat duidelijk voor u zelf :-).
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
if(!isset($_SESSION['ID'])) {
include('login.php');
}
else
{
HIER HET SCRIPT
?>
session_start();
if(!isset($_SESSION['ID'])) {
include('login.php');
}
else
{
HIER HET SCRIPT
?>
Gewijzigd op 20/02/2011 20:03:21 door Wesley PHP
Dat klopt idd, zoals ik al zei heb ik daar een script voor gebruikt, daar de cursus loi niet strookt met de laatste opdracht van de cursus, laat staan alle opdrachten. Wat moet je dan? Internet gebruiken. Ik herken wel wat er staat, maar om er nu al zelf mee op de proppen te komen zo uit het niets, nee dat lukt niet. En dan noemen ze dat een prof cursus.
Als deze opdracht af is, leer ik verder wel via internet:-).
wat ik alleen moet weten is, sja hoe krijg ik op een bepaalde pagina 1st
Toevoeging op 20/02/2011 20:05:43:
een inlog en daarna pas de pagina die ik wil hebben..dat lukt nu niet.
I know I know...maar sja heb t wel allemaal zelf bijelkaar gezocht :-)
Toevoeging op 20/02/2011 20:07:51:
Dank je Wesley,
Ik ga eens proberen.
Script is ook niet veilig. SQL-Injection is mogelijk.
:Notice: A session had already been started - ignoring session_start() in C:\Users\Claudia\Desktop\root\nieuws\login.php on line 4
Maar goed die(line 4 login.php) kan ik niet daar weghalen, dan kan ik niet meer inloggen.
Ik krijg dus nu wel als 1st het inlog scherm, maar kan vervolgens die pagina niet meer gebruiken om te bewerken, om die melding.
Als ik een session met id toevoeg in de login.php (zoals jij verteld) krijg ik deze melding
Fatal error: Cannot redeclare saveinput() (previously declared in C:\Users\Claudia\Desktop\root\nieuws\connect.php:28) in C:\Users\Claudia\Desktop\root\nieuws\connect.php on line 31
Iets, of veel doe ik nog niet goed.
grtz
Toevoeging op 20/02/2011 20:46:51:
- SanThe - op 20/02/2011 20:13:04:
Script is ook niet veilig. SQL-Injection is mogelijk.
Om deze opdracht tot een goed einde te brengen is dat ook niet nodig, mocht ik deze online gaan zetten zal ik daar zeker op gaan letten. Het is gewoon jammer dat dit nu onze laatste opdracht is, daar onze kennis er nog niet toe reikt. Had al eerder een meid met hetzelfde probleem op dit forum gevonden, ook niet tevreden over het lessysteem. Maar ik zal maar niet teveel klagen, daar er misschien een leraar op dit forum zit:-).
Ben in ieder geval al vanaf 9.00 uur vanmorgen zoet met dit spul..
respect voor alle php'rs hoop ook ooit zo goed te worden.
Blijven oefenen danckom je er vanzelf en die 1e error heb je ergens een session_start(); teveel
Wesley PHP op 20/02/2011 21:04:47:
Blijven oefenen danckom je er vanzelf en die 1e error heb je ergens een session_start(); teveel
thxn voor de tip, ik ga verder OEFENEN lees grijze haren kweken :-).
Claudia Hoogmoed op 20/02/2011 20:43:44:
Fatal error: Cannot redeclare saveinput() (previously declared in C:\Users\Claudia\Desktop\root\nieuws\connect.php:28) in C:\Users\Claudia\Desktop\root\nieuws\connect.php on line 31
Je hebt de functie saveinput() 2 keer. Op lijn 28 en lijn 31 in connect.php
Gewijzigd op 20/02/2011 21:44:47 door Jasper DS
Veel succes dan :)
Over de SQL injection en je antwoord daarop. Eigenlijk mag je zo niet denken. Veiligheid zou bovenaan je lijst met dingen te doen moeten staan. Of het je veel punten kost weet ik niet. Ze controleren of het werkt en lopen even door je script gok ik. Ik vondt de uitwerkingen die ik terug kreeg eigenlijk best slecht. Het leek er niet op dat ze echt de moeite namen om het goed na te kijken, of niet wisten hoe.
Mag ik vragen wat de gemiddelde beoordeling is dat ze je tot nu toe hebben gegeven? Ze beoordelen veels te soepel naar mijn mening.
Ik hoor dat de PHP cursus van de LOI ook al tegenvalt. Mijn kleine zusje wou de cursus "website maken" doen. Eerst zo'n probeerpakket, ik heb het bekeken en terug in de envelop gedaan. Voor dat geld leer ik mijn zusje graag even hoe HTML werkt. En raad eens: ze is al met PHP bezig. Al doende leer men was het toch??
Kun je geen pluspunten krijgen als het script veilig is?
Gewijzigd op 21/02/2011 01:31:41 door - Mark -
Quote:
I know I know...maar sja heb t wel allemaal zelf bijelkaar gezocht :-)
En daar is helemaal niks mis mee want dat doen we allemaal. Google is your friend. Later komt het stadium dat je bij jezelf gaat zoeken 'goh op welke site had ik dat en dat ook weer gedaan..'
Wat Wesley zegt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
if(!isset($_SESSION['ID'])) {
include('login.php');
}
else
{
HIER HET SCRIPT
?>
session_start();
if(!isset($_SESSION['ID'])) {
include('login.php');
}
else
{
HIER HET SCRIPT
?>
Je moet voor jezelf even nagaan of het login gebeuren bij jou een aparte (eerste) pagina is. In dat geval kun je ipv include('login.php') beter een header redirect naar je login pagina doen:
header('Location: loginpage.php');
Maakt het in opzet iets gemakkelijker dan een include van een login-gedeelte.
Wat dingetjes die ik zie in je html:
-wen je eraan om html tags en attributen lowercase te schrijven, dus niet method="POST" maar "post".
Bovenstaande is inmiddels achterhaalde html (depreciated). Dit soort stijlinformatie geef je beter via css.
Het is table border="1" width="500". De px wordt verondersteld maar moet je hier niet meegeven. In css weer wel overigens.
- geef je html een DOCTYPE mee. In jouw geval kun je het beste xhtml transitional gebruiken, en niet xhtml strict want er staan wat dingen in die strict niet pikt (target="_blank" bijv.)
- ook een grote vriend is:
http://validator.w3.org/
kun je je code controleren via ingeven van je url's of de gegenereerde (dus niet je php-pagina zelf..) html code.
Succes
Om op de vraag te reageren wat me gemiddeld cijfer tot nu toe is voor de opdrachten:
8.
Commentaar krijg ik wel van de leraar, gewoon in het document zelf.
Ik merk ook al door te google'n dat de werkwijze uit het boek achterhaald is, want in feite moest ik de tekst in een php array maken, en dat is niet meer van deze tijd toch?
Afijn, ik zal jullie de opdracht niet onthouden, wellicht ben ik veel te UITGEBREID bezig :-)
Bedankt voor de tips, ga er vanavond mee aan de slag.
Waarom doe ik deze cursus, ik ben aan het omscholen omdat ik nu nog werkzaam ben bij tnt, en deze meer dan 20.000 personen eruit willen gooien. Naast deze curusu ben ik ook DTP met cs4 aan het volgen. Maar idd zoals er al gezegd wordt deze opleiding lijkt me geen goede pr voor de php wereld, er zijn dan ook maar heel weining mensen ermee bezig, want op het php loi forum is geen leven:-)
DE OPDRACHT:
Voor de eindopdracht maakt u een blogging programma.
De bedoeling van het bloggingprogramma is, dat er een webpagina wordt getoond, met daarop een presentatie van uw blog.
Maak voor de presentatie van uw blog gebruik van html tabellen, waarin u de blog weergeeft. Plaats de inhoud van uw blog hiervoor in een php array. Maak waar mogelijk ook gebruik van functies.
Naast deze blog pagina heeft u een beheerspagina, waarin u de nieuwe blogs kunt toevoegen, en oude blogs kunt bewerken of verwijderen. Voor een voorbeeld van een blog kunt u kijken op de volgende websites:
http://nl.wikipedia.org/wiki/Blog
http://www.gorissen.info/Pierre/
http://googleblog.blogspot.com/
Ik heb even alles terug gezet zonder log in script, waarschijnlijk is dit login script niet geschikt voor mijn weblog script. Omdat ik via mijn admin.php op 3 linken kan klikken, een bewerk een verwijder en een toevoeg.php om de blog bij te werken. Het zou van de zotte zijn als ik zelf op iedere pagina moet inloggen.
Eigenlijk zou ik het admin gedeelte in 1 stuk moeten hebben, zodat ik maar 1 keer hoef in te loggen. Heeft iemand een idee, want volgens mij ben ik te omslachtig bezig.
Kan ik de desbetreffende pagina's niet voor mezelf afschermen op mijn ftp. Ik had iets gelezen over htacces..
Iddeeen en suggesties zijn welkom, ik zal even mijn admin.php posten.
admin.php
- <a href="nieuws.php">Nieuws</a><br />
- <a href="nieuws_nieuw.php">Nieuws toevoegen</a><br />
- <a href="nieuws_bewerk.php">Nieuws bewerken</a><br />
- <a href="nieuws_verwijderen.php">Nieuws verwijderen</a><br />
greetz Claudia
http://www.gorissen.info/Pierre/ is toch niet van je docent (als je die hebt?)?
Die Karl Karl op 22/02/2011 10:56:50:
Die http://www.gorissen.info/Pierre/ is toch niet van je docent (als je die hebt?)?
Ik mag hopen van niet, want dit is of wordpress of joomla..:-)
Claudia Hoogmoed op 22/02/2011 19:04:00:
Ik mag hopen van niet, want dit is of wordpress of joomla..:-)
Karl Karl op 22/02/2011 10:56:50:
Die http://www.gorissen.info/Pierre/ is toch niet van je docent (als je die hebt?)?
Ik mag hopen van niet, want dit is of wordpress of joomla..:-)
Ja, precies, daarom zou ik dat wel stom vinden.