bbaigaa Posted May 24, 2011 Report Share Posted May 24, 2011 Izveidoju autorizāciju, bet kad piereģistrē jaunu lietotāju, nevar to ielogot. datubāzē uzrādās hašotā parole un nevar ielogoties, rāda ka parole ir nepareiza. ko es daru nepareizi? add new.php ________________ <form action="add_new.php" method="post" name="pieviono"> (*)Lietotājvārds: <input type="text" name="username" /><br /> (*)Parole: <input type = "password" name="password" /><br /> (*)Vārds: <input type = "text" name="vards" /><br /> (*)Uzvards: <input type= "text" name="uzvards" /><br /> (*)Lietotajgrupa: <input type="text" name="lietotajgrupa" maxlength="1" /><br /> <input type="submit" value="Pievienot" /> </form> <?php //mainīgo glabāšana if (isset($_POST) && !empty($_POST)) { $username = $_POST['username']; $password = $_POST["password"]; $vards = $_POST["vards"]; $uzvards = $_POST["uzvards"]; $lietotajgrupa = $_POST["lietotajgrupa"]; // pārbauda vai izpildās visi vajadzīgie nosacījumi if($username != NULL && $password != NULL && $vards != NULL && $uzvards != NULL && $lietotajgrupa != NULL && $count == 0) { $sql="INSERT INTO lietotaji VALUES ('$username',MD5('$password'),'$vards','$uzvards', '$lietotajgrupa')"; mysql_query($sql); echo 'Lietotājs veiksmīgi pievienots!'; } Quote Link to comment Share on other sites More sharing options...
bbaigaa Posted May 24, 2011 Author Report Share Posted May 24, 2011 pie ielogošanās man ir šāda paroles pārbaude if(($_SESSION["password"] == false) && (isset($_SESSION["password"]))) { echo "Nepareizs lietotājvārds un/vai password!"; session_destroy(); } ?> Quote Link to comment Share on other sites More sharing options...
Rincewind Posted May 24, 2011 Report Share Posted May 24, 2011 if($username != NULL && $password != NULL && $vards != NULL && $uzvards != NULL && $lietotajgrupa != NULL && $count == 0) = if($username && $password && $vards && $uzvards && $lietotajgrupa && !$count) if(($_SESSION["password"] == false) && (isset($_SESSION["password"]))) { echo "Nepareizs lietotājvārds un/vai password!"; session_destroy(); } ?> Ja parole glabājas datubāzē tad pārbaudot viņu vajadzētu no turienes izvilkt ārā, te nekas tāds nenotiek. Quote Link to comment Share on other sites More sharing options...
e-remit Posted May 24, 2011 Report Share Posted May 24, 2011 Vispār jau pie ielogošanās būtu jāpārbauda $_POST, nevis $_SESSION. $_SESSION jāuzseto no $_POST mainīgā, pēc tam to var pārbaudīt. Bet nu tur kaudze citu neveiklību, jau sākot ar iespējamām SQL injekcijām, bet tas atsevišķs temats. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 24, 2011 Report Share Posted May 24, 2011 Un XSS... un CSRF... un MD5 vairs nav jauks... utt.. Lūdzu ieliec kodu "code" tagos.... neko nevar saprast. Quote Link to comment Share on other sites More sharing options...
bbaigaa Posted May 24, 2011 Author Report Share Posted May 24, 2011 kkā tā laikam $lietotajs = $_POST['lietotajs']; // lietotajs no autentifikacijas lapas $password = $_POST['password']; // password ko ievada lietotajs // SQL pieprasijuma izveide un izpilde $sql="SELECT * FROM $tbl_name WHERE username='$lietotajs' and password='$password'"; $result=mysql_query($sql); $count=mysql_num_rows($result); // ja lietotajvards un password sakrita rindu skaitam jaabut viens //echo $row['password']; if($count==1) { // ja rindu skaits ir viens sakam sesiju un ejam uz lapu kas pieejama // registretiem lietotajiem $_SESSION["useris"] = $row['username']; header("location:login_success.php"); } else { // ja rindu skaits nav viens ejam atpakal uz ielogoљanas formu un izvadam kludas pazinojumu $_SESSION["password"] = false; header("location:login.php"); } ?> Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 25, 2011 Report Share Posted May 25, 2011 Joprojām tie nav "code" tagi... Quote Link to comment Share on other sites More sharing options...
briedis Posted May 25, 2011 Report Share Posted May 25, 2011 Es pieļauju iespēju, ka paroles kolonna nav 32 simbolus gara un tādejādi vērtības tiek apgrieztas ievietošanas brīdī. Quote Link to comment Share on other sites More sharing options...
e-remit Posted May 25, 2011 Report Share Posted May 25, 2011 Atšķiras paroles pārbaudes $sql="INSERT INTO lietotaji VALUES ('$username',MD5('$password'),'$vards','$uzvards', '$lietotajgrupa')"; un $sql="SELECT * FROM $tbl_name WHERE username='$lietotajs' and password='$password'"; izvadi tak SQL teikumus, kāds ir pie reģistrācijas, un kāds pie pārbaudes, vai tiešām tie ir vienādi, un vai datu bāzē paroles hash ir pareizs, nevis uzreiz taisi redirektu, pēc kura vairs nekāda debug informācija nav pieejama.... Quote Link to comment Share on other sites More sharing options...
bbaigaa Posted May 25, 2011 Author Report Share Posted May 25, 2011 nesaprotu neko. vai kāds lūdzu var vienkārši paskaidrot, kā man pareizi darīt? Quote Link to comment Share on other sites More sharing options...
mounkuls Posted May 25, 2011 Report Share Posted May 25, 2011 e-remit jau uzrakstija kur ir vaina. Kad Tu inserto tabulā, tad paroli ieliek kā MD5(parole), bet kad to pārbaudi, Tu mēģini tur atrast pliku paroli, bez MD5 :) Quote Link to comment Share on other sites More sharing options...
bbaigaa Posted May 25, 2011 Author Report Share Posted May 25, 2011 kā pareizi meklēt to paroli? šādi neder? $password = $_POST['password']; // password ko ievada lietotajs // SQL pieprasijuma izveide un izpilde $sql="SELECT * FROM $tbl_name WHERE username='$lietotajs' and password='$password'"; $result=mysql_query($sql); Quote Link to comment Share on other sites More sharing options...
rebuilder Posted May 25, 2011 Report Share Posted May 25, 2011 tiešām nesaproti atšķirību starp md5($password); un $password; ? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 25, 2011 Report Share Posted May 25, 2011 $string = 'kakjiiC'; echo $string . '<br />'; echo md5( $string ); ...pēc izpildes: kakjiiC942a2d2c11f859c19a5b9d1e326234a3 ...un kakjiiC nav tas pats, kas 942a2d2c11f859c19a5b9d1e326234a3. Quote Link to comment Share on other sites More sharing options...
e-remit Posted May 25, 2011 Report Share Posted May 25, 2011 Izmaini kodu šādi: $lietotajs = $_POST['lietotajs']; // lietotajs no autentifikacijas lapas $password = $_POST['password']; // password ko ievada lietotajs // SQL pieprasijuma izveide un izpilde $sql="SELECT * FROM $tbl_name WHERE username='$lietotajs' and password='$password'"; $result=mysql_query($sql); $count=mysql_num_rows($result); // ja lietotajvards un password sakrita rindu skaitam jaabut viens //echo $row['password']; if($count==1) { // ja rindu skaits ir viens sakam sesiju un ejam uz lapu kas pieejama // registretiem lietotajiem $_SESSION["useris"] = $row['username']; header("location:login_success.php"); } else { //noticis ļaunums, paskatāmies, kāds īsti bija pieprasījums echo $sql."<br>\n"; } ?> un tad paskaties, kā tava parole izskatās datu bāzē! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.