Probleme de récupération de données

ViPHP
ViPHP | 5924 Messages

10 juin 2007, 15:23

Le problème ne vient pas de la requète alors.
Peux-tu nous poster plus de code ?

Eléphant du PHP | 451 Messages

10 juin 2007, 15:40

Voici le fichier function.php
<? function viewheader() { ?>
<?php
$start = microtime(true);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<META Http-Equiv="Content-Language" Content="fr">
<title><?php echo $board_titre; ?></title>

<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="stylesheet" href="css/bbcode.css" type="text/css" />
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<script type="text/javascript" src="js/popup_dl.js"></script>
<script type="text/javascript" src="js/bbcode.js"></script>
<script type="text/javascript" src="js/bbc_box.js"></script>

</head>

<a name="top" id="top"></a>

<table cellpadding="0" cellspacing="0" align="center" width="900" height="120">
	<tr>
		<td align="center"><img src="images/logo.png" /></td>
	</tr>
</table>
<? } ?>



<? function viewfooter() { ?>
<table cellpadding="0" cellspacing="0" align="center" width="900" height="25">
	<tr>
		<td>&nbsp;</td>
	</tr>
</table>

<table cellpadding="0" cellspacing="0" align="center" width="900">
	<tr>
		<td class="bar_l">&nbsp;</td>
		<td class="bar" width="100%" align="center"><h1>Copyright © 2007 | <a href="stats.php" class="linkfooter">Voir les statistiques</a></h1></td>
		<td class="bar_r">&nbsp;</td>
	</tr>
</table>

<?php
$end = microtime(true);
$delta = $end - $start; 

	echo '<br /><div align="center">Page générée en  : '. round($delta,2) .' secondes.</div>';
?>

</body>
</html>
<? } ?>


<?
function redirection($url){
    echo "<script type=\"text/javascript\">\n"
    . "<!--\n"
    . "\n"
    . "function redirect() {\n"
    . "window.location='" . html_entity_decode($url) . "'\n"
    . "}\n"
    . "setTimeout('redirect()','2000');\n"
    . "\n"
    . "// -->\n"
    . "</script>\n";
}
?>


Le fichier index.php
<?php 
session_start();

include('config.inc.php'); 
require('function.php') ;

$c = @mysql_connect($host,$login_host,$pass_host) or die('connection impossible');
@mysql_select_db($hostname,$c) or die('selection impossible');
?>

<?php viewheader(); ?>

<table cellpadding="0" cellspacing="0" align="center" width="900">
	<tr>
		<td valign="top">
<table cellpadding="0" cellspacing="0" align="center" width="685">
	<tr>
		<td class="bar_l">&nbsp;</td>
		<td class="bar" width="100%"><h2>Acceuil</h2></td>
		<td class="bar_r">&nbsp;</td>
	</tr>
</table>
<br />
<table cellpadding="0" cellspacing="0" class="tableBorder"  align="center" width="685">
	<tr>
		<td class="titre" height="21"><b>Bienvenue</b></td>
	</tr>
	<tr>
		<td>Bonjour et bienvenue.</td>
	</tr>
</table>
<br />
	</td>
		
		<td width="15" valign="top">&nbsp;</td>
		
		<td valign="top"><? include('includes/menu.php'); ?></td>
	</tr>
</table>

<? viewfooter(); ?>

ViPHP
ViPHP | 5924 Messages

10 juin 2007, 17:07

L'erreur est toute conne :-/ , lis ca

Eléphant du PHP | 451 Messages

10 juin 2007, 17:30

Désolé mais je vois pas.

Il dise que l'on doit récuperer la donnée avant de l'afficher mais c'est ce qui est fait dans l'ordre des fichiers

ViPHP
ViPHP | 5924 Messages

10 juin 2007, 19:00

Il dise que l'on doit récuperer la donnée avant de l'afficher mais c'est ce qui est fait dans l'ordre des fichiers
Non, la variable dans ta fonction a une portée locale, et donc la variable $board_titre à l'intérieur de ta fonction n'est pas la même que la variable $board_titre dans le reste du script. Il donc faut indiquer dans ta fonction que la variable $board_titre est globale et non locale...

Eléphant du PHP | 451 Messages

10 juin 2007, 19:14

D'accord mais je fais comment car dans le lien que m'as donné il additionne les champs

ViPHP
ViPHP | 5924 Messages

10 juin 2007, 19:56

D'accord mais je fais comment car dans le lien que m'as donné il additionne les champs
En français ?

Eléphant du PHP | 451 Messages

10 juin 2007, 20:27

oups désolé

