$_request geeft vreemde waarde
De link waarnaar de "vreemde" code verwijst werkt wel, dus de pagina wordt bereikt. Maar het komt op mij over als of het niet de bedoeling is.
Weet iemand misschien waar ik moet beginnen met zoeken naar de oplossing? Is dit een standaard instelling vanuit PHP 5.3.0 omdat daar de functie request_order toegevoegd is?
Of zit het puur in mijn code waardoor $_REQUEST niet goed verwijst.
Help aub.
Toevoeging op 13/02/2012 16:05:54:
script regel als voorbeeld:
$page = (!empty($_REQUEST['page'])) ? $_REQUEST['page'] : 'messaging';
Toevoeging op 13/02/2012 16:06:54:
Geeft als output:
http://localhost/members_area.php?page=/-/im/-/ie/-/is/-/is/-/ia/-/ig/-/ii/-/in/-/ig/-/i
Je zegt dat er regelmatig gebruik van wordt gemaakt. Is dit dan een probleem dat opeens tevoorschijn is gekomen of is dit vanaf het begin af aan al zo?
$_REQUEST is niet veilig om te gebruiken. Gebruik $_POST of $_GET, maar niet $_REQUEST.
Indien de variabele in de url zit, gebruik je $_GET; indien de variabele uit een formulier komt (met method="post") gebruik je $_POST.
$_REQUEST is een soort merge van verschillende input van de gebruiker. $_REQUEST maakt dus dat jij, de scripter, minder vat hebt op je eigen code. Je weet namelijk niet waar die waarde vandaan komt.
Tegenwoordig zie ik geen enkele toepassing waarbij dit als een goed ding kan beschouwd worden.
Gewijzigd op 13/02/2012 17:17:58 door Kris Peeters
Bedankt allemaal. Ik ga het met GET proberen. Zou idd ook moeten werken.
Kijk ook even naar je .htaccess, maybe that's the place where 'the magic' happens.
Het gaat hier om oud script welke al helemaal geschreven is en ik ben deze aan het "finetunen".
PS Ik heb nog geen .htaccess file omdat ik nu nog lokaal aan het knutselen ben. Ik gebruik het ook meer om bekend te worden binnen PHP/MySQL.
Nogmaals help aub.
Stephan Hendrikx op 14/02/2012 08:58:50:
Het gaat hier om oud script welke al helemaal geschreven is en ik ben deze aan het "finetunen".
Hoe oud?
Laat eens wat concrete code zien.
Code (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
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
<?
session_start();
define ('IN_SITE', 1);
include_once ('includes/global.php');
include_once ('global_header.php');
(array) $query = null;
$parent_id = intval($_REQUEST['parent_id']);
$advanced_search = ($_REQUEST['advanced_search'] == '') ? 1 : intval($_REQUEST['advanced_search']);
$template->set('parent_id', $parent_id);
define('IS_CATEGORIES', 1);
//$template->set('db', $db);
(string) $subcategories_content = null;
$main_category_id = $db->main_category($parent_id);
$category_details = $db->get_sql_row("SELECT image_path, minimum_age FROM " . DB_PREFIX . "categories WHERE category_id='" . $main_category_id . "'");
$category_logo = $category_details['image_path'];
$category_logo = (!empty($category_logo)) ? '<img src="' . $category_logo . '" border="0">' : '';
$template->set('category_logo', $category_logo);
$categories_header_menu = category_navigator($parent_id, true, true, 'categories.php');
$template->set('categories_header_menu', $categories_header_menu);
Zomaar een willekeurig voorbeeldje
Het is code geschreven in 2007
[size=xsmall][i]Toevoeging op 14/02/2012 13:02:28:[/i][/size]
Ik vermoedt dat het ergens in het script zit want op bovenstaande 'parent-id' geeft hij wel de juiste waarde weer.
kan iemand me enigszins op weg helpen?
session_start();
define ('IN_SITE', 1);
include_once ('includes/global.php');
include_once ('global_header.php');
(array) $query = null;
$parent_id = intval($_REQUEST['parent_id']);
$advanced_search = ($_REQUEST['advanced_search'] == '') ? 1 : intval($_REQUEST['advanced_search']);
$template->set('parent_id', $parent_id);
define('IS_CATEGORIES', 1);
//$template->set('db', $db);
(string) $subcategories_content = null;
$main_category_id = $db->main_category($parent_id);
$category_details = $db->get_sql_row("SELECT image_path, minimum_age FROM " . DB_PREFIX . "categories WHERE category_id='" . $main_category_id . "'");
$category_logo = $category_details['image_path'];
$category_logo = (!empty($category_logo)) ? '<img src="' . $category_logo . '" border="0">' : '';
$template->set('category_logo', $category_logo);
$categories_header_menu = category_navigator($parent_id, true, true, 'categories.php');
$template->set('categories_header_menu', $categories_header_menu);
Zomaar een willekeurig voorbeeldje
Het is code geschreven in 2007
[size=xsmall][i]Toevoeging op 14/02/2012 13:02:28:[/i][/size]
Ik vermoedt dat het ergens in het script zit want op bovenstaande 'parent-id' geeft hij wel de juiste waarde weer.
kan iemand me enigszins op weg helpen?
Gewijzigd op 14/02/2012 11:05:10 door Stephan Hendrikx
Bovenstaande code laat volgens mij niet zien hoe je url wordt opgebouwd.
Misschien handig om die code te posten, want daar zou mogelijk meer duidelijk uit kunnen worden. En het is dan een kwestie van stapje voor stapje terug:
Waar wordt de url opgebouwd?
Gebeurt dat door variabelen?
Hoe zijn die gedefinieerd?
Ik post het script zodra ik denk dat ik het gevonden heb.
Toevoeging op 14/02/2012 16:08:14:
De link in de browser:
<td class="c2">
<a href="
Code (php)
1
<?=process_link('members_area', array('page' => 'messaging', 'section' => 'received'));?>
</td>
Dit geeft in de browser de output:
http://localhost/members_area.php?page=/-/im/-/ie/-/is/-/is/-/ia/-/ig/-/ii/-/in/-/ig/-/i§ion=/-/ir/-/ie/-/ic/-/ie/-/ii/-/iv/-/ie/-/id/-/i
De Functie "process_link":
Code (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
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
<?php
function process_link($base_url, $var_array = NULL)
{
global $setts;
$ssl_url_simple = array('login', 'register');
$ssl_url_enhanced = array('login', 'register', 'members_area', 'fee_payment');
$ssl_url_array = ($setts['enable_enhanced_ssl']) ? $ssl_url_enhanced : $ssl_url_simple;
(string) $output = NULL;
$path = ($setts['is_ssl']==1 && (in_array($base_url, $ssl_url_array))) ? $setts['site_path_ssl'] : $setts['site_path'];
if ($setts['is_mod_rewrite'] && $var_array)
{
if ($var_array)
{
while(list($key, $value) = each($var_array))
{
$sanitized_value = sanitize_var($value);
$output .= $sanitized_value.','.$key.',';
}
}
$output .= $base_url;
}
else
{
$output = $base_url.'.php';
if ($var_array)
{
$output .= '?';
while(list($key, $value) = each($var_array))
{
$sanitized_value = sanitize_var($value);
$output .= $key.'='.$sanitized_value.'&';
}
$output = substr($output,0,-1);
}
}
return $path . $output;
}
?>
function process_link($base_url, $var_array = NULL)
{
global $setts;
$ssl_url_simple = array('login', 'register');
$ssl_url_enhanced = array('login', 'register', 'members_area', 'fee_payment');
$ssl_url_array = ($setts['enable_enhanced_ssl']) ? $ssl_url_enhanced : $ssl_url_simple;
(string) $output = NULL;
$path = ($setts['is_ssl']==1 && (in_array($base_url, $ssl_url_array))) ? $setts['site_path_ssl'] : $setts['site_path'];
if ($setts['is_mod_rewrite'] && $var_array)
{
if ($var_array)
{
while(list($key, $value) = each($var_array))
{
$sanitized_value = sanitize_var($value);
$output .= $sanitized_value.','.$key.',';
}
}
$output .= $base_url;
}
else
{
$output = $base_url.'.php';
if ($var_array)
{
$output .= '?';
while(list($key, $value) = each($var_array))
{
$sanitized_value = sanitize_var($value);
$output .= $key.'='.$sanitized_value.'&';
}
$output = substr($output,0,-1);
}
}
return $path . $output;
}
?>
In de admin sectie staat SSL niet aangevinkt.
Verder is er nog de basisfile voor de members_area met daarin een gedeelte van de code:
Code (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
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
<?
session_start();
define ('IN_SITE', 1);
include_once ('includes/global.php');
include_once ('includes/class_formchecker.php');
include_once ('includes/class_custom_field.php');
include_once ('includes/class_user.php');
include_once ('includes/class_fees.php');
include_once ('includes/class_shop.php');
include_once ('includes/class_item.php');
include_once ('includes/functions_item.php');
include_once ('includes/functions_login.php');
include_once ('includes/class_messaging.php');
include_once ('includes/class_reputation.php');
if (!$session->value('user_id'))
{
header_redirect('login.php');
}
else
{
$page = (!empty($_REQUEST['page'])) ? $_REQUEST['page'] : 'messaging';
$section = (!empty($_REQUEST['section'])) ? $_REQUEST['section'] : 'received';
$page = ($page == 'wanted_ads' && !$setts['enable_wanted_ads']) ? 'messaging' : $page;
$section = ($page == 'wanted_ads' && !$setts['enable_wanted_ads']) ? 'received' : $section;
$page = ($page == 'store' && !$setts['enable_stores']) ? 'messaging' : $page;
$section = ($page == 'store' && !$setts['enable_stores']) ? 'received' : $section;
$page = ($page == 'bulk' && !$setts['enable_bulk_lister']) ? 'messaging' : $page;
$section = ($page == 'bulk' && !$setts['enable_bulk_lister']) ? 'received' : $section;
?>
session_start();
define ('IN_SITE', 1);
include_once ('includes/global.php');
include_once ('includes/class_formchecker.php');
include_once ('includes/class_custom_field.php');
include_once ('includes/class_user.php');
include_once ('includes/class_fees.php');
include_once ('includes/class_shop.php');
include_once ('includes/class_item.php');
include_once ('includes/functions_item.php');
include_once ('includes/functions_login.php');
include_once ('includes/class_messaging.php');
include_once ('includes/class_reputation.php');
if (!$session->value('user_id'))
{
header_redirect('login.php');
}
else
{
$page = (!empty($_REQUEST['page'])) ? $_REQUEST['page'] : 'messaging';
$section = (!empty($_REQUEST['section'])) ? $_REQUEST['section'] : 'received';
$page = ($page == 'wanted_ads' && !$setts['enable_wanted_ads']) ? 'messaging' : $page;
$section = ($page == 'wanted_ads' && !$setts['enable_wanted_ads']) ? 'received' : $section;
$page = ($page == 'store' && !$setts['enable_stores']) ? 'messaging' : $page;
$section = ($page == 'store' && !$setts['enable_stores']) ? 'received' : $section;
$page = ($page == 'bulk' && !$setts['enable_bulk_lister']) ? 'messaging' : $page;
$section = ($page == 'bulk' && !$setts['enable_bulk_lister']) ? 'received' : $section;
?>
Ik weet dat ik heel wat vraag maar zit echt omhoog, omdat het script hierdoor niet goed werkt. Alvast bedankt voor de moeite.
Gewijzigd op 14/02/2012 16:10:52 door Stephan Hendrikx