<?php session_start(); if (!$_SESSION['password']) { echo "Gå til forsiden og log ind"; } else { if($_SESSION['level'] == "12") { require_once('connect.php'); $data = mysql_query("SELECT * FROM brugere WHERE login = '" . $_SESSION['brugernavn'] . "' AND password = '" . $_SESSION['password'] . "'") or die(mysql_error()); $num = mysql_numrows($data); if($num == 0){ echo "Din bruger findes ikke i databasen"; session_unset(); session_destroy(); } else { ?> <a href='addadmin.php'><font color='#000000'><span style='text-decoration: none'>Tilføj eller fjern bruger</span></font></a><font color='#FFFFFF'><br></font><a href='banip.php?noget=5654'><font color='#000000'><span style='text-decoration: none'>ban</span></font></a><font color='#000000'><br></font><a href='sletban.php?noget=5654'><font color='#000000'><span style='text-decoration: none'>unban</span></font></a><font color='#000000'><br></font><a href='remote.php?noget=5654'> <?php } } else { echo "Du har ikke rettigheder til at se denne side"; } } ?>
Skriver jeg bruger og password rigtigt får jeg denne besked! :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at logon.php:2) in logon.php on line 12
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at logon.php:2) in logon.php on line 12
Warning: Cannot modify header information - headers already sent by (output started at logon.php:2) in
Og skriver jeg det bare forkert så siger den:
Warning: Cannot modify header information - headers already sent by (output started at logon.php:2) in logon.php on line 9 Du har indtastet forkert brugernavn/password
<?php $server = "server"; $bruger = "bruger"; $kodeord = "kode"; $database = "database"; mysql_connect($server,$bruger,$kodeord) OR DIE( "Kunne ikke etabler en forbindelse til MySQLen.!"); mysql_select_db($database) OR DIE( "Kunne ikke finde databasen!"); ?>
<?php mysql_connect("mysql.buydomains.dk","bruger","pass") OR DIE( "Kunne ikke etabler en forbindelse til MySQLen.!"); mysql_select_db("database") OR DIE( "Kunne ikke finde databasen!"); ?>
Nu har jeg lavet sådan. men har stadig fejl.. ER der fejl i dumpen i mysql så.. altså hvordan den er sat op til "brugere" ?
Den ser således ud:
CREATE TABLE `brugere` ( `id` int( 6 ) NOT NULL AUTO_INCREMENT , `login` varchar( 16 ) NOT NULL default '', `password` varchar( 16 ) NOT NULL default '', `level` smallint( 2 ) NOT NULL default '0', PRIMARY KEY ( `id` ) ) TYPE = MYISAM AUTO_INCREMENT =17;
php mysql_connect("server","bruger","kode") OR DIE( "Kunne ikke etabler en forbindelse til MySQLen.!"); mysql_select_db("database") OR DIE( "Kunne ikke finde databasen!");
if ($_POST['action'] == "login") { $data = mysql_query("SELECT * FROM brugere WHERE login = '" . $_POST['login'] . "' AND password = '" . $_POST['password'] . "'") or die(mysql_error()); $num = mysql_numrows($data); $row = mysql_fetch_array($data); if($num == 0){ header("location: login.php?error=1"); echo "Du har indtastet forkert brugernavn/password"; } else { session_start(); $_SESSION["brugernavn"] = $_POST['login']; $_SESSION["password"] = $_POST['password']; $_SESSION["level"] = $row['level']; header("location: brugerside" . $_SESSION['level'] .".php"); exit; } } switch ($_GET['error']) { case "1": echo "<font color='#FFFFFF'>Du har indtastet forkert brugernavn/password.</font>"; break; case "2": echo "<font color='#FFFFFF'>Du er ikke logget ind.</font>"; break; case "3": echo "<font color='#FFFFFF'>Dit brugernavn findes ikke i databasen.</font>"; break; case "4": echo "<font color='#FFFFFF'>Din bruger rettighed passer ikke sammen med siden du prøvede og benytte.</font>"; break; } ?>
Ok, nu siger den så en ny fejl.. også kommer linksne frem med fejlen ovenover. Men nu er fejlen ikke i logon.php mere kan jeg se.. nu er den i brugerside12.php. I kan se brugerside12 i det første indlæg.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\hjemmeside\brugerside12.php:2) in D:\hjemmeside\brugerside12.php on line 3 Tilføj eller fjern bruger ban unban
Det er eddermandme godt.. nu er mit webhotel lige gået ned.. så skal lige vente til det kommer op igen.. Kan det være fejlen tror du ;) retter det lige
Det der sker nu er. 1) Hvis jeg skriver brugernavn og kodeord forkert, så ryger jeg på http://www.alexandert.com/login.php?error=1 hvor der kommer en sidefrem som siden ikke findes.. Den burde sige noget med at det ikke var korrekt bruger og password? ik?
2) Når jeg skriver bruger og kodeord rigtigt. SÅ går den faktisk ind på brugerside12.php - men alle mine muligheder som den burde vise kommer ikke. Så står der bare :
Muligheder for Super Admin Gå til forsiden og log ind.
1. Hjælper det hvis du angiver fulde sti i header("location: login.php?error=1"); ?
2. Resulterer $_SESSION["level"] = $row['level']; i at du får den rigtige level (12) ? Er sessionen startet ordentligt op (at den ikke melder fejl på session_start() fordi den måske startes efter output)?
- Jeg kan ikke se nogle steder i det tidligere at der står "Muligheder for Super Admin" så det er også muligt at fejlen ligger i noget der ikke synligt.
... En anden årsag til at noget ikke vises kan være markup'en. Kig evt. senere på en validering (4x body elementer i det første script).
Har blandet to brugerscripts sammen nu kan jeg se.. 2 sec.. det med mulighed for superadmin er det tidligere script jeg havde.. heh.. Men header("location: logon.php?error=1") er jo den fulde sti i login.php? eller hvad mener du ?
Altså det der skal se er at jeg i databasen har angivet et brugernavn, pass og level.. Når en person så skriver brugernavn og pass skal den så selv fange hvilket level man har. i dette tilfælde 12. Er lidt ny inde for php. så forstår ik det sidste du skriver. med 4x body elementer..
"Altså det der skal se er at jeg i databasen har angivet et brugernavn, pass og level ... selv fange hvilket level man har. i dette tilfælde 12." En udskrivning af værdierne kan evt. kontrollere om man fanger de rigtige værdier fra sessionen. Men, da du nævner at du har blandet to filer sammen ved postningen, kan det også være der fejlen er.
"Er lidt ny inde for php. så forstår ik det sidste du skriver. med 4x body elementer.." Loginscriptet: ... <body background='feltbg.jpg'> <body bgproperties='fixed'> <html> <head> <meta http-equiv="Content-Language" content="da"> <link rel="stylesheet" type="text/css" href="box.css"> <body style="text-align: center"> <body bgcolor='#000000' style="text-align: center">
- 4 x body elementer. Den del er mere html end php relateret, men markup kan i visse tilfælde drille browsere, så ting ikke er synlig afhængig af markup (og css).
Okay.. Jeg tror der er styr på logondelen nu.. Nu må fejlen være i brugersidedelen... Når jeg skriver forkert password giver den mig tilbage at jegf har skrevet brugernavn eller password forkert. hvilket er korrekt. Men når jeg skriver koden rigtigt så header den til også til brugerside12.php hvilket er super :) men så er der fejl på brugerside12 delen.. fordi på siden står der:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at brugerside12.php:2) in brugerside12.php on line 3 Tilføj eller fjern bruger ban unban
htmldelen ser man.. men der er stadig noget galt heh.
Du er fantastisk!! :D Nu virker det!!! Må til at begynde at læse php noget mere så jeg ik har brug for alt det hjælp! Tusind tak. SKriver igen hvis der er problemer :)
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.