Je disais:

Comment je fais pour faire une fonction global car dans le lien que tu m'as donné et qui est celui-ci
http://www.php.net/manual/fr/language.v ... .scope.php

Il additionne les champs a et b

ViPHP
ViPHP | 5924 Messages

10 juin 2007, 20:39

Comme j'espère, et je pense, tu a compris, il faut en effet que tu utilises le mot global pour indiquer que la variable en question est globale.
En fait, tu mets après le mot global la liste des variables, séparées par des virgules, avec bien entendu le traditionnel point-virgule à la fin. En l'occurence, si tu ne veux qu'une seule variable globale, tu indiques tout simplement
global $variable;
Ensuite, je n'avais pas tilté avant, mais plutôt que de mettre ton header dans une fonction, pourquoi ne le mettrais-tu pas dans un fichier spécifique header.php que tu incluerais au bon endroit ?

Eléphant du PHP | 451 Messages

10 juin 2007, 20:49

Donc je dois faire ceci
$c = mysql_connect($host,$login_host,$pass_host) or die('connection impossible');
mysql_select_db($hostname,$c) or die('selection impossible');

$requete = mysql_query("SELECT * FROM ".$prefixe."_config") or die("Erreur : " . mysql_error()); 
$var = mysql_fetch_array ($requete);

function board_config() {
global $board_titre, $board_flags;
}
?>
Et dans mon fichier function.php, je dois mettre cela
<? function viewheader() { ?>
<?php
$start = microtime(true);

board_config();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<META Http-Equiv="Content-Language" Content="fr">
<title><?php echo $board_titre; ?></title>
</head>
<? } ?>
Pour le header c'est parce que j'ai voulu essayer les fonction pour éviter d'avoir un fichier header.php, fonction.php, et footer.php

J'ai voulu regrouper les 3 en 1.

ViPHP
ViPHP | 5924 Messages

10 juin 2007, 20:58

Non non, pas du tout.
Je vais te donner un exemple :
function machin()
{
    global $truc;
    $truc = 'Cette variable est globale';
    $machin = 'Cette variable est locale';
}
$truc est globale dans la fonction machin parce que l'on a indiqué global $truc au début de la fonction, $machin est locale parce que l'on n'a rien indiqué. Il n'y a pas besoin de créer une nouvelle fonction. Il faut juste indiquer dans la fonction quelles variables doivent être cherchées dans le contexte global.

Eléphant du PHP | 451 Messages

10 juin 2007, 21:02

Donc je dois faire comme ceci
function board_config()
{
    global $board_titre, $board_flags;
    $board_titre = ''.$var['nomsite'].'';
    $board_flags = ''.$var['flag'].'';
} 

Eléphant du PHP | 451 Messages

10 juin 2007, 21:24

Alors j'ai éssayé ceci
function board_config()
{
    global $board_titre, $board_flags;
    $board_titre = ''.$var['nomsite'].'';
    $board_flags = ''.$var['flag'].'';
} 
et ceci aussi
$nomsite = $var['nomsite'];
$flag = $var['flag'];

function board_config()
{
    global $board_titre, $board_flags;
    $board_titre = '$nomsite';
    $board_flags = '$flag';
} 
Mais aucun des 2 ne fonctionnent.

Je vois vraiment pas pourtant je suis sur que c'est tout simple.

ViPHP
ViPHP | 5924 Messages

10 juin 2007, 22:10

Mais non, tu dois utiliser global dans ta fonction viewheader(). C'est dans cette fonction que tu veux que ta variable soit globale, ca ne sert strictement à rien de créer une nouvelle fonction.

Eléphant du PHP | 451 Messages

10 juin 2007, 23:06

C'est bon merci ça fonctionne cependant j'ai un autre problème qui concerne la même chose

Dans ma table config je peux activer ou désact(iver des option a l'enregistrment mais le champ s'affiche toujours

Voici le code du champ
<?
if( $board_flags = 1)
	{
echo '
	<tr>
		<td width="150"><b>Votre pays:</b></td>
		<td><select name="pays"onchange="javascript:document.getElementById(\'flags\').src=\'images/flags/\'+this.value+\'.png\'">
         <option value="00" selected="selected">Choisissez</option>
         <option value="01">Afghanistan</option>
         <option value="02">Albanie</option>
etc .............................
</select>&nbsp;&nbsp;<img id="flags" src="transparent.png" /></td>
	</tr>
	<tr>
		<td>&nbsp;</td>
	</tr>
';
	} 
?>
Dans ma base la donnée board_flags est a 0 donc le champ ne devrait pas s'afficher