Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/11/2006, à 21:45

windu.2b

PHP refuse d'exécuter le code de mes pages

Bonsoir,
J'ai réinstallé cette semaine ma Ubuntu car le passage Dapper->Edgy a + ou - foiré... Bref, j'ai maintenant une distrib qui tourne comme il faut, mis à part pour PHP!

En effet, en voulant bosser sur un de mes codes, je me suis rendu compte qu'il refusait de l'exécuter... mais surtout je n'ai AUCUNE erreur qui est renvoyé! sad

voici le code qui bloque:

<?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, le pb semble venir de la ligne en gras: si je la commente tout se passe bien! Voici donc le code de la classe appelée par la ligne incriminée:

<?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 &agrave; la base de donn&eacute;es : ".DataBase::$instance->error (  ) );
			}
		}
		return DataBase::$instance;
	}

	
	public function __destruct( )
	{
		$this->close();
	}
}
?>

De plus, je précise que c'est du code PHP5 mais que je suis en PHP 5.1.6, et que ce code marchait sans pb avant ma réinstall... Cela pourrait-il être dû à un changement dans la config de PHP, par ex.?

Edit: les balise 'gras' ne passent pas lorsqu'on est dans une balise 'code', il s'agit donc de la 10° ligne dans le premier code

Dernière modification par windu.2b (Le 12/11/2006, à 21:46)


Les pigeons, ça n'existe pas sur la banquise, et ils ne se nourrissent pas de pommes... Mais on en trouve souvent sur les rebords de fenêtres!

Hors ligne

#2 Le 12/11/2006, à 22:10

Scurz

Re : PHP refuse d'exécuter le code de mes pages

Je ne comprends pas où est le problème ? PHP n'execute pas ton/tes scripts ? C-a-d ?

Dernière modification par Scurz (Le 12/11/2006, à 22:10)

#3 Le 15/11/2006, à 02:09

windu.2b

Re : PHP refuse d'exécuter le code de mes pages

Bonsoir,
Bon désolé de pas être revenu plus tôt pour me répondre, car j'ai trouvé la solution: j'avais tout simplement oublié d'installer le paquet php5-mysql lol

Par contre, je suis surpris qu'il ne m'ait pas mis une erreur disant qu'il ne trouve pas les fonctions mysql_* hmm


Les pigeons, ça n'existe pas sur la banquise, et ils ne se nourrissent pas de pommes... Mais on en trouve souvent sur les rebords de fenêtres!

Hors ligne

#4 Le 15/11/2006, à 13:37

Scurz

Re : PHP refuse d'exécuter le code de mes pages

Un petit [resolu] dans le titre ?

#5 Le 17/11/2006, à 23:16

bigorneau

Re : PHP refuse d'exécuter le code de mes pages

Pour l'affichage des erreur, ça doit surement être dans le php.ini (chez moi, il est à cet emplacement /etc/php5/apache2/php.ini ) avec display_errors qui doit être égal à On

Hors ligne