Ik wil een parameter meegeven aan een pagina, bijvoorbeeld, test.php?id=winter
If lees de variabele uit met $seizoen = $_GET[“id”]; hoe kan ik de $seizoen overal, functies etc. Beschikbaar houden? Wellicht een domme vraag. Maar ik ben benieuwd.
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.
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\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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.
Zet je errors eens aan.
<?php
# error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
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

    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.
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?
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?
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!
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();
hoi San The, had ik ook al gezien. Is aangepast, maar ja....

Reageren