PDA

View Full Version : functions_legacy.php / enable_legacy()


run.exe
11-19-2005, 05:37 PM
How/where, exactly, can I enable legacy (pre v5.x.y) PHP functionality, please?

I checked in my functions_legacy.php file; however, enable_legacy() is already present/not commented out.

I need to debug/troubleshoot why my old (external) DB calls are not working, anymore, via PHP/vB (despite my inclusion of global.php).

Specifically, the following code does not appear to process/recognize the fact that the logged-in user is really logged in:

<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'vborg_miscactions');

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array();

// pre-cache templates used by specific actions
$actiontemplates = array();
$self_dir = getcwd();
chdir('../');
require_once('global.php');
chdir($self_dir);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>External (non-vB) Database Browser</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles/styles.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style4 {color: #333333}
body {
background-color: #333333;
scrollbar-face-color: #F9F9F9;
scrollbar-highlight-color: #cccccc;
scrollbar-shadow-color: #F9F9F9;
scrollbar-3dlight-color: #F0F0F0;
scrollbar-arrow-color: #656060;
scrollbar-track-color: #FFFFFF;
scrollbar-darkshadow-color: #cccccc;
}
-->
</style>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<? if($vbulletin->userinfo['userid'] == 0) { ?>
<table width="100%" height="100%" cellpadding="3" cellspacing="0" border="0">
<tr valign="middle"><td align="center">
<table width="618" height="30" border="0" cellpadding="3" cellspacing="0">
<tr>
<td colspan="2"width="612" height="27" align="center" bgcolor="#F0F0F0"><span class="section">External (non-vB) Database Browser</span></td>
</tr>
<tr bgcolor="#999999">
<td colspan="2" height="1"></td>
</tr>
<tr bgcolor="#FFFFFF">

<table width="618" height="20" border="0" cellpadding="3" cellspacing="0">
<tr bgcolor="#FFFFFF">
<td align="center"><span class="note">NOT LOGGED IN</span></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center"><span class="text"><a href="http://www.500Ecstasy.com/forums/">log in</a></span></td>
</tr>
</table>
<tr>
<td colspan="2" align="left"><span class="text">&nbsp;</span></td>
</tr>
</table>
</td></tr>
</table>
<? } else { // is logged in ?>
<? if($vbulletin->userinfo['usergroupid'] == 6 || $vbulletin->userinfo['usergroupid'] == 8 || $vbulletin->userinfo['usergroupid'] == 9 || $vbulletin->userinfo['usergroupid'] == 10 || $vbulletin->userinfo['usergroupid'] == 11) { // is correct level user ?>
<?php
mysql_pconnect("hostname", "username", "password") or die("Unable to connect to SQL server!");
mysql_select_db("database") or die("Unable to select database!");

if($_GET[perPage] > 25) $_GET[perPage] = 25;
if($_GET[perPage] < 25) $_GET[perPage] = 25;



:confused:

Thank you,

Marco van Herwaarden
11-19-2005, 05:43 PM
What is exactly not working?
I see you are using pconnect, i strongly advice against this, unless really needed.

I also don't see why you would need legacy functions?

run.exe
11-19-2005, 06:04 PM
What is exactly not working?
I see you are using pconnect, i strongly advice against this, unless really needed.

I also don't see why you would need legacy functions?

Thank you for your reply, Marco.

1) what is not working: connecting to external (non-vb) MySQL Databases and having vB userid/groupid/login status variables passed/read

http://www.500ecstasy.com/forums/LH/results.php?listing=partial&page=0&perPage=25 yields the following error:

http://www.500Ecstasy.com/images/vbulletin/PHPerror.jpg

2) I have been using mysql_pconnect since the beginning; I tried mysql_connect without success, either...

3) legacy functions would (in theory) cause my broken PHP (see above) to work, in the interim, between now and the time it will take me to re-code


Thank you,

Marco van Herwaarden
11-19-2005, 06:30 PM
I just tried your code as a standalone script and it is working without an error.

I guess the userinfo error message in the top is part of your problem.

Do you have public phpinfo enabled?

run.exe
11-19-2005, 07:17 PM
Do you have public phpinfo enabled?

Yes, temporarily.

What do you see/suggest?

Marco van Herwaarden
11-19-2005, 07:49 PM
You can disable phpinfo again.

I didn't see anything that could directly be causing this.

If you take the exact file you posted here (it is obvious not the real file, things like passwords edited out) and save it as test.php, and only put "}}?>" in the bottom, do you still get the userinfo..... message?

If yes, try replacing the shorthand php opening tags '<?' by long tags '<?php' and see if that make any difference.

Marco van Herwaarden
11-19-2005, 07:52 PM
PS Why you keep opening and closing php:
<? } else { // is logged in ?>
<? if($vbulletin->userinfo['usergroupid'] == 6 || $vbulletin->userinfo['usergroupid'] == 8 || $vbulletin->userinfo['usergroupid'] == 9 || $vbulletin->userinfo['usergroupid'] == 10 || $vbulletin->userinfo['usergroupid'] == 11) { // is correct level user ?>
<?php

Why not just:
<?php } else { // is logged in
if($vbulletin->userinfo['usergroupid'] == 6 || $vbulletin->userinfo['usergroupid'] == 8 || $vbulletin->userinfo['usergroupid'] == 9 || $vbulletin->userinfo['usergroupid'] == 10 || $vbulletin->userinfo['usergroupid'] == 11) { // is correct level user

run.exe
11-19-2005, 08:18 PM
You can disable phpinfo again.

I didn't see anything that could directly be causing this.

If you take the exact file you posted here (it is obvious not the real file, things like passwords edited out) and save it as test.php, and only put "}}?>" in the bottom, do you still get the userinfo..... message?

If yes, try replacing the shorthand php opening tags '<?' by long tags '<?php' and see if that make any difference.


1) I added the string "}}?>" to my PHP file and saved it as "test.php"

2) I opened "test.php" in a browser and a white/blank page was displayed (in Firefox 1.0.7 & IE6)

3) I edited "test.php" and changed all shorthand php opening tags '<?' to long tags '<?php'

4) I reopened "test.php" in a browser and a white/blank page was displayed (in Firefox 1.0.7 & IE6) again

5) I editied my PHP usergroupid checking routine as specified, above, and repeated step #4; a white/blank page was displayed (in Firefox 1.0.7 & IE6) again

Marco van Herwaarden
11-20-2005, 05:29 AM
A white blank page is better then what you got before. Before it somehow echoed userinfo....., which was part of $vbulletin->userinfo...

run.exe
11-20-2005, 06:20 PM
Thank you; what shall I do, next? I'm stumped...

run.exe
11-23-2005, 10:50 PM
Has the pre-PHP v5.x GET_ command been deprecated and replaced by REQUEST_ by any chance?

Could the root of my problem be as simple as that?

merk
11-24-2005, 12:50 AM
its _REQUEST, which combines _GET and _POST.

A blank page means there is a PHP parse error and your PHP is set not to display errors. You should never use short PHP tags.

Try adding "php_flag display_errors on" to a .htaccess file in the root of your site.