post image

Căn bản PHP – Bài 4 – Phần 2

Để tiếp tục trong Series này tôi xin giới thiệu sơ qua về đối tượng SESSION và COOKIE trong PHP. Các khái niệm và cách thức khai báo các đối tượng này.

Sau một thời gian sắp xếp công việc đầu năm, tôi lại có chút thời gian để thực hiện tiếp phần 2 này cho các bạn, chúc các bạn năm mới vui vẻ và gặt hái được nhiều thành quả mới trong năm mới. năm Dần hãy mạnh mẽ như Hổ nhé.

Với Video này các bạn sẽ nắm vững về cách tạo và sử dụng các đối tượng SESSION và COOKIE, các cách để xoá 1 hoặc nhiều đối tượng SESSION và COOKIE trong PHP. Cũng như với mọi tiêu chí tôi sẵn sàng nhận những ý kiến đóng góp về ý kiến cho Video để ngày càng hoàn thiện hơn.

Thời lượng: 25:10

Download định dạng .avi chất lượng cao: Link sẽ được cập nhật sau 7 ngày

«

»

53 Comments

( Comment bài này )
  1. tung1709 says:

    ANh CS ơi !
    Cái lỗi Cannot modify header information – headers already sent by đó , em vẫn chưa biết sửa thế nào
    Thấy hướng dẫn ở trên là đọc cái bài 4_1 nhưng không thấy
    Mong anh hướng dẫn sửa lỗi này với
    Thanks

  2. MrBlackStar says:

    Thank bạn Vuong , đang không xem được video thì bắt đc cái kho MF , mừng quá.

  3. mr_din says:

    thanks moi nguoi

  4. Vuong says:

    http://www.mediafire.com/?sharekey=69892638da4e14f47172638919447f8b49204ebc7493a824

    Toàn bộ video về php của anh CS tới thời điểm này đây bạn

  5. luffy says:

    có bác nào down đủ 6 phần thì post lên MF giúp em mấy. hic!!! em không thấy link thanks các bác nhiều

  6. Nguyễn Thụy Vân says:

    Anh clacken smith ơi,lỗi này là như nào ạ:
    Cannot modify header information – headers already sent by

  7. Tạ Tuyền says:

    Chào Anh Clacken Smith :Cho Em hoi Em làm Như Anh nhưng không hiểu lỗi này là gì nữa -:Warning: Cannot modify header information – headers already sent by
    (Anh này,sao Em làm nó báo sai ở dòng:
    setcookie(‘user’,$user,time()+3600);
    setcookie(‘pass’,$pass,time()+3600);
    Sao Vậy Anh,Giúp Em với

  8. boykatty says:

    lỗi này là sao hả claccken.smith: Warning: Cannot modify header information – headers already sent by chỉ cách khắc phục với

  9. chibehehe says:

    Nếu trong 1 trang web , có 2 người online , người này muốn chát với người kia => tạo ra 1 cửa sổ chát , vậy phải làm session để lưu lại lịch sử chát của họ,cũng có thể lưu trong csdl với từng phiên session_id .

    Nhưng mình k muốn dùng csdl , mình chỉ muốn lưu history trong khoảng thời gian nhất định đỡ tốn csdl , vì không chỉ có 2 người chát với nhau nên dùng session , nhưng dùng nhiều session thế thì lạm dụng quá với lại memory của brower sẽ k ổn .

    Bạn còn cách nào hay hơn thì view cho mình với , Thanks bạn nhiều nhé :x

  10. @chibehehe :
    + Bạn có thể tạo bao nhiêu biến session cũng được.
    + Cái này cũng chẳng nói trước được, còn tuỳ vào độ dữ liệu của bạn để biết được thôi, session có thể là text, mảng, object.
    +Cái này đúng là không biết, hồi đó đến giờ thật chưa bao giờ đo dữ liệu session :)

  11. chibehehe says:

    mình muốn hỏi bạn 1 chút , tìm nhiều nơi mà k có ai giải thích :

    + tối đa cho việc khỏi tạo session là bao nhiêu biến(vd:5 hay 10 biến session cho mỗi phiên làm việc…)
    + mỗi biến session lưu trữ được dung lượng bao nhiêu character(hay kb)
    + cách đo kb của biến session thế nào

    Mong bạn giúp mình , để tránh lạm dụng session quá . Thanks bạn nhé

  12. Bạn xem bài 4 phần 1 nhé

  13. tinharvard says:

    cho em hỏi lổi này là lổi gi?
    Warning: Cannot modify header information – headers already sent by

  14. Cũng chẳng nên giải thích nhiều về cái này, nếu như thế này mà hiểu là ổn.

    ———————- Tham chiếu biến ———————
    nếu trong php ta đặt biến như sau :

    $a = &$b;
    ====== Khi thay đổi giá trị 1 trong 2 biến =========
    $a =10;
    echo $a;
    echo $b;

    ====== Kết quả trả về =====
    10
    10

    ====== Giá trị các biến ====
    $a = 10;
    $b = 10;

    ====== Kết Luận ========
    Như vậy đây là tham chiếu giữa các biến, một trong 2 biến được tham chiếu thay đổi giá trị thì biến còn lại sẽ thay đổi giá trị.

    ——- Trường hợp tham chiếu biến với function & ———
    $a = 10;
    ====== Với function cộng ta có được như sau ======
    function cong(&$value){
    $value++;
    }
    ====== Khi gọi hàm này =========
    cong($a);
    echo $a
    ====== Giá trị sau khi gọi hàm ====
    $a = 11;
    ====== Kết Luận ========
    Như vậy tham chiếu giữa $a và biến $value trong function được gắn kết. Khi $value thay đổi giá trị sẽ dẫn | theo sự thay đổi giá trị của $a;

    ——————– Hủy bỏ tham chiếu —————-
    Để hủy bỏ tham chiếu giữa 2 biến ta sử dụng hàm unset
    $a = 1;
    $a = &$b;
    unset($a);

  15. nhtera says:

    @lovely nếu bác có học c thì cái này cũng dễ hiểu thôi . Con trỏ là 1 biến mà giá trị của nó là 1 địa chỉ của biến khác. vậy khi truyền tham chiếu chính là ta truyền địa chỉ của biến đó . giả sử ta có biến a và địa chỉ của nó là &a (trong php biến có thêm $ đằng trước , ta tạm bỏ qua để đỡ lằng nhằng) . bây giờ ta truyền &a sang một function khác để sử lí vậy sau khi sử lí thao tác ở cái function với cái địa chỉ được truyền đi đó thì sao , hehe thì tất nhiên là giá trị cái biến a cũng sẽ thay đổi theo những gì mà cái function kia nó làm. Còn truyền tham trị thì không , chúng ta chỉ truyền giá trị. function lúc này thao tác với một biến hoàn toàn khác , nếu muốn lấy giá trị gì thì chỉ có cách lấy return của function đó thôi . Vì thế con trỏ cũng là một cách mà ta có thể lấy được nhiều giá trị trả về từ function .

    Trên đây là cách hiểu của em trong c vì php em cũng đang tự tìm hiểu qua mấy tut trên izwebz thôi .nhưng em nghĩ chắc cũng không khác nhau nhiều . Có gì xin các bác bổ xung sửa đổi thêm .

  16. lovely says:

    mình cũng rất thích php , nhưng nhiều lúc đọc function thấy có dấu & , biết là nó là tham chiếu , nhưng k sử dụng nó cũng có sao đâu.Mong bạn giúp mình hiểu rõ thêm về dấu tham chiếu đó :
    + Định nghĩa lại tham chiếu
    + lúc nào thì dùng tham chiếu

  17. Còn tùy cũng chẳng nói là thường được, nếu bạn làm mã nguồn muốn sử dụng trên 1 site thì cứ phang http://domain.com/…. là ổn. Nhưng với đường dẫn này nếu chuyển sang 1 domain khác như DDomain.com thì đường dẫn tuyệt đối này trở thành sai. Còn phải linh hoạt trong khi thiết kế thôi.

  18. hiep says:

    Vậy thì mình thường dùng đưỡng dẫn tương đói hay tuyệt đối hay đường dẫn dạng folder ????

  19. tuan says:

    thanks Clackken Smith nhé, mình đã học thêm được nhiều kiến thức từ bạn.

  20. Cái này có vẻ bạn chưa học kỹ nhỉ. Ví dụ :

    domain
    .|
    .|-index.html
    .|-Images
    …..|-banner.jpg
    …..|-logo.gif
    …..|-im-index.html
    .|-Css
    ….|-style.css
    ….|-s-index.html

    - Rồi như trên đó là cấu trúc thư mục web thường sài.
    —————— index.html: ———————-
    nếu bạn sử dụng thẻ trong file này thì sẽ dùng như sau :
    src=”Images/banner.jpg” alt=”" / >

    —————– im-index.html ————————-
    nếu bạn sử dụng thẻ trong file này thì sẽ dùng như sau :

    src=”banner.jpg” alt=”" / >

    —————– s-index.html ————————-
    nếu bạn sử dụng thẻ trong file này thì sẽ dùng như sau :

    src=”../Images/banner.jpg” alt=”" / >

    —————– Trong cả 3 file ———————-
    nếu bạn sử dụng thẻ bằng đường dẫn tuyệt đối trong file này thì sẽ dùng như sau :

    src=”http://domain.com/Images/banner.jpg” alt=”" / >

    —————- đối với loại đường dẫn /folder ——–
    Nếu bạn khai báo /Images/logo.gif trong file index.html, sẽ có hiệu lực bởi vị thư mục gốc của file index là root, từ nó tính vào Images có tồn tại.

    Nhưng nếu bạn khai báo /Images/logo.gif trong 2 file (im-index.html và s-index.html) thì trong 2 thư mục chứa 2 file này không hề có sự tồn tại của thư mục Images nên hình ảnh sẽ không được đưa lên.

  21. tuan says:

    mình mới học php cho mình hỏi 1 chút về đường dẫn file nhé,lúc thì mình thấy họ dùng đường dẫn tương đối, lúc thì tuyệt đối,lúc thì lại tuyệt đối kiểu :
    +D://www/abc/abc.jpg
    lúc thì lại tuyệt đối kiểu :
    + localhost/abc/abc.jpg
    @ Vậy khi nào dùng tương đói và khi nào dùng tuyệt đối vậy
    @ Và sao lại có 2 kiểu tuyệt đối thế kia
    @ thường thì khi fix đường dẫn của ảnh thì :
    abc/abc.jpg hoặc ../abc/abc.jpg(tức back lại 1 thư mục).Còn thế này thì là thế nào :
    /abc/abc.jpg

    Giúp mình nhé !

  22. huyen says:

    thanks Clackken Smith , chúc bạn 1 ngày làm việc hiệu quả và thành công,và sẽ có nhiều clip thật hay nhé s2 !

  23. Hoàn toàn không ! như tôi đã nói ở trên SessionID chỉ là một trong những tham số mà SERVER trả về cho trình duyệt mà thôi. Khi tắt trình duyệt tức phiên làm việc kết thúc, tất cả các tham số đã được khai báo sẽ bị xoá tại SERVER và việc lấy lại nó là hoàn toàn không thể

  24. huyen says:

    session_id là lấy và gán phiên làm việc hiện tại.
    Nếu session_id của phiên làm việc cũ là = 5 chẳng hạn:
    $session["user"]=izzwebz
    Nếu tớ gán cho session_id phiên làm việc của phiên trước đó.Thì phiên làm này trình duyệt còn nhận ra tớ k, còn nhận ra $session["user"]=izzwebz k ?

  25. + điều mà bạn hiểu sai về session :

    Session : Bản thân nó được Server cấp ID cho mỗi phiên làm việc, giá trị của Session trong phiên làm việc này hoàn toàn khác với phiên làm việc khác. Bạn vào từ 2 máy tính trong cùng 1 thời điểm nhưng Session ID lại hoàn toàn không giống nhau. Nên một khi bạn đã tắt trình duyệt bạn sẽ không thể lấy được giá trị của biến session trong phiên làm việc trước đó.

    @ : Bạn lưu sessionID trong Cookie thì lúc này cookie lại có hiệu lực, giá trị của cookie đó sẽ được set đúng trong phiên làm việc hiện tại, sau khi tắt trình duyệt mở lại, phiên làm việc khác sẽ có sessionID khác nên sẽ không thể trùng với SessionID đã lưu trong Cookie. Chính vì vậy các giá trị của phiên là việc trước sẽ không thể nào lấy được. Để làm được ý tưởng như bạn nói, bạn cần phải sử dụng đến CSDL, bạn sẽ lưu SessionID và các giá trị của ID đó, sau đó bạn lấy SessionID trong Cookie so sánh nếu trùng lấy giá trị cần lấy đưa ra màn hình.

  26. huyen says:

    Theo tớ biết thì cookie sẽ lưu ở file client và sẽ tự động gửi từ brower lên sever , còn sesion thì sẽ gửi lên sever và lấy sesion id .và mỗi lần sau chỉ việc gửi id lên sever thôi.
    - Vậy nếu tớ để session id lưu trong cookie thì sẽ thế nào
    - và giải thích giúp tớ về phiên làm việc của session(tức session id)
    - nếu session của phiên làm việc thứ nhất mất rồi, sang phiên thứ 2 , nhưng tớ chỉ gửi session id của phiên làm việc thứ nhất đã hết lên , liệu sever còn nhận ra phiên thứ 1 này k ???
    Giúp tớ nhé

  27. Bạn nên xem cả phần 1 để hiểu hơn nhé. Có thể khai quát cookie và session cách sử dụng giống nhau nhưng cơ chế khác nhau ở chỗ. Session sẽ mất khi trình duyệt tắt hoặc người dùng huỷ nó, Cookie thì vẫn tồn tại dạng file lưu trữ trên máy người dùng và nó chỉ mất hiệu lực khi hết hạn hoặc bị xoá bỏ. Ko mất đi khi tắt trình duyệt.

  28. tien says:

    - cho mình hỏi sự khác nhau giữa session và cookie ?
    - khi nào nên dùng session , và khi nào nên dùng cookie
    giúp mình nhé

  29. -huy says:

    rất hay :) thank bạn nhiều nhé

  30. Johny Tran says:

    That’s great!

1 2
  1. BB
  2. BB
  3. BB

arrow

Lưu ý khi post comment:

  • Không "bóc tem" topic
  • Dùng lời lẽ có văn hoá và lịch sự
  • Xem trang FAQs trước khi hỏi
  • Bạn có thể dùng thẻ HTML như:<strong>, <em>, <a>
  • Đặt code trong thẻ [php],[html],[javascript],[css]

Chọn kiểu gõ: Tự động TELEX VNI Tắt