Log in script.. Men er mit script forældet til mysql databasen?
Kan nogen af jer hjælpe!! for ca. 1-2 år siden brugte jeg dette script til min hjemmeside.. det er hjemmelavet og virkede perfekt før i tiden.. men når jeg bruger det nu.. så logger den ikke ind.. altså den refererer ikke ind til brugerside$lvl altså fx. brugerside12.. Under mysql databasen har jeg sat brugernavn, og password også selvfølgelig lvl(level) altså hvilken brugerside den skal gå ind på.. Det burde virke sådan at hvis nu jeg siger at Brugernavn er: hund -- og password er: hund2 - også sætter jeg lvl til brugeren skal være 12( som er master ) alt det sætter jeg i databasen.. så når jeg logger ind burde den gå ind på den side jeg har lavet til mastersiden. altså brugerside12.php.. men den rykker ikke videre.. Det er mit spørgsmål.. også hvordan kan det være det ikke virker? Det har virket før. er mit script forældet til mysql databasen som måske er blevet fornyet for mange gange.. hvis den er.. kan i hjælpe.. på forhånd tak!
<? require("connect.php"); if ($action == "login") {
$data = mysql_query("SELECT * FROM brugere WHERE login = '$Login' AND Password = '$Password'") or die(mysql_error()); if( ($num = mysql_numrows($data)) == 0){ echo "Du har indtastet forkert brugernavn/password";} else { session_start(); $lvl = $row[Level]; setcookie("brugernavn", "$Login", time() +172800 ); setcookie("password", "$Password", time() +172800 ); $ref = "brugerside$lvl.php"; print "<meta http-equiv='refresh'content='0;URL=$ref'>";
Benzon, der er ingen syntaksfejl i den oprindelige kode. Der er en masse kode der er skrevet på en uhensigtsmæssig kode, ja, men der er ingen syntaksfejl.
kan sige så meget mit Zend Studio brokkede sig over flere fejl har prøvet og rette på de fejl nu så må vi jo se om det virker den eneste fejl den gav mig var den ikke kunne include connect.php da jeg ikke har den fil til at ligge :D
Måske er det noget på brugersiden der er helt galt.. i kan jo lige se det.. Håber virkelig i kan hjælpe ;) er ikke ekspert i php så derfor der er fejl og jeg spørger jer :) jeg ved bare det har virket..
<? if (!$password) { echo "Gå til forsiden og log ind"; } else { include("connect.php"); $result = mysql_query("SELECT * from brugere where login = '$brugernavn' and password = '$password'") or die(mysql_error()); while ($row = mysql_fetch_array($result)) { $login = $row[login]; $level = $row[level]; $password = $row[password]; print " </font> <a href='addadmin.php'><font color='#FFFFFF'> <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='#FFFFFF'> <span style='text-decoration: none'>ban</span></font></a><font color='#FFFFFF'><br> </font> <a href='sletban.php?noget=5654'><font color='#FFFFFF'> <span style='text-decoration: none'>unban</span></font></a><font color='#FFFFFF'><br> </font> <a href='remote.php?noget=5654'><font color='#FFFFFF'>
når jeg skriver koden forkert nu, siger den prøv igen.. men når jeg så skriver rigtigt. så glemmer den at tage lvlsiden med. Dvs. når jeg skriver koden rigtig går $ref den kun til brugerside.php.. men den burde jo gøre så det blev brugerside$lvl.php heh
men altså kan se en sikkerheds fejl i dit login script er der en bruger der gætter på din level ville de kunne få adgang til din side rent faktisk bare ved og skrive brugerside12.php
Du mangler og lave et tjek på siden om de nu har adgang til nettop den side.
Der ud over har du glemt og oprette cookien level så har lige lavet lidt ændringer
sorry har da lige lavet en fejl i det sidste sider vist og halv sover
<? if (!$_COOKIE['password'] or $_COOKIE['level'] > "12" or $_COOKIE['level'] < "12") { echo "Gå til forsiden og log ind"; } else { require("connect.php"); $result = mysql_query("SELECT * from brugere where login = '$login' and password = '$password'") or die(mysql_error()); while ($row = mysql_fetch_array($result)) { $login = $_COOKIE['login']; $level = $_COOKIE['level']; $password = $_COOKIE['password']; echo "</font><a href='addadmin.php'><font color='#FFFFFF'><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='#FFFFFF'><span style='text-decoration: none'>ban</span></font></a><font color='#FFFFFF'><br></font><a href='sletban.php?noget=5654'><font color='#FFFFFF'><span style='text-decoration: none'>unban</span></font></a><font color='#FFFFFF'><br></font><a href='remote.php?noget=5654'><font color='#FFFFFF'></font>"; } } ?>
Sådan der til bruger siden tror det virker er ikke helt sikker sider som sagt og er nada vågen og på vej i seng igen meeen forkølet så lige kæmpe hoste tur :D
Det virker stadig ikke.. når jeg skriver koden rigtigt nu, så refererer den bare ind på brugerside.php som jo ikke findes.. Sidder og tænker om der er rod i $login $password og $level i begge scripte. har pillet ved det så meget at jeg slet ikke kan se om den selecter rigtigt from brugere where login = $login.... osv i begge scripte. heh
mysql_connect($server,$bruger,$kodeord) OR DIE( "Kunne ikke etabler en forbindelse til MySQLen.!"); mysql_select_db($database) OR DIE( "Kunne ikke finde databasen!"); } ?>
mysql_connect($server,$bruger,$kodeord) OR DIE( "Kunne ikke etabler en forbindelse til MySQLen.!"); mysql_select_db($database) OR DIE( "Kunne ikke finde databasen!"); ?>
Husk <?php mange servere godkender ikke <? længere
og prøv lige login delen af igen ved den virker har testet den og den virker som den skal :) det er kun brugersiden jeg ikke kan få til at virke lige nu har så heller ikke prøvet på at fixe det :)
Har jeg lige gjort.. men som det fjols jeg er :P har jeg lige gemt kopieret det som skulle være i logon over i brugerside12.. hehe.. så skal lige lave brugerside 12 igen ;) eller finde det
<? if (!$_COOKIE['password'] or $_COOKIE['level'] > "12" or $_COOKIE['level'] < "12") { echo "Gå til forsiden og log ind"; } else { require("connect.php"); $result = mysql_query("SELECT * from brugere where login = '$login' and password = '$password'") or die(mysql_error()); while ($row = mysql_fetch_array($result)) { $login = $_COOKIE['login']; $level = $_COOKIE['level']; $password = $_COOKIE['password']; echo "</font><a href='addadmin.php'><font color='#FFFFFF'><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='#FFFFFF'><span style='text-decoration: none'>ban</span></font></a><font color='#FFFFFF'><br></font><a href='sletban.php?noget=5654'><font color='#FFFFFF'><span style='text-decoration: none'>unban</span></font></a><font color='#FFFFFF'><br></font><a href='remote.php?noget=5654'><font color='#FFFFFF'></font>"; } } ?>
Er det korrekt? Når jeg så logger ind får jeg denne fejl.
Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) in /data/cluster/minhjemmeside/logon.php on line 6
Warning: mysql_query(): A link to the server could not be established in /data/cluster/minhjemmeside/logon.php on line 6 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
lige noget så du er klar over det.. Det er meningen at jeg har forskellige brugersider. Dvs. at hvis en anden bruger kun har lvl 2 fx. så kommer han ikke ind på "master bruger" altså brugerside12.php men kun brugerside2.php
Må indrømme har lige omskrevet hele login delen til at bruge sessions i stedet og ved ikke hvorfor kedet mig vel griner og er godt igang med og prøve på at få din brugerside op og køre som den skal
[code] <?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"; } } ?> [/code]
Der hvor html koden er, der skal ALT html på den side være!
Jeg bruger headers til og smide dem til forsiden hvis de har lavet lort i deres login :)
Ja det blev lidt mere advanceret end vi startede ud men det virker som det skal og du kan faktisk slette en bruger on the fly det vil sige de mister adgang med det samme fordi jeg lige tjekker om de stadig findes i databasen.
Det lyder rigtig fedt.. men men men.. Det virker stadig ikke.. HMM!
når jeg skriver rigtig bruger og password får jeg dette tilbage på en hvid side:
code] Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /data/cluster/minhjemmeside/logon.php:2) in /data/cluster/minhjemmeside/logon.php on line 12
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /data/cluster/minhjemmeside/logon.php:2) in /data/cluster/minhjemmeside/logon.php on line 12
Warning: Cannot modify header information - headers already sent by (output started at /data/cluster/minhjemmeside//logon.php:2) in /data/cluster/minhjemmeside/logon.php on line 16
OG
når jeg skriver forkert bruger og password får jeg dette:
[code] Warning: Cannot modify header information - headers already sent by (output started at /data/cluster/minhjemmeside/logon.php:2) in /data/cluster/minhjemmeside/logon.php on line 9 Du har indtastet forkert brugernavn/password
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.