Jan te Pas op 19/08/2017 13:59:23
In het formulier zit wel een <input type="submit".. Ik wil zeker zijn
Ja, maar dan wel zonder name="...", dus niet in $_POST.
Link gekopieerd
J
Jan te Pas
19-08-2017 14:07
gewijzigd op 19-08-2017 16:49
ohh San The.... goed gezien! Dank
[size=xsmall]
Toevoeging op 19/08/2017 15:37:42: [/size]
Hallo allen,
De hash moet ik nog gaan aanpassen. Ik heb de nieuwe code:
<?php
# error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<?
// Test tips calender voor insiders
// test met seizoenstips.php?id=winter
//dan krijg je tips van het desbetreffende seizoen
//
//Use this only if you want to password protect your tips.
$password="2017-tips";
/*
*/
// Initialize variables
$password_hash=md5($password);
$error="";
$success="";
$display_message="";
$file_ext=array();
$password_form="";
function seizoen(){
return ($_GET["id"]);
//of: return array_key_exists("id",$_GET) ? $_GET["id"] : null; //check eerst of parameter wel bestaat, anders null
//of (PHP 7): return $_GET["id"] ?? null; //dito, maar nu ingebouwd in PHP
}
// If a password is set, they must login to view tips
If($password) {
//Verify the credentials.
If($_POST['verify_password']==true) {
If(md5($_POST['check_password'])==$password_hash) {
setcookie("vakUploader",$password_hash);
sleep(1); //seems to help some people.
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
}
//Show the authentication form
If($_COOKIE['vakUploader']!=$password_hash) {
$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
$password_form.="\r<br>\n";
$password_form.="<table align=\"center\" class=\"table\">\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Login, voor seizoenstips</td>\n";
$password_form.="</tr>\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"95%\" class=\"table_body\"> Wachtwoord : <input type=\"password\" name=\"check_password\" /></td>\n";
$password_form.="</tr>\n";
$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
$password_form.="<input type=\"submit\" value=\" Login \" />\n";
$password_form.="</td>\n";
$password_form.="</tr>\n";
$password_form.="</table>\n";
$password_form.="</form>\n";
}
} // If Password
If($password_form) {
Echo $password_form;
}else {
//<!-- htmltest; -->
//inlezen parameter vanuit aanroep seizoentips.php?id=. //
$seizoen = seizoen();
//
//alles naar undercast zetten
if ($seizoen !=="") {
$seizoen = strtolower($seizoen);
}
// dan nu kijken wat ingevuld is...
switch ($seizoen):
case 'lente':
include'lente.txt';
break;
case 'zomer':
include'zomer.txt';
break;
case 'herfst':
include'herfst.txt';
break;
case 'winter':
include'winter.txt';
default:
include'niets.txt';
endswitch;
}
?>
En nu toch weer hetzelfde, de parameter, id wordt niet onthouden als ik eerst het wachtwoord heb moeten invullen.
Kortom, graag jullie commentaar.
Link gekopieerd
Zet je errors eens aan.
<?php
# error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
Link gekopieerd
Gedaan, en... ik krijg op scherm:
Notice: Undefined index: verify_password in /home/u692006842/public_html/seizoen2.php on line 30
De zomertips:
[size=xsmall]
Toevoeging op 19/08/2017 16:04:27: [/size]
De test staat op
http://vakantie.pe.hu/seizoen3.php?id=lente
Link gekopieerd
Ariën
19-08-2017 16:04
gewijzigd op 19-08-2017 16:06
if(isset($_POST['verify_password']) && $_POST['verify_password']==true) {
Maar verder vraag ik me af waarom je het wachtwoord in de je cookie zet? Dat is nergens voor nodig, en hackers geef je dan ook prees prijs dan ze moeten weten.
Ik zou liever een sessie maken die aangeeft dat je ingelogd bent.
Link gekopieerd
J
Jan te Pas
19-08-2017 16:07
gewijzigd op 19-08-2017 16:12
Dus dat veroorzaakt de melding en fout? Dan moet ik er echt meer in gaan duiken. Ik leer hierdoor wel. Dank. Ariën, heb jij ook ergens op het web een voorbeeld van zo’n opzet/voorbeeld voor mij?
Link gekopieerd
Kijk eens naar deze URL. Hier worden de basistechnieken van sessions uitgelegd:
https://www.w3schools.com/php/php_sessions.asp
Ik raad aan true in de sessie op te slaan als je correct ingelogd bent.
Verder vraag ik me ook af waarom je het wachtwoord vast in je script opslaat? Hoe wil je het veranderen? En hoe wil je voorkomen dat iemand die geen rechten meer heeft niet meer dit gaat raadplegen.
Is een ledensysteem met in- en uitlog geen betere optie?
Link gekopieerd
Klopt, maar ik wil mij een beetje vertrouwd maken, en dit is een eerste stap. En hoop snel te leren. En wachtwoord in code is zeker niet raadzaam. Dank voor jou richting!
Link gekopieerd
Dit moet ook een error geven:
$seizoen = seizoen;
Omdat seizoen hier als een constante wordt gezien.
Jij wilt een function aanroepen.
Dat doe je zo:
$seizoen = seizoen();
Link gekopieerd
hoi San The, had ik ook al gezien. Is aangepast, maar ja....
Link gekopieerd