Oprettet søn. d. 05. februar 2012 kl. 13:40:49

JobJog
JobJog (4.635 point. Point ude: 60)

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';
}

$email = $_POST['email'];
$password = $_POST['password'];



$query = "SELECT email, adgangskode, level FROM bruger WHERE  email='$email' AND adgangskode='$password'";
$objResult = $objCon->query($query) or die($objCon->error);

$row = $objResult->fetch_assoc();
echo 'det fungere';


if ($email == $row['email'] && $password == $row['adgangskode'])
   
    if ($row['level'] == 1) {
        $_SESSION['bruger']['level'] = 1;

        $_SESSION['email'] = $email;

        header("location:admin.php");
    } else if ($row['level'] == 2) {
        $_SESSION['bruger']['level'] = 2;

        $_SESSION['email'] = $email;

        header("location:forside.php");
   

};
?>

Skrevet søn. d. 05. februar 2012 kl. 13:44:32| #1

Du kan ikke benytter header() efter der er blevet udskrevet noget på siden. header() skal altså ikke over AL html samt alle echo'er.

Skrevet søn. d. 05. februar 2012 kl. 13:50:40| #2

JobJog
JobJog (4.635 point)
Hvis du tænker på den her echo ?
$row = $objResult->fetch_assoc();
echo 'det fungere';

så var det bare lidt en test for at se om den skrev noget ud.. men selv om den er væk fungere det stadig ikke.. :/

Skrevet søn. d. 05. februar 2012 kl. 13:52:46| #3

Ud over
echo 'det fungere'; 
så har du også en linje der lyder
echo 'Der er forbindelse, altsaa ingen fejl'; 
Dén skal også væk.

Skrevet søn. d. 05. februar 2012 kl. 14:03:24| #4

JobJog
JobJog (4.635 point)
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.

Skrevet søn. d. 05. februar 2012 kl. 14:07:53| #5

Findes både admin.php og forside.php?

Skrevet søn. d. 05. februar 2012 kl. 14:10:04| #6


Skrevet søn. d. 05. februar 2012 kl. 14:11:36| #7

JobJog
JobJog (4.635 point)
hmm, okay der var en fejl 40 :) havde glemt location foran...
laver du lige et svar så du kan få point ;)

Skrevet søn. d. 05. februar 2012 kl. 14:18:23| #8

Det er jo det der sker.

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.

Skrevet søn. d. 05. februar 2012 kl. 14:25:23| #9

JobJog
JobJog (4.635 point)
Hvad mener du med jeg skal kigger efter hvad brugere skriver ind ?

Skrevet søn. d. 05. februar 2012 kl. 14:38:13| #10

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.

Skrevet søn. d. 05. februar 2012 kl. 15:10:35| #11

JobJog
JobJog (4.635 point)
Hvad vil være mest optimale måde og gøre det på ? jeg tænker lidt om Client-Side validering kan gøre dette ?

Skrevet søn. d. 05. februar 2012 kl. 15:18:05| #12

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.

Skrevet søn. d. 05. februar 2012 kl. 15:25:59| #13

JobJog
JobJog (4.635 point)
oh okay, det må jeg heller få kigget på så.. Jeg siger rigtige mange tak for hjælpen ;)

Skrevet søn. d. 05. februar 2012 kl. 15:31:03| #14


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Eget CMS-system

Oprettet den 26. maj 2012 kl. 12.24
MadsLundholmDk giver 30 point for svar | Giv et svar »

PHP kode

Oprettet den 24. maj 2012 kl. 00.15
ksno04 giver 30 point for svar | Giv et svar »

usynlige mellemrum i string indlæst fra .txtfil i PHP

Oprettet den 23. maj 2012 kl. 13.20
carsten1973 giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger