05. februar 2012 - 13:40Der er
13 kommentarer og 1 løsning
php login/bruger problemer
Hey. jeg vært igang med at lave et login system, hvor man opretter sig som bruger og logger ind med email og password.
men af en eller anden grund så vil den ikke hoppe vider til næste side efter man har indtastet sine login oplysninger, den forbliver i code_login.php . i databasen har jeg oprettet en bruger som admin, som har fået tildelt 1 alle andre bruger bliver tildelt 2. så man logger ind på en bestemt side alt efter hvem man er.. Min kode ser så ledes ud.
<?php
session_start();
$objCon = new mysqli('xxxxxx', 'xxxxxxx', 'xxxxxxxx', 'xxxxxxxx'); if ($objCon->connect_error) { die('Kunne ikke forbinde (' . $objCon->connect_error . ') ' . $objCon->connect_error); } else { echo 'Der er forbindelse, altsaa ingen fejl'; }
$query = "SELECT email, adgangskode, level FROM bruger WHERE email='$email' AND adgangskode='$password'"; $objResult = $objCon->query($query) or die($objCon->error);
Det hjalp sku :) bare mystisk det virkede på localhost :/
men jeg kan kun logge ind som alm bruge med som får tildelt 2.
logger jeg ind som admin får jeg denne besked
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, support@one.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Desuden bør du altså overveje at kigge lidt på hvad dine brugere skriver ind. Du smider dine data direkte ind i en query. Ja, kan godt se at det er en mysqli, men derfor skader det jo alligevel ikke at tjekke efter om den indtastede streng virker reel eller ej.
Du bør tjekke hvad brugeren skriver ind. Hvis en bruger fx. skal indtaste et brugernavn, kan man fx. stoppe scriptet før den når til queryen hvis man har indtastet andet end bogstaver og tal, eller hvad der nu er tilladt.
Tegn som ' " < > er ikke altid man ønsker at disse skal have på MySQL serveren. Men man har ret let mulighed for at lade dem slippe igennem, hvis ikke der bliver tjekke for det.
Nej. Det skal du gøre server-side. ALT hvad der kommer fra client-side kan en bruger snildt ændre på. Du er nødt til at tjekke hvad der kommer ind i dine $_POST. Det er dér det farlige ligger.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.