Se connecter / S'enregistrer
Votre question

[INSTALLATION] IPB - Invision Power Board

Tags :
  • Programmation
Dernière réponse : dans Programmation
28 Août 2007 23:23:37

Bonjour,

Je souhaite installer le Invision Power Board 2.2.0 et dons tout ce déroule bien lorsque je rentre les infos de la BDD MySQL et ainsi que mes informations administration. Néanmoins lorsque je fais "next" après les informations administration, on me met un message d'erreur qui ne me permet pas de terminé l'installation du script. Voici le message :

Warning: _load_cache_file(/mnt/106/free.fr/2/0/MONLOGIN/forums//sources/sql/mysql_admin_queries.php) [function.-load-cache-file]: failed to open stream: No such file or directory in /mnt/106/free.fr/2/0/sarhoo/forums/ips_kernel/class_db.php on line 1082

J'ai pensé à une mauvaise connexion à la BDD mais j'ai essayer toute les possibilités de connexion MySQL et toujours la même erreur. J'ai donc été voir le code de class_db.php.
Voici son code :

<?php

define( 'IPS_DB_ALLOW_SUB_SELECTS', 0 );


class db_main
{
# Global OBJECT

/**
* DB object array
*
* @var array
*/
var $obj = array ( "sql_database" => "" ,
"sql_user" => "root" ,
"sql_pass" => "" ,
"sql_host" => "",
"sql_port" => "" ,
"persistent" => "0" ,
"sql_tbl_prefix" => "ibf_" ,
"cached_queries" => array() ,
'shutdown_queries' => array() ,
'debug' => 0 ,
'use_shutdown' => 1 ,
'query_cache_file' => '' ,
'force_new_connection' => 0 ,
'error_log' => '' ,
'use_error_log' => 0 ,
'use_debug_log' => 0 ,
);

/**
* Error message
*
* @var string
*/
var $error = "";
var $error_no = "";

/**
* Return error message or die inline
*
* @var integer
*/
var $return_die = 0;

/**
* DB query failed
*
* @var integer
*/
var $failed = 0;

/**
* Work based SQL query
*
* @var string
*/
var $sql = "";

/**
* Current sql query
*
* @var string
*/
var $cur_query = "";

/**
* Current DB query ID
*
* @var object
*/
var $query_id = "";

/**
* Current DB connection ID
*
* @var object
*/
var $connection_id = "";

/**
* Number of queries used per page gen
*
* @var integer
*/
var $query_count = 0;

/**
* Escape / don't escape slashes during insert ops
*
* @var integer
*/
var $manual_addslashes = 0;

/**
* Is a shutdown query
*
* @var integer
*/
var $is_shutdown = 0;

/**
* Prefix handling
*
* @var integer
*/
var $prefix_changed = 0;

/**
* Prefix already converted
*
* @var integer
*/
var $no_prefix_convert = 0;

/**
* DB record row
*
* @var array
*/
var $record_row = array();

/**
* Extra classes loaded
*
* @var array
*/
var $loaded_classes = array();

/**
* Connection variables set when installed
*
* @var array
*/
var $connect_vars = array();

/**
* Over-ride guessed data types in insert/update ops
*
* @var array
*/
var $force_data_type = array();

/**
* Select which fields aren't escaped during insert/update ops
*
* @var array
*/
var $no_escape_fields = array();

/**
* Name of queries file class
*
* @var string
*/
var $sql_queries_name = 'sql_queries';


var $mysql_version;
var $true_version;

/*
* Allow sub selects for this query
*
* @var int
*/
var $allow_sub_select = 0;

/*-------------------------------------------------------------------------*/
// Constructor
/*-------------------------------------------------------------------------*/

/**
* db_driver constructor
*
*/

function db_driver()
{
//--------------------------------------------
// Set up any required connect vars here:
//--------------------------------------------

$this->connect_vars = array();
}

/*-------------------------------------------------------------------------*/
// Set debug mode
/*-------------------------------------------------------------------------*/

/**
* Set debug mode flag
*
* @param integer Boolean
*/

function set_debug_mode( $int=0 )
{
$this->obj['debug'] = intval($int);

//-----------------------------------------
// If debug, no shutdown....
//-----------------------------------------

if ( $this->obj['debug'] )
{
$this->obj['use_shutdown'] = 0;
}
}

/*-------------------------------------------------------------------------*/
// Set manual escape fields
/*-------------------------------------------------------------------------*/

/**
* Set no escape fields via DB class
*
* @param array SQL table fields
*/

function set_no_escape_fields( $array=array() )
{
$this->no_escape_fields = $array;
}

/*-------------------------------------------------------------------------*/
// Load extra query cache file
/*-------------------------------------------------------------------------*/

/**
* Load extra SQL query file (DBA)
*
* @param string File
* @param string Classname of file
*/

function load_cache_file( $filepath, $classname='sql_extra_queries' )
{
if ( ! file_exists( $filepath ) )
{
print "Cannot locate $filepath - exiting!";
exit();
}
else
{
require_once( $filepath );
{
$this->$classname = new $classname( $this );
$this->loaded_classes[] = $classname;
}
}
}

/*-------------------------------------------------------------------------*/
// ALIAS: Simple elements
/*-------------------------------------------------------------------------*/

/**
* Alias for build_query
*
* @param array SQL commands
* @see build_query
* @since 2.1
*/

function simple_construct( $a )
{
return $this->build_query( $a );
}

/*-------------------------------------------------------------------------*/
// ALIAS: Load cache query
/*-------------------------------------------------------------------------*/

/**
* Alias for build_query_from_cache
*
* @param string Name of query file function to use
* @param array Optional arguments to be parsed inside query function
* @param string Optional class name
* @see build_query_from_cache
* @since 2.1
*/

function cache_add_query( $q="", $args=array(), $method='sql_queries' )
{
return $this->build_query_from_cache( $q, $args, $method );
}

/*-------------------------------------------------------------------------*/
// ALIAS: Simple elements
/*-------------------------------------------------------------------------*/

/**
* Alias for exec_query
*
* @see exec_query
* @since 2.1
*/

function cache_exec_query()
{
return $this->exec_query();
}

/*-------------------------------------------------------------------------*/
// ALIAS: Execute a shutdown query from cache or build query
/*-------------------------------------------------------------------------*/

/**
* Alias for exec_shutdown_query
*
* @see exec_shutdown_query
* @since 2.1
*/

function cache_shutdown_exec()
{
return $this->exec_shutdown_query();
}

/*-------------------------------------------------------------------------*/
// ALIAS: Simple elements
/*-------------------------------------------------------------------------*/

/**
* Alias for simple_exec
*
* @see simple_exec
* @since 2.1
*/

function simple_exec()
{
return $this->exec_query();
}

/*-------------------------------------------------------------------------*/
// ALIAS: Shutdown store query
/*-------------------------------------------------------------------------*/

/**
* Alias for exec_shutdown_query
*
* @see exec_shutdown_query
* @since 2.1
*/

function simple_shutdown_exec()
{
return $this->exec_shutdown_query();
}

/*-------------------------------------------------------------------------*/
// ALIAS: Build and exec query
/*-------------------------------------------------------------------------*/

/**
* Alias for build_and_exec_query
*
* @see build_and_exec_query
* @since 2.1
*/

function simple_exec_query( $a )
{
return $this->build_and_exec_query( $a );
}

/*-------------------------------------------------------------------------*/
// Shutdown update
/*-------------------------------------------------------------------------*/

/**
* Alias for do_update
*
* @see do_update
* @since 2.1
*/

function do_shutdown_update( $tbl, $arr, $where="" )
{
# Alias, redirect.
$this->do_update( $tbl, $arr, $where, TRUE );
}

/*-------------------------------------------------------------------------*/
// Shutdown insert
/*-------------------------------------------------------------------------*/

/**
* Alias for do_insert
*
* @see do_insert
* @since 2.1
*/

function do_shutdown_insert( $tbl, $arr )
{
# Alias, redirect.
$this->do_insert( $tbl, $arr, TRUE );
}


/*-------------------------------------------------------------------------*/
// Quick function: DO DELETE
/*-------------------------------------------------------------------------*/

function do_delete( $table, $where="" )
{
$this->build_and_exec_query( array( 'delete' => $table,
'where' => $where ) );
}

/*-------------------------------------------------------------------------*/
// Simple elements
/*-------------------------------------------------------------------------*/

/**
* Takes array of set commands and generates a SQL formatted query
*
* @param array Set commands (select, from, where, order, limit, etc)
*/

function build_query( $a )
{
if ( isset($a['select']) && $a['select'] )
{
if ( isset($a['add_join']) && is_array( $a['add_join'] ) )
{
$this->simple_select_with_join( $a['select'], $a['from'], isset($a['where']) ? $a['where'] : '', $a['add_join'] );
}
else
{
$this->simple_select( $a['select'], $a['from'], isset($a['where']) ? $a['where'] : '' );
}
}

if ( isset($a['update']) && $a['update'] )
{
$this->simple_update( $a['update'], $a['set'], isset($a['where']) ? $a['where'] : '', isset($a['lowpro']) ? $a['lowpro'] : '' );
}

if ( isset($a['delete']) && $a['delete'] )
{
$this->simple_delete( $a['delete'], $a['where'] );
}

if ( isset($a['group']) && $a['group'] )
{
$this->simple_group( $a['group'] );
}

if ( isset($a['order']) && $a['order'] )
{
$this->simple_order( $a['order'] );
}

if ( isset($a['limit']) && is_array( $a['limit'] ) )
{
$this->simple_limit( $a['limit'][0], $a['limit'][1] );
}
}

/*-------------------------------------------------------------------------*/
// Build, execute and return the first row of a query
/*-------------------------------------------------------------------------*/

/**
* Takes array of set commands and generates a SQL formatted query
* and returns the first row automatically
*
* @param array Set commands (select, from, where, order, limit, etc)
*
* @return array Array from SQL server
*/

function build_and_exec_query( $a )
{
$this->build_query( $a );

$ci = $this->exec_query();

if ( isset($a['select']) AND $a['select'] )
{
return $this->fetch_row( $ci );
}
}

/*-------------------------------------------------------------------------*/
// Load query from cache file
/*-------------------------------------------------------------------------*/

/**
* Takes array of set commands and generates a SQL formatted query
* and returns the first row automatically
*
* @param string Name of query file function to use
* @param array Optional arguments to be parsed inside query function
* @param string Optional class name
*/

function build_query_from_cache( $q="", $args=array(), $method='sql_queries' )
{
if ( $this->obj['query_cache_file'] and $method == 'sql_queries' )
{
$this->cur_query .= $this->sql->$q( $args );
}
else if ( in_array( $method, $this->loaded_classes ) )
{
$this->cur_query .= $this->$method->$q( $args );
}
}

/*-------------------------------------------------------------------------*/
// SIMPLE: EXEC QUERY
/*-------------------------------------------------------------------------*/

/**
* Executes stored SQL query
*
* @return object Query ID
*/

function exec_query()
{
if ( $this->cur_query != "" )
{
$ci = $this->query( $this->cur_query );
}

$this->cur_query = "";
$this->is_shutdown = 0;
return $ci;
}

/*-------------------------------------------------------------------------*/
// Exec shut down cache
/*-------------------------------------------------------------------------*/

/**
* Executes stored SQL query
*
*/

function exec_shutdown_query()
{
if ( ! $this->obj['use_shutdown'] )
{
$this->is_shutdown = 1;
return $this->exec_query();
}
else
{
$this->obj['shutdown_queries'][] = $this->cur_query;
$this->cur_query = "";
}
}

/*-------------------------------------------------------------------------*/
// Test to see if a field exists by forcing and trapping an error.
// It ain't pretty, but it do the job don't it, eh?
// Return 1 for exists, 0 for not exists and jello for the naked guy
// Fun fact: The number of times I spelt 'field' as 'feild'in this part: 104
/*-------------------------------------------------------------------------*/

/**
* Test to see whether a field exists in a table
*
* @param string Field name
* @param string Table name
*
* @return integer Boolean (0,1)
*/

function field_exists($field, $table)
{
$this->return_die = 1;
$this->error = "";

$this->simple_select( "COUNT($field) as count", $table );
$this->simple_exec();

$return = 1;

if ( $this->failed )
{
$return = 0;
}

$this->error = "";
$this->return_die = 0;
$this->error_no = 0;
$this->failed = 0;

return $return;
}

/*-------------------------------------------------------------------------*/
// Return the amount of queries used
/*-------------------------------------------------------------------------*/

/**
* Returns current number of parsed and run queries
*
* @return integer Value stored in var $query_count
*/

function get_query_cnt()
{
return $this->query_count;
}


/*-------------------------------------------------------------------------*/
// Flushes the in memory query string
/*-------------------------------------------------------------------------*/

/**
* Flushes the $this->cur_query string
*
* @return void
*/
function flush_query()
{
$this->cur_query = "";
}

/*-------------------------------------------------------------------------*/
// Basic error handler
/*-------------------------------------------------------------------------*/

/**
* Prints SQL error message
*
* @param string Additional error message
*
* @return integer Optional, if var $return_die is set to 1
*/

function fatal_error($the_error="")
{
//-----------------------------------------
// INIT
//-----------------------------------------

$this->error = $this->_get_error_string();
$this->error_no = $this->_get_error_number();

if ( $this->return_die == 1 )
{
$this->error = ( $this->error == "" ? $the_error : $this->error );
$this->failed = 1;
return;
}
else if ( $this->obj['use_error_log'] AND $this->obj['error_log'] )
{
$_error_string = "\n===================================================";
$_error_string .= "\n Date: ". date( 'r' );
$_error_string .= "\n Error Number: " . $this->error_no;
$_error_string .= "\n Error: " . $this->error;
$_error_string .= "\n IP Address: " . $_SERVER['REMOTE_ADDR'];
$_error_string .= "\n ".$the_error;

if ( $FH = @fopen( $this->obj['error_log'], 'a' ) )
{
@fwrite( $FH, $_error_string );
@fclose( $FH );
}

print "<html><head><title>IPS Driver Error</title>
<style>P,BODY{ font-family:arial,sans-serif; font-size:11px; }</style></head><body>
<blockquote><h1>IPS Driver Error</h1><b>There appears to be an error with the database.</b><br>
You can try to refresh the page by clicking <a href=\"javascript:window.location=window.location;\">here</a>
</body></html>";
}
else
{
$the_error .= "\n\nSQL error: ".$this->error."\n";
$the_error .= "SQL error code: ".$this->error_no."\n";
$the_error .= "Date: ".date("l dS \o\f F Y h:i:s A");

$out = "<html><head><title>IPS Driver Error</title>
<style>P,BODY{ font-family:arial,sans-serif; font-size:11px; }</style></head><body>
<blockquote><h1>IPS Driver Error</h1><b>There appears to be an error with the database.</b><br>
You can try to refresh the page by clicking <a href=\"javascript:window.location=window.location;\">here</a>.
<br><br><b>Error Returned</b><br>
<form name='mysql'><textarea rows=\"15\" cols=\"60\">".htmlspecialchars($the_error)."</textarea></form><br>We apologise for any inconvenience</blockquote></body></html>";


print $out;
}

exit();
}

/*-------------------------------------------------------------------------*/
// Create an array from a multidimensional array returning formatted
// strings ready to use in an INSERT query, saves having to manually format
// the (INSERT INTO table) ('field', 'field', 'field') VALUES ('val', 'val')
/*-------------------------------------------------------------------------*/

/**
* Compiles SQL formatted insert fields
*
* @param array Array of field => value pairs
*
* @return array FIELD_NAMES (string) FIELD_VALUES (string)
*/

function compile_db_insert_string($data)
{
$field_names = "";
$field_values = "";

foreach ($data as $k => $v)
{
$add_slashes = 1;

if ( $this->manual_addslashes )
{
$add_slashes = 0;
}

if ( isset($this->no_escape_fields[ $k ]) AND $this->no_escape_fields[ $k ] )
{
$add_slashes = 0;
}

if ( $add_slashes )
{
$v = $this->add_slashes( $v );
}

$field_names .= "$k,";

//-----------------------------------------
// Forcing data type?
//-----------------------------------------

if ( isset($this->force_data_type[ $k ]) AND $this->force_data_type[ $k ] )
{
if ( $this->force_data_type[ $k ] == 'string' )
{
$field_values .= "'$v',";
}
else if ( $this->force_data_type[ $k ] == 'int' )
{
$field_values .= intval($v).",";
}
else if ( $this->force_data_type[ $k ] == 'float' )
{
$field_values .= floatval($v).",";
}
}

//-----------------------------------------
// No? best guess it is then..
//-----------------------------------------

else
{
if ( is_numeric( $v ) and intval($v) == $v )
{
$field_values .= $v.",";
}
else
{
$field_values .= "'$v',";
}
}
}

$field_names = preg_replace( "/,$/" , "" , $field_names );
$field_values = preg_replace( "/,$/" , "" , $field_values );

return array( 'FIELD_NAMES' => $field_names,
'FIELD_VALUES' => $field_values,
);
}



/*-------------------------------------------------------------------------*/
// Create an array from a multidimensional array returning a formatted
// string ready to use in an UPDATE query, saves having to manually format
// the FIELD='val', FIELD='val', FIELD='val'
/*-------------------------------------------------------------------------*/

/**
* Compiles SQL formatted update fields
*
* @param array Array of field => value pairs
*
* @return string SET .... update string
*/

function compile_db_update_string($data)
{
$return_string = "";

foreach ($data as $k => $v)
{
//-----------------------------------------
// Adding slashes?
//-----------------------------------------

$add_slashes = 1;

if ( $this->manual_addslashes )
{
$add_slashes = 0;
}

if ( isset($this->no_escape_fields[ $k ]) && $this->no_escape_fields[ $k ] )
{
$add_slashes = 0;
}

if ( $add_slashes )
{
$v = $this->add_slashes( $v );
}

//-----------------------------------------
// Forcing data type?
//-----------------------------------------

if ( isset($this->force_data_type[ $k ]) && $this->force_data_type[ $k ] )
{
if ( $this->force_data_type[ $k ] == 'string' )
{
$return_string .= $k . "='".$v."',";
}
else if ( $this->force_data_type[ $k ] == 'int' )
{
$return_string .= $k . "=".intval($v).",";
}
else if ( $this->force_data_type[ $k ] == 'float' )
{
$return_string .= $k . "=".floatval($v).",";
}
}

//-----------------------------------------
// No? best guess it is then..
//-----------------------------------------

else
{
if ( is_numeric( $v ) and intval($v) == $v )
{
$return_string .= $k . "=".$v.",";
}
else
{
$return_string .= $k . "='".$v."',";
}
}
}

$return_string = preg_replace( "/,$/" , "" , $return_string );

return $return_string;
}

/*-------------------------------------------------------------------------*/
// Use different escape method for different SQL engines
/*-------------------------------------------------------------------------*/

function add_slashes( $t )
{
# Driver specific
}

/*-------------------------------------------------------------------------*/
// Use different escape method for different SQL engines
/*-------------------------------------------------------------------------*/

function remove_slashes( $t )
{
# Driver specific
}

/*-------------------------------------------------------------------------*/
// Removes quotes from a DB query
/*-------------------------------------------------------------------------*/

function remove_all_quotes( $t )
{
//-----------------------------------------
// Remove empty comments
// We now check for comments in SQL classes
//-----------------------------------------

#$t = preg_replace( "#/\*(.??)\*/#s", " ", $t );
#$t = preg_replace( "#/\*.+?\*/#s" , " ", $t );

//-----------------------------------------
// Remove quotes
//-----------------------------------------

$t = preg_replace( "#\\\{1,}[\"']#s", "", $t );
$t = preg_replace( "#'[^']*'#s" , "", $t );
$t = preg_replace( "#\"[^\"]*\"#s" , "", $t );
$t = preg_replace( "#\"\"#s" , "", $t );
$t = preg_replace( "#''#s" , "", $t );
#print $t;
return $t;
}

/*-------------------------------------------------------------------------*/
// Basic error handler
/*-------------------------------------------------------------------------*/

/**
* Prints SQL error message
*
* @param string Additional error message
*
* @return integer Optional, if var $return_die is set to 1
*/

function write_debug_log( $query, $data, $endtime )
{
//-----------------------------------------
// INIT
//-----------------------------------------

if ( $this->obj['use_debug_log'] AND $this->obj['debug_log'] )
{
$_string = "\n==============================================================================";
$_string .= "\n Date: ". date( 'r' );
$_string .= "\n IP Address: " . $_SERVER['REMOTE_ADDR'];
$_string .= "\n Time Taken: ".$endtime;
$_string .= "\n ".$query;
$_string .= "\n==============================================================================";
$_string .= "\n".$data;

if ( $FH = @fopen( $this->obj['debug_log'], 'a' ) )
{
@fwrite( $FH, $_string );
@fclose( $FH );
}
}
}

/*-------------------------------------------------------------------------*/
// INTERNAL: Get error number
/*-------------------------------------------------------------------------*/

function _get_error_number()
{
# Driver specific
}

/*-------------------------------------------------------------------------*/
// INTERNAL: Get error number
/*-------------------------------------------------------------------------*/

function _get_error_string()
{
# Driver specific
}

/*-------------------------------------------------------------------------*/
// Internal: CHECK AND SET PREFIX
/*-------------------------------------------------------------------------*/

/**
* Set SQL table prefix
*
*/

function _set_prefix()
{
if ( ! defined( 'SQL_PREFIX' ) )
{
$this->obj['sql_tbl_prefix'] = isset($this->obj['sql_tbl_prefix']) ? $this->obj['sql_tbl_prefix'] : 'ibf_';

define( 'SQL_PREFIX', $this->obj['sql_tbl_prefix'] );
}
}

/*-------------------------------------------------------------------------*/
// Internal: CHECK AND LOAD CACHE FILE
/*-------------------------------------------------------------------------*/

/**
* Load cache file
*
*/

function _load_cache_file()
{
if ( $this->obj['query_cache_file'] )
{
require_once( $this->obj['query_cache_file'] );

$sql_queries_name = $this->sql_queries_name ? $this->sql_queries_name : 'sql_queries';

$this->sql = new $sql_queries_name( $this );
}
}

}


?>

Ce qui est en gras est la ligne 1082

Cordialement,
Merci de votre réponse.

Autres pages sur : installation ipb invision power board

a c 232 L Programmation
29 Août 2007 09:36:28

Bonjour,

L'erreur veut dire qu'il ne trouve pas le fichier :
/mnt/106/free.fr/2/0/MONLOGIN/forums//sources/sql/mysql_admin_queries.php
As tu bien uploader toutes les pages ?
29 Août 2007 14:05:58

Effectivement, je n'ai pas de dossier "sql" dans "sources". Merci de ta réponse brève et courte. Je vais essayer de récupérer ce dossier. En espérant que là est bien la source du problème.

Merci encore.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS