На vps, данный код нормально, работает.
На фри-хостинге uhostall нет.
Я сделал вывод, что просто сессии, это ведь файлы, а они не пишутся в нужное место hdd-серверов фри-хостинга uhostall.
PHP |
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
| <?php
/*
Plugin Name: Referall 123
Plugin URI: https://wordpress.org/plugins/referall-123/
Description: Plugin for create Referall programm on your wordpress site
Version: 1.2
Author: author
Author URI: https://profiles.wordpress.org/aleksandrposs/
*/
function referal123_request_123(){
if (isset($_REQUEST['ref_id'])) {
global $_SESSION;
$_SESSION['reg_ref_id'] = sanitize_text_field($_REQUEST['ref_id']);
}
if (isset($_REQUEST['ref'])) {
$str = "Location:/wp-login.php?action=register&ref_id=" . sanitize_text_field($_REQUEST['ref']) . "";
header($str);
die();
}
}
add_action('init', 'referal123_request_123');
function referal123_insert() {
if ($_REQUEST["checkemail"] == "registered") {
global $_SESSION;
global $wpdb;
$res = $wpdb->get_results("SELECT MAX(ID) FROM $wpdb->users");
$res = (array) $res[0];
$userIdForRef = (int) $res["MAX(ID)"];
add_user_meta( $userIdForRef, 'referall_login', sanitize_text_field($_SESSION['reg_ref_id']) );
}
}
add_filter('login_message', 'referal123_insert');
function referal123_registration_form() {
?>
<p>
<label for="first_name">
<?php esc_html_e( 'Referall Login', 'referall_login' ) ?> <br/>
<input type="text" class="regular_text" name="referall_login" value="<?php
global $_SESSION;
echo sanitize_text_field($_SESSION['reg_ref_id']);
?>"/>
</label>
</p>
<?php
}
add_action( 'register_form', 'referal123_registration_form' );
function referall123_my_referall_link() {
add_dashboard_page( __( 'My referall link', 'referall123' ), __( 'My referall link', 'referall123' ), 'read', 'wpdocs-unique-identifier', 'referall123_wpdocs_plugin_function' );
}
add_action('admin_menu', 'referall123_my_referall_link');
function referall123_wpdocs_plugin_function(){
echo "<center>";
echo "Your referall link is:<br>";
echo home_url(). "/?ref=" . get_current_user_id() . "";
echo "</center>";
}
function referal123_my_referall_link_2() {
add_dashboard_page( __( 'List referalls', 'referall123' ), __( 'List referalls', 'referall123' ), 'read', 'List-referalls', 'referal123_wpdocs_plugin_function_2' );
}
add_action('admin_menu', 'referal123_my_referall_link_2');
function referal123_wpdocs_plugin_function_2(){
?>
<style>
#ref_left{width:200px;height:20px;float:left;}
#ref_center{width:200px;height:20px;float:left;}
#ref_right{clear:left;}
</style>
<center>
<h2>List referalls</h2>
</center>
<?php
global $wpdb;
$db_ref_min = (int) $_REQUEST['db_ref_min'];
$db_ref_max = (int) $_REQUEST['db_ref_max'];
if ( $db_ref_max == 0) {
$db_ref_max = 5;
}
$res_count = $wpdb->get_results(
"
SELECT COUNT(*) FROM $wpdb->users,$wpdb->usermeta
WHERE $wpdb->users.ID=$wpdb->usermeta.user_id
AND $wpdb->usermeta.meta_key='referall_login'
;
"
);
$res_count = (array) $res_count[0];
$res_count = (int) $res_count["COUNT(*)"];
if (isset( $db_ref_min) && isset( $db_ref_max)) {
$res = $wpdb->get_results(
"
SELECT * FROM $wpdb->users,$wpdb->usermeta
WHERE $wpdb->users.ID=$wpdb->usermeta.user_id
AND $wpdb->usermeta.meta_key='referall_login'
AND $wpdb->usermeta.meta_value!=''
LIMIT " . $db_ref_min . "," . $db_ref_max . "
;
"
);
} else {
$res = $wpdb->get_results(
"
SELECT * FROM $wpdb->users,$wpdb->usermeta
WHERE $wpdb->users.ID=$wpdb->usermeta.user_id
AND $wpdb->usermeta.meta_key='referall_login'
LIMIT 0,10
;
"
);
}
?>
<div id="ref_left">User</div><div id="ref_center">Referall</div><div style="clear:left;"></div>
<?php
$i = 0;
$i_step = 0;
foreach($res as $r){
$r = (array) $r;
?>
<div id="ref_left"><?php echo $r["user_login"]; ?></div>
<div id="ref_center"><?php echo $r["meta_value"]; ?></div>
<div id="ref_right"></div>
<?php
$i++;
}
// back
if ($i < $res_count) { $db_ref_min1 = $db_ref_min - 5; $db_ref_max1 = $db_ref_max - 5;}
if ($db_ref_min1 < 0) {
} else {
echo '<a href="/wp-admin/index.php?page=List-referalls&db_ref_min=' . $db_ref_min1 . '&db_ref_max=' . $db_ref_max1 . '">Back</a>';
}
// next
if ($i < $res_count) { $db_ref_min2 = $db_ref_min + 5; $db_ref_max2 = $db_ref_max + 5; }
if ($db_ref_min2 >= $res_count) {
} else {
echo '<a href="/wp-admin/index.php?page=List-referalls&db_ref_min=' . $db_ref_min2 . '&db_ref_max=' . $db_ref_max2 . '">Next</a>';
}
}
?> |
|
Как на хостинге uhostall, сделать, чтобы работали сессии в php, $_SESSION ?
Добавлено через 2 часа 8 минут
Разобрался, нужно добавить следующий код,
во все функции, где идет вызов $_SESSION..
PHP |
1
2
3
4
| if(session_id() == ''){
//session has not started
session_start();
} |
|