הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   מדוע זה לא סופר לי את המספר נסיונות? (https://hosts.co.il/forums/showthread.php?t=85004)

Megnum 15-09-10 13:36

מדוע זה לא סופר לי את המספר נסיונות?
 
אהלן, בניתי את הדבר הבא:

PHP קוד:


<?php
############################################# 
# Class Login
#############################################
include 'class_sql.php';
session_start();
$_SESSION['logged']= isset($_SESSION['logged'])? $_SESSION['logged'] : false;
$_SESSION['try_enter']= isset($_SESSION['try_enter'])? $_SESSION['try_enter'] : false;
global 
$html;

$_GET['users']=isset($_GET['users']) ? mysql_escape_string($_GET['users']) : null;
$_POST['username']=isset($_POST['username']) ? mysql_escape_string($_POST['username']) : null;
$_POST['password']=isset($_POST['password']) ? mysql_escape_string($_POST['password']) : null;

class 
Users extends Connect_db {


private 
$user;
private 
$pass;
private 
$db;

#login
function Login($username,$password) {

 global 
$html;
 
 
$this->user=$username;
 
$this->pass=$password;
 
$this->db=Connect_db::Checke_details("select * from users_mode where `username`='{$username}' and `password`='{$password}'"); 

 if (
ltrim(rtrim($username)) ==null || ltrim(rtrim($password)) ==null)
  
$message[1001]='Some input is missing';
  
 if (
$this->db==true
 { 
header("Location: login.php"); $_SESSION['logged']=true; }
 else
 { 
$message[1002]="Login incorrect";  $_SESSION['try_enter']++; }
 
 if (
$username==$password and !isset($message[1001]))
   
$message[1003]="Identical data";
 elseif(
$_SESSION['try_enter']==5
   
$message[1004]="Too many tryes, try again later";
 
 
//Display Message
 
foreach ($message as $key=>$msg) {
  global 
$count;
  
$count++;
  !empty(
$msg) ? $html.= "<strong>Err {$key}:</strong> {$msg}<br/>"   :  $count--; 
 }
 
 return 
$html;
 
 
}

}

switch (
$_GET['users']) {
 
#Login area
 
case 'login':
 
$login=new Users;
 
$html=$login->Login($_POST['username'], $_POST['password']);
 if (
$_SESSION['logged']==trueheader("Location: login.php");
 break;
 
 case 
'logout':
 unset(
$_SESSION['logged']);
 
header("Location: index.php?users=index");
 
 break;
}



echo 
$html;



?>


אני בטוח מפספס משהו שאני מנסה 5 פעמים להתחבר זה לא סופר לי משום מה בסשן , אפשר עזרה?
כאילו זה אמור להוציא את המשפט הבא Too many tryes, try again later
אני גרוע בלשים לב לפרטים הקטנים =]

RS324 15-09-10 15:16

איפה המחלקה של ה DB ?

Megnum 15-09-10 21:58

תודה בכל מקרה הבעיתה היתה ב return false;

Daniel 15-09-10 22:24

בלי קשר, אני אגיב על העיקרון עצמו: אל תשכח שכל אחד יכול למחוק קוקיס ואז לנסות להתחבר כמה פעמים שהוא רוצה.

Megnum 16-09-10 11:46

כעיקרון זה סישין ולא קוקיז.. והמחלקה רק בחיתוליה ברור שאשתמש גם עם האייפי ואשמור במסד.
תודה אבל על העצה.

Daniel 18-09-10 23:23

ציטוט:

נכתב במקור על ידי Megnum (פרסם 779494)
כעיקרון זה סישין ולא קוקיז.. והמחלקה רק בחיתוליה ברור שאשתמש גם עם האייפי ואשמור במסד.
תודה אבל על העצה.

המזהה של סיישן נשמר בקוקיס (או במילים פשוטות: אם אתה מוחק קוקיס, גם הסשן נמחק).

בנוגע ל-IP: רעיון מעולה, בהצלחה!

iOrel 23-09-10 01:17

למה לא התחלת את הפעולה (session) בשורה הראשונה ?

Skfir 23-09-10 02:01

למה אתה עושה התחברות בקלאסים בכלל :\
דבר פשוט הפכת למסובך

BlueNosE 23-09-10 02:27

ציטוט:

נכתב במקור על ידי Skfir (פרסם 780373)
למה אתה עושה התחברות בקלאסים בכלל :\
דבר פשוט הפכת למסובך

לא הבנתי את הטענה הזאת. מה רע בהתחברות עם CLASS?

Hagaibl 25-09-10 14:16

ציטוט:

נכתב במקור על ידי Skfir (פרסם 780373)
למה אתה עושה התחברות בקלאסים בכלל :\
דבר פשוט הפכת למסובך

להפך זה יעיל, הוא יוכל לעשות התחברות בכל מקום שירצה.
בלי להפנות לדף חדש.


כל הזמנים הם GMT +2. הזמן כעת הוא 06:53.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