Home > Backend Development > PHP Tutorial > PHP simulates logging into DZ forum through curl_PHP tutorial

PHP simulates logging into DZ forum through curl_PHP tutorial

WBOY
Release: 2016-07-13 09:54:09
Original
946 people have browsed it

php simulates logging in to the DZ forum through curl

This article will introduce to you about Php CURL simulated login to the forum and collect data examples. If you are interested in using the curl simulated login function Interested parties can enter for reference.

Libcurl also supports HTTPS authentication, HTTP POST, HTTP PUT, FTP upload (this can also be completed through PHP's FTP extension), HTTP form-based upload, proxy, cookies and username and password authentication.

 ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

$discuz_url = 'http://www.jb51.net/';//Forum address

$login_url = $discuz_url .'login.php?action=login';//Login page address

$post_fields = array();

//The following two items do not need to be modified

$post_fields['loginfield'] = 'username';

$post_fields['loginsubmit'] = 'true';

//Username and password, must be filled in

$post_fields['username'] = 'tianxin';

$post_fields['password'] = '111111';

//Safety Questions

$post_fields['questionid'] = 0;

$post_fields['answer'] = '';

//@todo verification code

$post_fields['seccoverify'] = '';

//Get form FORMHASH

$ch = curl_init($login_url);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$contents = curl_exec($ch);

curl_close($ch);

preg_match('//i', $contents, $matches);

if(!empty($matches)) {

$formhash = $matches[1];

} else {

die('Not found the forumhash.');

}

//POST data, obtain COOKIE, and put the cookie file in the temp directory of the website

$cookie_file = tempnam('./temp','cookie');

$ch = curl_init($login_url);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

curl_exec($ch);

curl_close($ch);

//After getting the key cookie file, you can use the cookie file to simulate posting. Fid is the column ID of the forum

$send_url = $discuz_url."post.php?action=newthread&fid=2";

$ch = curl_init($send_url);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);

$contents = curl_exec($ch);

curl_close($ch);

//The hash code here is different from the hash code in the login window. The hidden here has an additional id attribute

preg_match('//i', $contents, $matches);

if(!empty($matches)) {

$formhash = $matches[1];

} else {

die('Not found the forumhash.');

}

$post_data = array();

//Post title

$post_data['subject'] = 'test2';

//Post content

$post_data['message'] = 'test2';

$post_data['topicsubmit'] = "yes";

$post_data['extra'] = '';

//Post tag

$post_data['tags'] = 'test';

//The hash code of the post, this is very critical! If this hash code is missing, discuz will warn you that the page you came from is incorrect

$post_data['formhash']=$formhash;

$ch = curl_init($send_url);

curl_setopt($ch, CURLOPT_REFERER, $send_url); //Disguise REFERER

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

$contents = curl_exec($ch);

curl_close($ch);

//Clean cookie files

unlink($cookie_file);

?>

The above is the entire content of this article, I hope you all like it.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/998364.htmlTechArticlephp simulates logging into the DZ forum through curl. This article will introduce to students about Php CURL simulated logging into the forum and collecting data. Example, if you are interested in using curl to simulate login function, please go to...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template