một cách đơn giản mà nhanh hơn
- cần có ảnh của các số, ví dụ 0.gif, 1.gif...
- tạo một số ngẫu nhiên: rand(10000, 99999)
- Duyệt lần lượt các chữ số trong số ngẫu nhiên đó để hiện img
ok, chắc tôi nói ngắn gọn quá nên mấy bạn ko hiểu ý tôi nhỉ,
làm 1 hàm
$sn=rand(100000,999999);
là được roài nhưng sao truyền tới file được action, ví dụ form tui action tới file register.php
làm sao truyền giá trị $sn để kiểm tra cùng với số mà user đã nhập vào, nếu dùng hidden input để post lun or cho dzo6 url kiểu login.php?sn=657982 thì dễ phá quá có thể chơi 1 vòng lặp là đầy data.
nếu dùng session lưu lại thì khi mở trang register.php lần 1 thì ví dụ:
$_SESSION['sn']=245312; mình sẽ echo nó ra cho user nhập dzô.
nếu ta ko dùng trang đó mà mở tiếp trang thứ 2 register.php thì $_SESSION['sn'] nhận giá trị mới, nếu lúc này quay lại trang đầu đăng ký thì dù nhập đúng security number thì khi check sn trên server thì nó vẫn báo sai.
còn lưu vào db thì query làm sao đây, điều kiện (where) thế nào để moi ra được cái sn đã lưu
dùng session và thư viện gd của php như đã nói là cách tốt nhất đây là cho các form quan trọng như register còn các form khác bạn có thể dùng 2 cách là kiểm tra time giữa 2 lần send request và dùng session để kiểm tra chống flood
Có vẻ cách đó phức tạp hả? Thấy đơn giản mà. Nếu flood prevention thì dùng cách đơn giản nhất nàh
PHP Code:
<?
@session_start();
$_SESSION***91;"send"***93; = true; // Đặt đầu form
....
if(isset($_SESSION***91;"send"***93;)) {
... // xử lí ở đây
}
else {
echo "No flooding";
}
unset($_SESSION***91;"send"***93;)
?>
<?
// của anh scripter, viết lại thôi
// có thể thêm vào gd ..v..v
$sec_code = substr(md5(time()), 0 ,5);
echo $sec_code;
?>
- cần có ảnh của các số, ví dụ 0.gif, 1.gif...
- tạo một số ngẫu nhiên: rand(10000, 99999)
- Duyệt lần lượt các chữ số trong số ngẫu nhiên đó để hiện img
làm 1 hàm
$sn=rand(100000,999999);
là được roài nhưng sao truyền tới file được action, ví dụ form tui action tới file register.php
làm sao truyền giá trị $sn để kiểm tra cùng với số mà user đã nhập vào, nếu dùng hidden input để post lun or cho dzo6 url kiểu login.php?sn=657982 thì dễ phá quá có thể chơi 1 vòng lặp là đầy data.
- Hoặc lưu vào db để check
$_SESSION['sn']=245312; mình sẽ echo nó ra cho user nhập dzô.
nếu ta ko dùng trang đó mà mở tiếp trang thứ 2 register.php thì $_SESSION['sn'] nhận giá trị mới, nếu lúc này quay lại trang đầu đăng ký thì dù nhập đúng security number thì khi check sn trên server thì nó vẫn báo sai.
còn lưu vào db thì query làm sao đây, điều kiện (where) thế nào để moi ra được cái sn đã lưu
<?
@session_start();
$_SESSION***91;"send"***93; = true; // Đặt đầu form
....
if(isset($_SESSION***91;"send"***93;)) {
... // xử lí ở đây
}
else {
echo "No flooding";
}
unset($_SESSION***91;"send"***93;)
?>