30/09/2018, 16:28

[Hỏi] Php và Curl

Có bạn nào trong diễn đàn đã làm việc với php và curl cho mình hỏi cách xử lý bài toán này.
Bài toán:

  1. Mình có 1 trang web muốn đăng nhập tự động vào bằng curl với các tham số user & pass.
  2. Sau khi đăng nhập tự động chyển đến 1 trang nào đó trong web
  3. Chuyển đến trang đó mình cần download 1 file, để down dược file này cần điền một số thông tin như file version mấy, chọn chế độ word hoặc pdf,… và link của file này đã mã hóa, khi làm trên web bình thường sẽ không lấy được trực tiếp, chỉ khi điền đủ thông tin và click nút mới down được.

Các bước 1, 2 mình đã làm được, giờ bạn nào gọi ý giúp mình bước 3. Cảm ơn các bạn.

Nguyễn Minh Dũng viết 18:29 ngày 30/09/2018

Chuyển đến trang đó mình cần download 1 file, để down dược file này cần điền một số thông tin như file version mấy

File version mấy là sao nhỉ? Em tính download từ source control hả?

khi làm trên web bình thường sẽ không lấy được trực tiếp, chỉ khi điền đủ thông tin và click nút mới down được.

Vậy em có vấn đề với nút click hay vấn đề với thông tin?

P/S: Anh không làm với PHP, nhưng anh có một số kinh nghiệm làm crawler nên tò mò tí làm rõ câu hỏi thôi.


@laptrinhio @kayz

Quân viết 18:29 ngày 30/09/2018
  • kiểu như mỗi năm người ta ra 1 file ấy anh. mình cần chọn file nào.
  • vấn đề với cả 2 anh ah. trong quá trình login thì được, nhưng khi vào trang này thì em không làm được.
Võ Hoài Nam viết 18:41 ngày 30/09/2018

Cho mình thắc mắc bước 3 của bạn… Có phải là bạn đã dọn sẵn cho người ta một menu, chỉ cần họ điền đẩy đủ thông tin mới cho download. Còn thiếu chỗ nào, báo lỗi chỗ đó lên hoặc không cho người ta di chuyển trang?

Quân viết 18:32 ngày 30/09/2018

Đúng rồi bạn. bạn biết chỉ mình với.

Võ Hoài Nam viết 18:29 ngày 30/09/2018

Hướng mình nghĩ là sẽ can thiệp bằng JavaScript chứ không phải PHP.

Giải pháp:

  1. tạo một form nhưng nút Submit có type là button.
  2. dùng JavaScript, viết Regular Expression hay gì đó để kiểm tra tính đúng đắn của dữ liệu trong sự kiện submit của form.
  3. nếu thỏa các bước kiểm tra dữ liệu thì thay đổi type của nút Submit đó về submit

Mình thì thích xài cách này lắm Lý do, trong một form, nếu nút Submit có type là submit thì hễ nhấn là nó sẽ gởi request lên Server. Còn đối với type button thì chấp hết Sự ảo ảo của giải pháp này nằm ở chỗ thay đổi type của nút Submit từ button sang submit. Bác cứ thử đi.

Đinh Quốc Hân viết 18:33 ngày 30/09/2018

Button hay Submit thì cũng vậy, quan trọng chúng ta viết đoạn JS như thế nào! Ví dụ khi mình đặt một cái form submit với name bất kì, mình chỉ việc thêm một sự kiện onclick và sự kiện mình cho nó là return false thì nó sẽ không gửi lên server mà để cho JS chúng ta xử lý.

Võ Hoài Nam viết 18:40 ngày 30/09/2018

tại em không thích có chữ “onclick” hoặc “onsubmit” ở trong code HTML thôi

Đinh Quốc Hân viết 18:34 ngày 30/09/2018

gọi ID của nó cũng được mà

Võ Hoài Nam viết 18:45 ngày 30/09/2018

thì đó… cách của em là dùng selector của JavaScript mà

Quân viết 18:29 ngày 30/09/2018

Như bạn @keyz nói, quan trọng đoạn JS viết sao để download được ấy. Vì link down ẩn lại cần điền thông tin nên không biết phải viết sao để nó down.

Đinh Quốc Hân viết 18:33 ngày 30/09/2018

Cái này chỉ cần gửi theo kiểu ajax nếu đúng theo yêu cầu rồi thì ajax trả về thông tin link download có thể theo giây hoặc trực tiếp. AJAX mạnh lắm

Nguyễn Dương Thái viết 18:31 ngày 30/09/2018

Cho mình hỏi, muốn dùng curl cho 1 nút nhấn để truyền 1 biến đến 1 server khác thì cần làm gì ?

Bài liên quan
0