omzetten date formaat naar string
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.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
if ($_SESSION['pasw'] == $row["paswoord"]){
$_SESSION['ingelogd']="J";
$_SESSION['Naam']= $row["Naam"];
$_SESSION['VNaam']= $row["Vnaam"];
$_SESSION['edat']= $row["einddatum"];
$_SESSION['etijd']= $row["eindtijd"];
$_SESSION['ingelogd']="J";
$_SESSION['Naam']= $row["Naam"];
$_SESSION['VNaam']= $row["Vnaam"];
$_SESSION['edat']= $row["einddatum"];
$_SESSION['etijd']= $row["eindtijd"];
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
Verder heb ik nog een opmerking:
Wat doet een password in een sessie??!?
En waarom geen true als boolean bij de ingelogd-check?
Gewijzigd op 11/05/2023 11:12:39 door - Ariën -
Ignace Verschaeve op 11/05/2023 10:52:17:
Ik geraak er niet uit hoe ik dus die einddatum kan omzetten naar een string.
Als die einddatum geen string is, wat is het dan wel?
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.
Ignace Verschaeve op 11/05/2023 12:23:20:
@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.
Quote:
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?
Ignace Verschaeve op 11/05/2023 12:23:20:
@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.)
Als ik klant zou zijn zou ik mij serieus rotschrikken, en haast geneigd zijn om mijn account op te zeggen.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$date = new DateTime($_SESSION['edat']);
echo $date->format('d M y'); // of welk formaat jij leuk vindt.
?>
$date = new DateTime($_SESSION['edat']);
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.
Edit:
Berichten ontdubbeld
Gewijzigd op 12/05/2023 11:18:11 door - Ariën -
- Ariën - op 11/05/2023 13:43:53:
Als ik klant zou zijn zou ik mij serieus rotschrikken, en haast geneigd zijn om mijn account op te zeggen.
In die sessie komt alleen het gehasht paswoord te pas. Niet het "echte" paswoord. Zo gek ben ik ook niet.
Toevoeging op 15/05/2023 10:24:26:
Ivo P op 12/05/2023 10:41:02:
Ik zou doen:
[...]
[...]
Ik probeer het uit.
Gewijzigd op 15/05/2023 15:59:58 door - Ariën -
Met welke reden gebruik je daar het wachtwoord voor? Het is niet de bedoeling.
Gebruik anders een aparte unieke hash.
Gewijzigd op 15/05/2023 10:47:01 door - Ariën -
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.
Ivo P op 12/05/2023 10:41:02:
Ik zou doen:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$date = new DateTime($_SESSION['edat']);
echo $date->format('d M y'); // of welk formaat jij leuk vindt.
?>
$date = new DateTime($_SESSION['edat']);
echo $date->format('d M y'); // of welk formaat jij leuk vindt.
?>
Ik heb nu dit gedaan:
en op de volgende pagina heb ik dit:
Code (php)
1
2
3
2
3
echo "<b>"."Welkom: ".$_SESSION['Naam'];
echo " ".$_SESSION['Vnaam']."</b>"."<br/>";
echo " ".$_SESSION['edat']-> format('d,M,y')."</b>"."<br/>";
echo " ".$_SESSION['Vnaam']."</b>"."<br/>";
echo " ".$_SESSION['edat']-> format('d,M,y')."</b>"."<br/>";
Maar voor dat laatste lijntje krijg ik deze foutmelding:
Quote:
Welkom: Tester twee
Fatal error: Uncaught Error: Call to a member function format() on string in /customers/1/5/0/fv-vl-ardennen.be/httpd.www/koepel/reg/zoek_reg.php:32 Stack trace: #0 {main} thrown in /customers/1/5/0/fv-vl-ardennen.be/httpd.www/koepel/reg/zoek_reg.php on line 32
Fatal error: Uncaught Error: Call to a member function format() on string in /customers/1/5/0/fv-vl-ardennen.be/httpd.www/koepel/reg/zoek_reg.php:32 Stack trace: #0 {main} thrown in /customers/1/5/0/fv-vl-ardennen.be/httpd.www/koepel/reg/zoek_reg.php on line 32
Waar ga ik in de fout? En er zit wel degelijk een datum in het bestand in het formaat jjjj-mm-dd
Wat je nu hebt klopt niet. Dit moet wel werken.
Code (php)
1
2
3
4
2
3
4
<?php
$edat = new DateTime($row["einddatum"]);
$_SESSION['edat'] = $edat->format('d,M,y');
?>
$edat = new DateTime($row["einddatum"]);
$_SESSION['edat'] = $edat->format('d,M,y');
?>
Gewijzigd op 15/05/2023 16:07:39 door - Ariën -
- Ariën - op 15/05/2023 16:07:26:
Ik ben aan het zoeken hoe ik hier een afbeelding kan invoegen. Ik vind het niet direct. Want het werkt niet de code zoals hierboven. Ik zie enkel verschijnen einddatum in plaats van de werkelijke datum
Gewijzigd op 15/05/2023 18:34:33 door Ignace Verschaeve
www.imgbb.com een afbeelding uploaden en die hier invoegen.
Graag alleen afbeeldingen ter ondersteuning van je bericht, en niet voor code's.
Verder is het logisch dat je de einddatum krijgt: $row["einddatum"]
We hebben geen imageupload op het forum. Je kan op Graag alleen afbeeldingen ter ondersteuning van je bericht, en niet voor code's.
Verder is het logisch dat je de einddatum krijgt: $row["einddatum"]
Gewijzigd op 15/05/2023 18:58:25 door - Ariën -