Login formulier

Status
Niet open voor verdere reacties.

pieter53

Gebruiker
Lid geworden
1 jan 2007
Berichten
297
Afgelopen dagen, met vallen en opstaan, een login gemaakt.
Aangezien ik niet meer dan drie gebruikers verwacht, is er geen database gebruikt.
Een aantal test gedaan en alles lijkt naar behoren te functioneren.

Het begint met start.php
PHP:
<?php 
session_start(); 
$gebruiker = $wwoord = $melding = "" ;

$reg = array('Pietje' => 'Puk','Jan' => 'Klaassen','session' => '007');

		IF (isset($_GET['gebruiker']) AND  (isset($_GET['wwoord']))){
				$gebruiker = $_GET['gebruiker'];
				$wwoord = $_GET['wwoord'];
			
			IF (array_key_exists($gebruiker,$reg) AND ($reg[$gebruiker] == $wwoord)){
				$_SESSION['session']= "007";
				header("location:db-input.php");
				exit;
				
			} else {
				$melding="<b>FOUT, probeer het opnieuw</b>";
				include "start2.php";
			}
		} else {
			include "start2.php";
		}
?>

Nu had ik die "start2" graag in het zelfde bestand gehad, maar dat lukte me maar niet.
Dus heb ik maar een include gebruikt.
start2.php is dan als volgt:

HTML:
<!DOCTYPE html> 
<html lang="nl"> 
<head>
<meta charset="utf-8">
<title>Database start</title>
<meta name="author" content="P.Klein">
<meta name="keywords" content="binnenvaart">
<meta name="description" content="Admin">
<meta name="viewport" content="width=device-width, initial-scale=1.0">  
<link rel="stylesheet" type="text/css" href="../extra-filesvb/algemeen.css">

</head>
<body>
<div class="tekst">

<form action="start.php" method="get" class="txt-afb">
  <table width="350" border="0" cellpadding="5" cellspacing="5">
    
  <tr>
    <td colspan="2" style="text-align:center;"><h2>Inloggen!</h2>
    <?php 
		if(isset($melding)){ 
			echo "<br>".$melding;
		} 
	?>
	</td>
	</tr>
    <tr>
      <td style="text-align:right;" valign="top">gebruiker</td>
      <td><input type="text" id="gebruiker" name="gebruiker" size="20"></td>
    </tr>
    <tr>
      <td style="text-align:right;">wwoord</td>
      <td><input type="text" id="wwoord" name="wwoord" size="20"></td>
    </tr>
    <tr>
      <td> </td>
      <td><input type="submit" value="Start"></td>
    </tr>
  </table>
</form>


</div>
 </body>
 </html>

De contôle op de bestanden waarmee de database werkt is dan

PHP:
<?php 
session_start();
if(!isset($_SESSION['session'])){
	header("location:start.php");
exit;
}
?>

De logout is.
PHP:
<?php session_start(); 
session_destroy(); 
header("location:index.php");
exit;
?>

Wanneer nu iemand met de vraag zit waarom ik dit zo en niet anders gedaan heb,
dan is het simpele antwoord: "Dit kreeg ik werkend, andere methodes niet (helaas)".
 
Laatst bewerkt:
Met $_GET kan iedereen in de url het wachtwoord zien (en dus ook achteraf in de browser geschiedenis). Oplossing
PHP:
<form action="start.php" method="get" class="txt-afb">

Over de layout. Een <table> is mobile-onvriendelijk.
 
Met $_GET kan iedereen in de url het wachtwoord zien (en dus ook achteraf in de browser geschiedenis).
Tja, ik ben het vergeten terug te draaien. Het was POST, maar tijdens de testen besloot ik het tijdelijk GET te maken. Gewoon vergeten weer terug te draaien.

Over de layout. Een <table> is mobile-onvriendelijk.
Het is niet de bedoeling dat men vanaf een smartphone de database gaat bewerken.

Ik ben trouwens een tegenstander van het combineren van smartphone en desktop layouts.
Ik krijg een lamme vinger van het scrollen en mijn hele scherm lijkt gevuld met lege ruimtes.
Deze wel eens in een 1024px 'window' op een 26inch scherm gezien?
https://www.stedelijk.nl/nl
Geen gezicht en bovendien bijna geen informatie, gegeven de ruimte die men heeft.
 
Wat is het nut van een session die 007 heet?
 
Ik zou het niet weten Aar.
Eerlijk gezegd, weet ik niet zo heel goed wat 'Session' doet, behalve dan dat het controleert of
de gebruiker ingelogd mag zijn.
Ik heb niet geprobeerd of ik het ook leeg mag laten, bovendien dat staat zo kaal.
 
Ik zou het niet weten Aar.
Eerlijk gezegd, weet ik niet zo heel goed wat 'Session' doet, behalve dan dat het controleert of
de gebruiker ingelogd mag zijn.
Ik heb niet geprobeerd of ik het ook leeg mag laten, bovendien dat staat zo kaal.

Dan zoek je dat toch op?
https://www.w3schools.com/php/php_sessions.asp

Het is een beetje hetzelfde als wat cookies doen. Maar dan wordt de data opgeslagen op de server.
Handig om data tijdelijk te bewaren.
 
Ik ben trouwens een tegenstander van het combineren van smartphone en desktop layouts.
Ik krijg een lamme vinger van het scrollen en mijn hele scherm lijkt gevuld met lege ruimtes.
Deze wel eens in een 1024px 'window' op een 26inch scherm gezien?
Het linkje wat je geeft is geen goede responsive layout. Klik even op het linkje in de footer van dit bericht en maak dan de browser smaller en breder. Dan zie je hoe een responsive layout werkt op verschillende resoluties.

De afmeting van een scherm (inches) heeft niets te maken met de resolutie (ppi) van een scherm :) Als voorbeeld, een 8 inch Full HD tablet (1920x1080) heeft een hogere resolutie dan een grote 22 inch 1680x1050 monitor.
Daarom hoort een website responsive te zijn. In een responsive layout wordt veel met percentages gewerkt, bijvoorbeeld 4 kolommen van 25% breed. Een ander ding in responsive websites is "kolommen stapelen". Bijvoorbeeld 4 kolommen naast elkaar wordt op lagere resolutie 2 rijen van 2 kolommen, en op smartphone komen alle kolommen onder elkaar.
 
@Bron
Ik weet het allemaal, maar bepaalde zaken lenen zich er nu eenmaal niet voor.
Ook zie ik te vaak dat een prettige werkende lay-out om zeep geholpen wordt,
om ook maar op smartphone bruikbaar te zijn.

Zo bijv. bladwijzers in Firefox. Onlangs heeft men omwille van de smartphones
de afstand tussen de items vergroot en nu zit ik dus met lijsten bladwijzers die te lang zijn
voor de pagina en kan ik dus niet meer snel zien waar de bladwijzer staat, want
ik ben verplicht te gaan scrollen. Erg 'responsive' is dat toch eigenlijk ook weer niet.

Trouwens, ik zie door die responsive designs het aantal websites wat niet meer 100%
in orde is alleen maar toenemen helaas.

Het is een leuke techniek, maar geen toverwoord.
Men moet het daar toepassen waar het wat toevoegt aan het gebruik en
het niet klakkeloos toepassen.
 
Een responsive website kan het beste ontwikkeld worden vanaf 'mobile first' basis. Dan ken je alle elementen die wilt gebruiken er kwijt, en dan is de bouw naar groter formaat juist stukken makkelijker als andersom.
 
Trouwens, ik zie door die responsive designs het aantal websites wat niet meer 100%
in orde is alleen maar toenemen helaas.
Dat zijn websites waarin geprobeerd is om een bestaande "desktop layout" met zo weinig mogelijk inspanning geschikt te maken voor smartphone. Meestal door minimale css toe te voegen zodat de layout, alleen op de smartphone van die ene persoon, niet buiten beeld valt. Op zulke websites klopt het wat je aangeeft, gelukkig zijn dergelijke websites niet veel meer te vinden. Het niet 100% in orde zijn en responsive ontwerpen zijn 2 verschillende dingen.

Men moet het daar toepassen waar het wat toevoegt aan het gebruik enhet niet klakkeloos toepassen.
Er is nu zo'n grote diversiteit aan schermresoluties, schermverhoudingen, en apparaten (OS) dat het noodzaak is geworden om deze technieken te gebruiken. Alternatief is om voor honderden apparaten aparte websites te maken maar dat is niet future-proof.

Zo bijv. bladwijzers in Firefox.

Dit is een programma, geen website :D

 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan