Door
Jasper Schellekens
op 20-02-2018 11:44
gewijzigd op 20-02-2018 11:51
7.658 views
Goeiedag iedereen,
Ik ben de ontwerper van een online game die gebruikt maakt van sqlite.
Nu ben ik gestart met PHP om een UCP te maken.
Dit gaat tot nu toe goed en dus heb ik een simpel login formuliertje gemaakt.
In het script worden na het inloggen de goede data getoond.
Het probleem is eigenlijk dat als je weer naar de home pagina gaat waar ook de staat worden laten gezien, dat er niks word laat gezien. En ik denk dat dit komt omdat het script niet weet waar het de data vandaan moet halen.
Nu vraag ik me af, kan ik niet de gebruikersnaam in een soort tijdelijke array opslaan en vandaar ophalen?(zo werkt dat in de code waar ik de game mee ontwerp ook.) En als dit mogelijk is? Hoe doe ik dit dan?
Mocht het nodig zijn is hier de pagina login.php:
<?php
error_reporting(E_ALL);
class MyDB extends SQLite3
{
function __construct()
{
$this->open('LARPSERVER/scriptfiles/Data/database/testdatabase.db');
}
}
$db = new MyDB() or die ("Unable to open");
$sql = 'SELECT * FROM USERS WHERE MAIL="'.$_POST["MAIL"].'" AND PASSWORD="'.$_POST["PASSWORD"].'"';
Hopelijk begrijp je nu/straks hoe de exceptions werken.
Zeker handig in zulke situaties.
Bedankt!
De link is zeer informatief. Ben er nog een beetje mee aan het knutselen maar ik begrijp het wel.
Ik ben ook begonnen aan een registratie formuliertje. die identiek is aan de ingame registratie(voorheen registreerde gebruikers in de game zelf).
Nu vraag ik me af hoe ik kan detecten welke radio input de gebruiker geselecteerd heeft.
De waarde zit in $_POST["RCGENDER"]. Dus als je die zichtbaar wilt hebben, dan kan je die echo'en. Of als je die wilt benutten in de verwerking van je script, dan kan je die variabele in de juiste functie plaatsen.
Let er wel op dat je in geval van SQL-queries deze variabele moet escapen tegen SQL-injection. En dat je bij het tonen van de gegevens netjes htmlspecialchars om deze variabele gebruikt om de HTML onschadelijk te maken om je tegen XSS te beschermen.
Overigens, wat voor boek of editor gebruik je dat je nog met oude <font> tags werkt?
Met CSS ben je veel flexibeler om de layout te beheren. Vergeet liever dus die font-tags!
Font had ik gebruikt om een sterretje * rood te kleuren. Ik ben qua html nog van de oude stempel omdat ik daar 10 jaar geleden heel erg mee bezig was. Ik heb die <font> eigenlijk getypt even snel.
qua css ben ik zowiezo echt een noob en daarom gebruik ik een mooie template die gemaakt is door iemand anders.
Ik ben bekend met de sql injectie inderdaad.
Als ik je goed begrijp zal hij dan als je Male selecteerd, in de echo 'male' printen toch?
Is er dan een manier om er 1 of 2 van te maken?
Want ingame wordt dit voor geslacht gebruikt:
1 = male 2 =female
Dat is het, maar ik zou niet standaard voor iemand zomaar bepalen dat diegene een man is door checked aan te zetten. Misschien is het ook handig om rekening te houden met genderneutraliteit als je toch al gender aan het nummeren bent.
Over je escaping: Dat klopt, als de functie precies doet wat je wilt, tenminste. Maar ik raad aan geen variabelen te kopiëren. het is onnodig, en uiteindelijk raak je het overzicht kwijt wat je al aan variabelen bewerkt hebt, met mogelijk veiligheidslekken tot gevolg. Je wilt je applicatie die je bouwt uiteraard zo leesbaar mogelijk houden zonder teveel fratsen.
Dat is het, maar ik zou niet standaard voor iemand zomaar bepalen dat diegene een man is door checked aan te zetten. Misschien is het ook handig om rekening te houden met genderneutraliteit als je toch al gender aan het nummeren bent.
Hebben we over nagedacht alleen zijn er alleen echt typisch mannelijk of vrouwelijke characters. gender neutraal word wel geimplenteerd in de toekomst.
Wat betreft die checkbox niet op checked zetten is een goed idee.
[size=xsmall]Toevoeging op 22/02/2018 21:20:46:[/size]
Hoe kan ik checken of een value Firstname_Lastname is?
Ik snap het laatste niet zo. Je wilt toch niet letterlijk op "Firstname_Lastname" controleren?
Als dat een placeholder is om in een formulier aan te geven wat voor voorbeelddata er verwacht wordt, dan zou ik liever het placeholder="" attribuut in je formulier-element gebruiken.