windu.2b Posté(e) le 12 novembre 2006 Partager Posté(e) le 12 novembre 2006 Bonjour, J'ai un pb assez bizarre: mon code PHP ne se génère plus, mais ne me renvoie pas d'erreurs non plus!!! Je m'explique: j'ai réinstallé ma Ubuntu car le passage Dapper->Edgy fut quelque peu pourri, donc j'ai une Edgy fraiche avec les paquets-qui-vont-bien, mais lorsque je veux afficher un de mes sites Web en local, il ne me génère rien du tout! Mais ne me renvoie pas d'erreurs voici la page incriminée: <?php session_start(); require_once('../include/config.inc.php'); require_once('../include/functions.inc.php'); //echo md5(microtime()); function __autoload($className) { require_once("../classes/$className.class.php"); } [b] $base = DataBase::getInstance(); [/b] $titre = 'Accueil'; $contenu = ''; /* ######## CREATION DE L'OBJET AUTH ######## */ /*if(!is_object($_SESSION['utilisateur'])) { $_SESSION['utilisateur'] = new Utilisateur('', array(), $base); } /* ######## VERIFICATION DES DROITS D'ACCES ######## */ /*if($_SESSION['utilisateur']->verifAcces('private')) { header('Location:../private/index.php'); } */ switch ($_GET['action']) { case '': { break; } default: { break; } } $menu = new Menu(''); $menu = $menu->affiche(); require_once('../skin/public.html.php'); ?> Alors en fait, j'ai remarqué que c'était la ligne en gras qui posait pb: si je la commente, tout le reste se passe bien! J'ai donc regardé le code appelé par cette ligne, code que voici: <?php /* class.database.mysql.php Provides a simple MySQL Wrapper Generic functions names so it would be easy to switch to another SGBD Revision 0.02 - 11/03/06 22:04 - Complete revision to use PHP5 structs */ class DataBase implements DataBaseInterface { // Internal use private $error; private $errorn; private $logger; private $link = false; public static $instance = false; /** * Connects to database server and selects the database * * @param unknown_type $pconnect * @return unknown */ public function connect ( $pconnect = false ) { if ( $pconnect ) { $this->link = @mysql_pconnect( SERVEUR, NOM, PASSWD ); } else { $this->link = @mysql_connect( SERVEUR, NOM, PASSWD ); } @mysql_select_db( BASE, $this->link ); return $this->link; } /** * Executes a SQL query and returns the results (it may also profile the execution) * * @param string $sql * @param int $limit * @param int $start * @return resource */ public function query ( $sql, $limit = 0, $start = 0 ) { $this->error = NULL; $this->errorn = NULL; // $time = explode ( ' ', microtime() ); // $starttime = $time[1] + $time[0]; if ( !empty ( $limit ) ) { if ( empty ( $start ) ) $start = 0; $sql = $sql. ' LIMIT '.intval ( $start ).', '.intval ( $limit ); } $result = mysql_query( $sql ); // $time = explode ( ' ', microtime() ); // $endtime = $time[1] + $time[0]; // $length = round (($endtime - $starttime), 4); // $this->logger->logQuery( $sql, $length, $this->error, $this->errorn ); // unset ( $time, $starttime, $endtime, $length ); return $result; } /** * Permet d'exécuter une requête de type SELECT * * @param string $requete * @return array */ public function recupere($requete, $limit = '', $start = '' ) { if(!$result = $this->query( $requete, $limit, $start )) { die( $this->error() ); } else { $tab = array(); $this->countSelect = mysql_num_rows($result); if($this->countSelect > 1) { while ($data = $this->fetchObject($result)) { $tab[] = $data; } } elseif ($this->countSelect == 1) { $tab = array(mysql_fetch_object($result)); } $this->nbreRequetes ++; return $tab; } } /** * Permet d'exécuter une requête de type INSERT, UPDATE ou DELETE * * @param string $requete * @return int */ public function execute($requete) { if(!$result = $this->query($requete)) { die( $this->error() ); } else { $this->nbreRequetes ++; return mysql_affected_rows(); } } /** * Returns the last error * * @return unknown */ public function error ( ) { $this->error = mysql_error ( ); $this->errorn = mysql_errno ( ); return "{$this->errorn} : {$this->error}"; } /** * Fetchs the next row of a given result resource * * @param resource $result * @return array */ public function fetchArray ( $result ) { return @mysql_fetch_assoc ( $result ); } /** * Fetchs the next row of a given result resource * * @param resource $result * @return object */ public function fetchObject( $result ) { return @mysql_fetch_object( $result ); } /** * Returns the rows count of a given result resource * * @param resource $result * @return int */ public function numRows ( $result ) { return @mysql_num_rows ( $result ); } /** * Returns how many rows were affected by the last query * * @return int */ public function affectedRows ( ) { return @mysql_affected_rows ( $this->link ); } /** * Returns the last insert id * * @return int */ public function insertId ( ) { return @mysql_insert_id ( ); } /** * Closes the current connection * */ public function close ( ) { @mysql_close( $this->link ); } /** * Returns the prefixed table name if any prefix * * @param string $table_name * @return string */ public function prefix ( $table_name ) { return !defined ( "SQLprefix" ) ? $table_name : SQLprefix."_{$table_name}"; } /** * Feturns how many queries have been processed * * @return int */ public function getNbreRequetes ( ) { return $this->nbreRequetes; } /** * Escapes a string for security * * @param string $str * @return string */ public function escapeString ( $str ) { return mysql_real_escape_string( stripslashes ( $str ) ); } /** * Returns a reference of the DataBase object instance * * @return reference */ public static function &getInstance( ) { if ( !DataBase::$instance ) { DataBase::$instance = new DataBase(); //DataBase::instance->logger =& Logger::getInstance( ); if ( !DataBase::$instance->connect ( ) ) { die( "Impossible de se connecter à la base de données : ".DataBase::$instance->error ( ) ); } } return DataBase::$instance; } public function __destruct( ) { $this->close(); } } ?> Et donc, je ne vois pas où est le pb: ce code fonctionne pour php5 et je suis en php 5.1.6, comme me le rappelle une page 404 (provoquée volontairement pour vérifier): Apache/2.0.55 (Ubuntu) PHP/5.1.6 Server at localhost Port 80 Donc ma question: vous voyez d'où ce pb peut-il venir? Edit: je sais pas pourquoi mais les balises gras ne veulent pas s'activer... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ago Posté(e) le 12 novembre 2006 Partager Posté(e) le 12 novembre 2006 Edit: je sais pas pourquoi mais les balises gras ne veulent pas s'activer... des balises gras dans une balise code, c'est un peu ... comment dire Bon sinon pour ton problème j'sais pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 12 novembre 2006 Partager Posté(e) le 12 novembre 2006 Essaye de mettre des prints dans ta classe getInstance pour voir à quel moment ça chie. Sinon tente de commenter chaque petit bout jusqu'à obtenir celui qui pose problème. public static function &getInstance( ) { if ( !DataBase::$instance ) { DataBase::$instance = new DataBase(); //DataBase::instance->logger =& Logger::getInstance( ); if ( !DataBase::$instance->connect ( ) ) { die( "Impossible de se connecter à la base de données : ".DataBase::$instance->error ( ) ); } } return DataBase::$instance; } PS : Les balises gras ne fonctionnent pas dans les balise code. Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 13 novembre 2006 Auteur Partager Posté(e) le 13 novembre 2006 Bon, je me réponds tout seul, et je me colle un et un J'avais tout simplement oubli le paquet php5-mysql! bon, par contre, je suis surpris que php ne m'ait pas dit qu'il n'arrivait pas à trouver les fonctions mysql_* M'enfin, c'est résolu, c'est déjà ca Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.