Ik heb een tabel in mijn database waarin o.a. volgende kolommen voorkomen: datum type date (slaat de datum op waarop de gebruiker registreert) einddatum type date ( slaat de datum + 7 dagen op). Dit wil ik gebruiken om een eindtijd in te stellen waarbinnen de gebruiker toegang heeft tot bepaalde gegevens. Naam type VarChar
Maar ik wil volgende code gebruiken om op bepaalde pagina's weer te geven Welkom 'Naam persoon' u heeft toegang tot ' einddatum)
Ik gebruik volgende code om de strings te genereren en voor Naam werkt dat maar niet voor de datum.
Ik geraak er niet uit hoe ik dus die einddatum kan omzetten naar een string. Iemand een idee? Ik zie door het bos de bomen niet meer.
Database is MariaDB
@Arien zoals er in de IF staat. Geen schrik paswoord wordt ge-encrypteerd verzonden en ge-encrypteerd opgeslagen.
Als het geëncrypteerd is dan heb je alsnog een serieus veiligheidslek als de sleutel uitlekt.
En verder heeft dit niks in een sessie te doen. Het wachtwoord gebruik je enkel om binnen te komen om je te authenticeren. Daarna niet meer.
En op de vraag als het geen string is wat is het dan wel? Blijkbaar is een type Varchar wel een string en een type date niet.
je slaat het nu als DATE op in de database. Wat moet je uitvoer dan zijn?
@Arien zoals er in de IF staat. Geen schrik paswoord wordt ge-encrypteerd verzonden en ge-encrypteerd opgeslagen.
Geen schrik? Wel schrik! Je hoort helemaal geen wachtwoord op te slaan in een sessie. Je behoort een hash van een wachtwoord op te slaan in de database en je slaat dergelijke informatie NOOIT op in een sessie!! (Ook niet in een cookie of local storage.)
echo $date->format('d M y'); // of welk formaat jij leuk vindt.
?>
Ik zou niet in de query gaan klooien met DATE_FORMAT().
Redenen:
* ander formaat nodig in je tekst? Dan query aan passen.
* op de ene plek wil je d-m-Y hebben en in een mailtje wil je d M y zien? dan wil je toch niet 2 x date_format() in je query?
* sorteren: vaak sorteert iemand dan weer op die geformateerde datum en dat gaat goed binnen 1 maand, maar dan ineens blijkt 1 december vóór 31 oktober te sorteren...
Ik haal altijd de datum / datumtijd op in het formaat Y-m-d H:i, zoals mysql dit teruggeeft.
En in PHP zet ik het in een zeker formaat.
Als jij de bioscoop in gaat, dan laat je bij de ingang van de zaal je kaartje zien.
Is dat ok, dan mag je erin.
Het is niet nodig om de gehele film op je stoel te zitten met je kaartje omhoog.
Zo ook met een session.
Om in te loggen is het nodig om een password aan te leveren.
Dit wordt gecontroleerd (via hash vergelijking of hoe dan ook).
Is het ok, dan maak je een session-variabele aan.
Bijvoorbeeld $_SESSION['ingelogd'] = true;
Eventueel nog aangevuld met $_SESSION['userid'] = 1234; maar het is niet nodig om de gehele tijd een al dan niet gehasht password bij je te dragen.
Op zich is het moeilijk om de session-variabele uit te lezen buiten het script, maar als iemand toegang krijgt tot de session-bestanden, en die staan op de server, dan zijn al je gehashte passwords gelekt.
op een slecht geconfigureerde server staan de session bestanden soms gewoon in /tmp en deze zijn dan door elke php-site op de server uit te lezen. Zeker op shared hosting wil je dat niet.
Maar vooral:
het is niet nodig.
En wat niet nodig is en bovendien een veiligheidsissue kan opleveren, moet je niet doen.