Je zou kunnen kijken hoe de index.php het inloggen afhandelt. Op basis daarvan kun je
(1) index.php vervangen door je eigen index.php waarin je ipv doorsturen naar een volgende pagina een makkelijk uit te lezen code retourneert, zodat je e.e.a. met een XmlHttp-request kunt afhandelen (gewoon een POST request sturen met password en username erin, zoals het inlogform ook doet)
(2) een plugin schrijven voor phpMyAdmin en die het inlogproces laten afhandelen, geïnspireerd door de manier waarop het origineel werd afgehandeld en het liefst met gebruik van zoveel mogelijk "originele" functies om compatibel te blijven met eventuele updates.
(3) Geef een link naar je phpMyAdmin installatie, maar zorg dat die link een form submit met daarin de zelfde waardes als je normaal zou invullen in het inlogformulier. Eigenlijk bouw je dan een aangepast inlogformulier met de gegevens pre-filled en hidden, dat alleen nog maar ge-submit behoeft te worden.
Optie (2) lijkt mij het meest wenselijk. Ondersteunt phpMyAdmin geen plugins, schrijf dat een eigen pagina (bijvoorbeeld login.php), waarin je het originele inlogproces kopieert en alleen de output wijzigt in voor jou makkelijk te verwerken data en doe een XmlHttp-request daar naar toe.
Je kunt ook dat inlog-request server-side afhandelen, waardoor je voorkomt dat het wachtwoord eerst naar de gebruiker getransporteerd wordt en daarna naar de mysql server. Je krijgt dan zoiets:
code:
1
2
3
4
5
| (1) Gebruiker klikt op 'naar phpMyAdmin';
(2) gebruiker vraagt pagina phpmyadmin_login.php op jouw eigen server op;
(3) phpmyadmin_login.php doet request naar login.php van phpMyAdmin en geeft gebruikernaam en wachtwoord door;
(4) phpmyadmin_login.php krijgt resultaat terug van login.php van de phpMyAdmin;
(5) is resultaat positief, link gebruikt door naar phpMyAdmin, waar hij nu ingelogd is. Is resultaat negatief, zeg dat er een fout is opgetreden of geef mogelijkheid zelf wachtwoord in te geven. |
Let er wel op, welke optie je ook gebruikt, dat je waarschijnlijk wachtwoorden over een onveilig netwerk transporteert, waardoor je daar goed over na moet denken hoe je dat wilt aanpakken. Introduceer ook geen bugs in je eventuele inlogroutine.
Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.