Pb de transmission de variable ? [PHP]

Résolu/Fermé
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
- 23 août 2008 à 21:10
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
- 30 août 2008 à 19:03
Bonjour,
Comme vous pouvez le constater sur cette page (seule l'index est en php ainsi que le pop up (j'ai pas reussi a faire autrement car j'utilise des variables de session et l'index est farci d'includes comme celui-ci:
<div id="frame">
             <?php
				if($_SESSION[$page]['Location']=="Liste_Prenoms") 
				{ 
				include $_SESSION[$page]['Location']."php"; 
				} 
				else 
				{ 
				include $_SESSION[$page]['Location']." $lang.htm"; 
				}   
			?>
		</div>

les autres sont comme la ligne en gras ci-dessus.
http://txiki.free.fr/index.php?page=Intro_prenoms&lang=Fr

J'ai pourtant bien
$id = $_GET["id"]; // La manipulation de $id est plus simple que celle de $_POST["id"]

mais en cliquant sur un prénom (lien Prénoms féminins du bas, celui du haut m'obligerai de renommer toutes mes pages en .php au lieu de .htm, et j'en ai plus de 900 et non pas de code php dans ces pages).

Le reste du code pour cette page Fiche_Prenom.php:
  echo "<table width='80%' bgcolor='#FFFFFF' border='0' cellspacing='0' cellpadding='4' align='center'>\n";
// première ligne on affiche le titre "Prénom basque" 
        echo "<tr text-align='center' padding='3px'>";
        echo "<td bgcolor='#FFFFFF'><strong>" .$row['Prenom']."</strong></td>";
        echo "</tr>\n";
// lecture et affichage des résultats sur plusieurs lignes selon les cas (équivalent français etc).    
  echo "<td bgcolor='#FFFFFF' text-align='left'>" .$row['Origine']."</td>"; // affiche l'origine du prénom.
  echo "</tr>\n";
  echo "<tr>";
  echo "<td bgcolor='#FFFFFF' text-align='center'>" .$row['Ephemeride']."</td>"; // affiche l'éphéméride du prénom s'il existe.
  echo "</tr>\n";
  echo "<tr>";
  echo "<td bgcolor='#FFFFFF' text-align='center'>" .$row['FrenchName']."</td>"; // affiche l'équivalent français du prénom s'il existe.
  echo "</tr>\n";
  echo "</table>\n";
    // fin du tableau.
mysql_close();
?>


Je ne vois rien qui gène à priori mais bon, je ne suis un expert en php non plus.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.

27 réponses

PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
607
29 août 2008 à 21:32
Bsr

Après quelques réflexions voici comment je ferais pour résoudre ton problème de pages

Ex index.php (page volontairement simplifiée pour l'exemple)

<?php
// Démarre la session
session_start();

// Paramètrage : correspond à ton include "Php/Init Session Table.php"

// La page d'accueil est une page html. Elle est multilingue : la séquence %s sera remplacée par $lang
$_SESSION["Accueil"]["Location"]="accueil%s.htm";

// La page Fiche Prénom est une page php. Elle est multilingue : la séquence %s sera remplacée par $lang
$_SESSION["Fiche_Prenom"]["Location"]="Fiche_Prenom%s.php";

// La page d'erreur est une page php. Elle n'est PAS multilingue : il n'y pas de séquence %s 
$_SESSION["Erreur"]["Location"]="erreur.php";




// On récupère la valeur du paramètre lang 
// Si la paramètre n'a pas été renseigné dans l'url alors $lang vaut par défaut "Fr"
$lang=(!empty($_GET["lang"])) ? $_GET["lang"] : "Fr";

// On récupère la valeur du paramètre page
// Si la page n'est pas renseignée on utilise par défaut "Accueil"
$page=(!empty($_GET["page"])) ? $_GET["page"] : "Accueil";

// Retourne le nom l'url à inclure ou celui de la page d'erreur si la page n'a pas été définie dans le paramétrage
function getLocation($page,$lang)
{
	$page = (isset($_SESSION[$page])) ? $page : "Erreur";
	if (!empty($lang)) $lang=" ".$lang;
	// Remplace éventuellement la séquence %s par la langue (seulement si la séquence %s a été explicitement définie dans le paramétrage)
	return sprintf($_SESSION[$page]["Location"],$lang);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Index</title>
<style>
*
{
	font-family : arial;
	font-size : 12pt;
}
</style>
</head>
<body>
<div>
<?php
include(getLocation($page,$lang));
?>
</div>
</body>
</html>



Utiliser le tableau $_SESSION n'a pas vraiment d'intérêt mais bon puisque c'est déjà comme ça je l'ai conservé

Ici toute l'astuce réside dans le paramétrage et la fonction getLocation()
Tu noteras que dans le paramètrage j'indique clairement si la page est une page html ou php dans chaque variable Location. De plus il suffit dj'ajouter la séquence %s juste avant l'extension pour faire en sorte que la page tienne compte du langage

J'utilise également une page erreur.php qui contient
Erreur : aucune page définie pour [page="<?php echo $page;?>"] et [lang="<?php echo $lang;?>"]


Il te reste donc à adapter ta page index.php
A modifier le paramètrage dans ta page Init Session Table.php
et à remplacer tes includes par include(getLocation($page,$lang));
0
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
29 août 2008 à 22:33
Salut php,
ouh la la !

Déjà je vais essayer de comprendre ton système. Mais là, ça devient compliqué pour moi. Boudiou !

Pourquoi tu utiliserai une page Erreur ? Et surtout que doit-elle contenir ?

Autre question con: que représente %s j'ai jamais vu ça moi !

Je vais réfléchir pour comprendre ce que tu essaie de me dire. et décoder ces lignes.

Merci infiniment en tous cas pour ta patience (ainsi qu'aux autres évidemment) !

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
607
29 août 2008 à 23:00
la page erreur.php contient ceci (je l'ai déjà écrit lol)


Erreur : aucune page définie pour [page="<?php echo $page;?>"] et [lang="<?php echo $lang;?>"]



Ensuite %s sert d'identificateur pour les fonctions php printf et sprintf

ex sprintf("ceci %s un %s", "est", "exemple") retournera "ceci est un exemple" autrement dit le premier %s est remplacé par le premier paramèter c'est-à-dire "est", le second %s est remplacé par "exemple"
Le caractère % indique à php qu'ici commence la séquence à remplacer et "s" qu'il faut interpréter les paramètres comme des strings donc des chaînes.
0
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
30 août 2008 à 00:47
Bon, écoute php, ça devient trop compliqué pour moi. Et me faire corriger le code par quelqu'un, ne me sert à rien, j'avancerai pas.

J'ai essayé ton code mais je n'ai eu que des erreurs. Je reviens donc à la version initiale, actuelle sur http:txiki.free.fr
Faudra que je fasse avec, j'y suis tout proche.
De plus, je suis chagriné par l'impossibilité d'afficher les lettres de l'alphabet, juste au dessus de la liste des 20 premiers prénoms.
J'aurais voulu avoir les lettres sous forme de lien qui, en cliquant, affichent les 20 premiers prénoms commençant par cette lettre et ainsi de suite.
je pense a un truc du genre:
$a = ["A"];
$b = ["B"];
etc...
puis les faire afficher par:
echo "<a href='Fiche_Prenom?Prenom=".$row['A']."></a>";  
  echo "&nbsp;|&nbsp;";
  echo "<a href='Fiche_Prenom?Prenom=".$row['B']."></a>";


C'est dur, dur quand on n'a personne à coté pour expliquer. Les forums c'est très bien mais c'est aussi difficile pour quelqu'un comme moi qui ai tant de retard, apprendre seul, c'est vraiment pas facile ! ;-((((

Heureusement qu'il y a des gens comme toi qui aident énormément. J'en pleure de rage ! :-(((( !
Je suis certain que l'erreur vient d'ici et tant pis pour le pass !
<?  
//==================================================================================
// Affichage de la liste par 20 prénoms par pages
// includes du fichier fonctions séparé pour les vérifs des limites et Nb de pages
//==================================================================================

require 'fonctions.php';

//=========================================
// information pour la connection à le DB
//=========================================
$host = 'localhost';
$user = 'txiki';
$pass = 'txikito';
$db = 'txiki';

//=========================================
// initialisation des variables 
//=========================================
$nombre = 20;  // on va afficher 20 résultats par page.

// si la limite a été passée par un lien, on la prend en compte. 
// Sinon, si elle a été passée par le bouton, on la prend en compte. 
// Dans tous les autres cas, elle vaut 0.

if (isset($_GET["limite"]))
    $limite = $_GET["limite"];
elseif (isset($_POST["limite"]))
    $limite = $_POST["limite"];
else
    $limite = 0;
$path_parts = pathinfo($_SERVER['PHP_SELF']);  // on cherche le nom de la page.

$page = $path_parts["basename"];

//======================
// connection à la DB
//======================
$link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table

//==========================================================================    
// requête SQL qui compte le nombre total d'enregistrements dans la table.
//==========================================================================
$select = 'SELECT count(id) FROM prenomsfeminins';
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];

//===================================================
// vérifier la validité de notre variable $limite;
//===================================================
$verifLimite = verifLimite($limite,$total,$nombre);

// si la limite passée n'est pas valide on la remet à zéro
if(!$verifLimite)  {
    $limite = 0;
}

//=====================================================================================
// requête SQL qui ne prend que le nombre d'enregistrement necessaire à l'affichage.
//=====================================================================================
$select = 'select Lettre, Prenom, Origine, Ephemeride, FrenchName FROM prenomsfeminins ORDER BY id ASC limit '.$limite.','.$nombre;
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );

//=============================================    
// si on a récupéré un resultat on l'affiche.
//=============================================
if($total) {
  echo "<table width='80%' bgcolor='#FFFFFF' cellspacing='0' cellpadding='0' align='center'>\n";
// première ligne on affiche l'alphabet/lien
        echo "<tr text-align='center' padding='3px'>";
        echo "<td bgcolor='#CCCCCC'><a href='Liste_Prenoms?id=".$row['Lettre']."'> </a>";
        echo "</tr>\n";
// lecture et affichage des résultats  
    while($row = mysql_fetch_array($result)) {
  echo "<tr>";
  echo "<td bgcolor='#FFFFFF' text-align='left'>"; 
  echo "<a href='Fiche_Prenom?Prenom=".$row['Prenom']."></a>";  
  echo "</td>";
  echo "<td bgcolor='#FFFFFF'>" .$row['Prenom']." </td>"; // affiche le prénom
  echo "</td>";
  echo "</tr>\n";
 }
  echo "</table>\n";
    // fin du tableau.
}
else echo "Pas d\'origine pour ce prénom";

// on libère le résultat
mysql_free_result($result);

//==========================================================================    
// si le nombre d'enregistrement à afficher est plus grand que $nombre 
//==========================================================================
if($total > $nombre) {
//    affichePages($nombre,$page,$total);  // affichage des liens vers les pages
    displayNextPreviousButtons($limite,$total,$nombre,$page);  // affichage des boutons
}
mysql_close();
?>


Note que le get limit (en gras) je l'ai mis en commentaire car il affiche les n° de page et comme il y a 1250 entrées, divisé par 20 par page, ça fait un paquet pages ce qui provoque l'affichage de l'ascenceur horizontal dans le navigateur parcequ'il ne sait pas aller à la ligne. De toutes façons, ça n'a aucun interet, ces n°.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
607 > txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022

30 août 2008 à 10:47
Bjr

Bizarre que tu trouves mon ex compliqué alors qu'il l'est beaucoup moins que ton code pour afficher la liste des 20 prénoms ...

De plus tu noteras que je n'ai pas adapté ta page index.php (j'aurais pu le faire) pour que tu le fasses par toi même

Tant que tu bloqueras sur l'enchaînement / l'include des pages dans ta page index.php inutile de vouloir aller plus loin dans le détail des autres pages (enfin c'est mon point de vue)

Comme je l'ai déjà dit ;-) il manque une apostrophe après le guillemet dans cette ligne avant le caractère >

echo "<a href='Fiche_Prenom?Prenom=".$row['Prenom']."></a>";  


il faut écrire
echo "<a href='Fiche_Prenom?Prenom=".$row['Prenom']."'</a>";  


0
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505 > PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009

30 août 2008 à 17:45
Salut Php,
Excusez moi pour ce retard mais je me lève....

Je vais essayer de répondre à chacune de vos intervention:

Comme je l'ai déjà dit ;-) il manque une apostrophe après le guillemet dans cette ligne avant le caractère >
Oui, mais si je met l'apostrophe comme tu me le fais remarquer, je n'ai plus de lien, la liste est là mais en texte basique, on ne peut pas cliquer.
0
Utilisateur anonyme
30 août 2008 à 09:32
Bonjour,

http://txiki.free.fr/index.php?page=Intro_prenoms&lanf=Fr (simple page htm contenant un lien vers une page qui elle, contient du code php).


NON
cett syntaxe renvoit vers une page appelée index.php
et passe un paramètre (tableau $_GET) page qui contient Intro_prenoms et lang qui contient Fr

exemple (synthétique)

href=index.php?var1=un&var2=deux

ouvre le fichier index.php dans lequel on peur récupérer le contenu de var1 et var2
donc dans index.php au début
on peut faire
echo "<pre>";print_r($_GET);echo "</pre>";
$variable1 = $_GET['var1'];
$variable2 = $_GET['var2'];

avec cette syntaxe JAMAIS tu ouvriras un lien vers Intro_prenoms FR.php



0
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
30 août 2008 à 17:52
Salut giheller,

Je vais tacher de répondre a chacune de vos intervention au lieu de grouper.

NON
cett syntaxe renvoit vers une page appelée index.php
et passe un paramètre (tableau $_GET) page qui contient Intro_prenoms et lang qui contient Fr


Je te confirme que la page Intro_Prenoms est en htm; elle ne contient que des liens donc j'ai utilisé la méthode classique, comme pour toutes les autres pages, de cette structure de site.

Par contre le lien devrait pointer vers Liste_PrenomsF Fr.php. (encore qu'ici, pour ce concerne cette section des prénoms, je n'ai pas besoin de la $lang car il n'y aura pas de version dans d'autre langue. Donc je pourrai nommer la page Liste_PrenomsF.php.
0
PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
607
30 août 2008 à 10:36
bjr

En fait lors de l'appel http://txiki.free.fr/index.php?page=Intro_prenoms&lanf=Fr ce que cherche à faire Txiki n'est pas d'ouvrir la page Intro_prenoms FR.php mais à l'inclure dans un div à l'intérieur de la page index.php (sauf erreur de ma part)

Mais le code de sa page index.php est encore bancale : c'est pour ça que je lui ai dit de résoudre en premier son problème d'include. Ensuite il pourra se focaliser sur le contenu des includers eux-mêmes à savoir les pages Intro_prenoms, Fiche_Prenom etc ...

0
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
30 août 2008 à 18:02
ce que cherche à faire Txiki n'est pas d'ouvrir la page Intro_prenoms FR.php mais à l'inclure dans un div à l'intérieur de la page index.php (sauf erreur de ma part)

Mais ça c'est fait, puisqu'elle s'affiche correctement cette page, grace a toi d'ailleurs !.

Php, tu a compris ce que je voulais obtenir, c'est exactement ça !

Même la page Liste_PrenomsF Fr.php s'affiche correctement sauf le Pb des liens au niveau de chaque prénom (on dirait que le code n'est pas fermé mais en mettant la quote, c'est pire !).

Note: je suis obligé d'ajouter le Fr pour le nom de cette page a cause de l'index ou on lui dit si la page s'appelle X alors &langFr.

Tu affirme que ça kagade au niveau de l'index, moi je pencherai plutôt pour un Pb de syntaxe, aussi bien pour la requête que l'affichage (autant je maitrise l'écriture des tableaux en html, autant je me noie quand il s'agit de le faire par les echo <tr> etc....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
607
30 août 2008 à 10:36
bjr

En fait lors de l'appel http://txiki.free.fr/index.php?page=Intro_prenoms&lanf=Fr ce que cherche à faire Txiki n'est pas d'ouvrir la page Intro_prenoms FR.php mais à l'inclure dans un div à l'intérieur de la page index.php (sauf erreur de ma part)

Mais le code de sa page index.php est encore bancale : c'est pour ça que je lui ai dit de résoudre en premier son problème d'include en premier. Ensuite il pourra se focaliser sur le contenu des includers eux-mêmes à savoir les pages Intro_prenoms, Fiche_Prenom etc ...

0
Utilisateur anonyme
30 août 2008 à 14:58
Bjr,
dans ce cas,

$page=$_GET['page'];
$lang =$_GET['lang'];
$fichier = "Liste_prenoms ".$lang.".php";
include('$fichier');
0
PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
607
30 août 2008 à 15:02
Oui sauf que certaines de ses pages portent l'extension .php tandis que d'autres portent l'exention .htm et que certaines n'ont pas à tenir compte de la langue (donc pas de Fr à ajouter même si le paramètre est utilisé)

je sais c'est un peu tordu comme truc lol
0
Utilisateur anonyme > PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009

30 août 2008 à 15:27
il n'a qu'à les appeler toute php même s'il n'ya que du html inside !
il peut aussi faire des if
il peut aussi rechercher dans le répertoire le nom des fichiers existants...

une petire analyse plus poussée en amont aurait éviter ces questions "post ecriture".
0
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505 > Utilisateur anonyme
30 août 2008 à 18:09
Salut giheller,

il n'a qu'à les appeler toute php même s'il n'ya que du html inside !
Figure toi que j'y avais songé mais j'en ais plus de 900 :-(((

D'autre part je ne savais pas que c'était possible.

Mais a ce code, on peut choisir l'extension du fichier:
<div id="frame">
             <?php
				if(($page=="Liste_PrenomsF") || ($page=="Fiche_Prenom") || ($page=="Liste_PrenomsM")) 
				{ 
				include $_SESSION[$page]['Location']." $lang.php"; 
				} 
				else 
				{ 
				include $_SESSION[$page]['Location']." $lang.htm"; 
				}   
			?>
		</div>


S'il m'en faut d'autre, je pourrais toujours les rajouter ici......

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505 > txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022

30 août 2008 à 18:27
Bon, j'ai mis en ligne les fichiers dans un dossier zippé pour que puissiez voir ce que j'ai parceque a force de mettre des bouts par ci des bouts par là, on ne va jamais s'en sortir, j'abuse déjà de votre patience mais j'en pleure de rage et commence a faire n'importe quoi.
De plus, je vais fermer ce poste et en ouvrir pour faciliter le suivi (transmission variable).


http://txiki.free.fr/Txiki.zip

Merci encore (mais ça je ne le dirais jamais assez !)

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
607
30 août 2008 à 18:23
Oups pour le pb de lien j'ai supprimé involontairement le > en corrigeant T'Oh !

la bonne version est donc :


echo "<a href='Fiche_Prenom?Prenom=".$row['Prenom']."'></a>";

0
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
30 août 2008 à 18:38
C'est bien ce que je dit: en ajoutant l'apostrophe, les liens disparaissent comme tu peux le voir actuellement (je le laisse exprès jusqu'à ce soir).

http://txiki.free.fr Prénoms/Prénoms basques puis le lien prénoms féminins basques.
Euhhhh! je dois partir là, a ce soir peut-etre ?

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
607
30 août 2008 à 18:53
Ha oui j'avais pas vu tu mets l'intitulé du lien (donc ce qui apparaîtra sur l'écran) en dehors de la balise <a>...</a> dans une autre balise <td> Pas étonnant ! Et dire que j'ai laissé passer une erreur aussi grossière ...

C'est plus logique comme ceci ;-)

	while($row = mysql_fetch_array($result)) 
	{
		echo "<tr>";
		echo "<td bgcolor='#FFFFFF' text-align='left'>"; 
		echo "<a href='Fiche_Prenom?Prenom=".$row['Prenom']."'>".$row['Prenom']."</a>";  
		echo "</td>";
		echo "</tr>\n";
	} 
--

PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
0
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
30 août 2008 à 19:03
Ahhh ! quel bouffon je suis !

tu mets l'intitulé du lien (donc ce qui apparaîtra sur l'écran) en dehors de la balise

C'est ça que je pigeait pas (entre autre).

Ben c'est sur que ça va aller beaucoup mieux comme ça !

Toi t'es un chef !

Quand je disais que j'avais beaucoup de mal a faire des tableau avec ces echo alors que les maitrises très bien en html pur, ces echo, $ , .[''], me perturbe énormément !

Quel boeuf je fais !.

Bon là je dois y aller, mais dans la soirée, tard, je regarderai tout ça de plus près !
0
Utilisateur anonyme
23 août 2008 à 23:12
bonsoir,
personnellement je suis un peu gêné par le caractère _ entre Intro et prenom

afit un affichage au début du pgm pour voir exactement ce qui est apssé dans le $_GET
soit :
echo "<pre>";print_r($_GET);echo "</pre>";
-1
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
25 août 2008 à 19:28
Salut giheller,
Comme tu peux le voir ici http://txiki.free.fr/index.php?page=Intro_prenoms&lang=Fr (dernier lien prénom marqué popup) il m'affiche une erreur que je ne comprends pas. On dirait que la syntaxe est mauvaise et pourtant je ne vois le Pb.
Voici le début du code concerné;
// ===================================================
// Affichage de la fiche prénom dans un tablea&u dynamique 
// ===================================================
  echo "<table width='80%' bgcolor='#FFFFFF' border='0' cellspacing='0' cellpadding='4' align='center'>\n";
// première ligne on affiche le titre "Prénom basque" 
        echo "<tr text-align='center' padding='3px'>";
        echo "<td bgcolor='#FFFFFF'><strong>" .$row['Prenom']."</strong></td>";
        echo "</tr>\n";
// lecture et affichage des résultats sur plusieurs lignes selon les cas (équivalent français etc).    
  echo "<td bgcolor='#FFFFFF' text-align='left'>" .$row['Origine']."</td>"; // affiche l'origine du prénom.
  echo "</tr>\n";
  echo "<tr>";
  echo "<td bgcolor='#FFFFFF' text-align='center'>" .$row['Ephemeride']."</td>"; // affiche l'éphéméride du prénom s'il existe.
  echo "</tr>\n";
  echo "<tr>";
  echo "<td bgcolor='#FFFFFF' text-align='center'>" .$row['FrenchName']."</td>"; // affiche l'équivalent français du prénom s'il existe.
  echo "</tr>\n";
  echo "</table>\n";
    // fin du tableau.
mysql_close();
?>


Ah oui! regarde l'url quand tu passe le curseur sur un lien, il est bizarre, en bas de la pop up.

Un œil extérieur pourrait peut-etre mieux le voir car moi, ????. je ne vois rien.
Je te remercie par avance pour tes lumières.
-1
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
112
25 août 2008 à 19:35
Quelle est la ligne 134 du script index.php ?
-1
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
25 août 2008 à 19:39
Salut croy,
Elle est bizarre ta question. Sur quel lien tu a cliqué? Si c'est le premier de la liste, c'est normal, il cherche une page Header Fr.htm (et Footer Fr.htm etc...).

Mais la ligne 134 est:
<!-- Début de la section footer (pied de page) -->

C'est un commentaire. Tu est sur qu'il s'agisse de la page index ?
-1
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
112
25 août 2008 à 19:44
Le lien indiqué dans ton message http://txiki.free.fr/index.php?page=Intro_prenoms〈=Fr donne une erreur en ligne 134

Warning: main( Fr.htm) [function.main]: failed to open stream: No such file or directory in /mnt/123/sdb/9/1/txiki/index.php on line 134

Warning: main() [function.include]: Failed opening ' Fr.htm' for inclusion (include_path='/mnt/123/sdb/9/1/txiki/include:.:/usr/php4/lib/php') in /mnt/123/sdb/9/1/txiki/index.php on line 134

D'où ma question. Logique non ?
-1
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
25 août 2008 à 20:12
Ahhhh ! oui OK ! je mé gouré sur le lien. J'ai voulu donner le lien direct mais en fait il faut passer par ici:
http://txiki.free.fr puis aller Prénoms puis là, Prénoms basques. C'est dans cette dernière page que se trouvent trois liens mais il faut utiliser le dernier celui se terminant par (pop up).
Mon gros Pb est que je suis condamné a utiliser des pages en htm euuuh, vais voir si je modifie les header, menu et footer.
-1
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
112
26 août 2008 à 09:44
Je ne vois pas d'erreur (ni sur le lien terminé par popup ni sur les liens dans le popup qui s'affiche).

Ton pb est-il ce qui est affiché quand on clique sur un prénom : Array.....
-1
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
26 août 2008 à 17:28
Salut croy,

Oui c'est bien ça mon Pb. J'ai mis un echo pour voir et c'est lui qui m'affiche ça:
$id = $_GET["id"]; // La manipulation de $id est plus simple que celle de $_POST["id"]
	echo "<pre>";
	print_r($_GET);echo "</pre>"; 


D'autre par je n'ai pas reussi a ouvrir la page dans le frame principal et c'est pour ça que j'utilise le popup mais ça ne me convient pas. Et dans ce pop up, quand on passe la souris sur un des prénoms, on dirait que le code n'est pas terminé car on vois ></a><bgcolor etc......



Le bonheur est la seule chose que l'on peut donner sans l'avoir.
-1
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
26 août 2008 à 19:36
Bon, il se passe un truc bizarre à savoir qu'il n'a pas l'air de prendre en compte ceci dans l'index:
<?php
				if($_SESSION[$page]['Location']=="Liste_Prenoms") 
				{ 
				include $_SESSION[$page]['Location']." $lang.php"; 
				} 
				else 
				{ 
				include $_SESSION[$page]['Location']." $lang.htm"; 
				}   
			?>


J'ai rajouté $lang. (qui ne l'était pas au départ car la page se nommait simplement Liste_Prenoms.php.
Et comme on peut le constater ci-dessous, il cherche la page Liste_Prenoms Fr.htm au lieu de Liste_Prenoms Fr.php.

Warning: main(./Prenoms/Liste_Prenoms Fr.htm) [function.main]: failed to open stream: No such file or directory in /mnt/123/sdb/9/1/txiki/index.php on line 127

Warning: main() [function.include]: Failed opening './Prenoms/Liste_Prenoms Fr.htm' for inclusion (include_path='/mnt/123/sdb/9/1/txiki/include:.:/usr/php4/lib/php') in /mnt/123/sdb/9/1/txiki/index.php on line 127


La ligne 127 est dans le code plus haut, la ligne soulignée. Je commence a tout mélanger et en plus n'étant qu'un autodidacte et débutant en php, vous imaginez ma rage, c'est une page qui me tient énormément à coeur ! Vous n'en avez pas idée à quel point !

Merci a celui/ceux qui me donnera un coup de main, me corrigera ce code mais avec des commentaires que je puisse comprendre ce que je fait, mal.

Merci infiniment d'avance !

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
-1
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
26 août 2008 à 23:48
Bonsoir à tous,
Est-il possible de dire dans un if si une page se nomme ou comme ci-dessous et comment ?

if($_SESSION[$page]['Location']=="Liste_Prenoms")


Il m'en faudrait une autre pour Fiche_Prenom. En fait il me faudrait trois pages, PrenomsMasculins.php, PrenomsFeminins.php et FichePrenom.php au total.

Autre chose que je ne comprends pas. Ma table est en utf8, mais à l'affichage, certains caractères espagnols comme le ñ ou d'autres se transforment en ?.
Comment faire le utf8 decode et surtout à quel endroit de la requête ?.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
-1
txiki
Messages postés
3928
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
6 avril 2022
505
27 août 2008 à 19:19
Bon, je crois que je me suis mal exprimé:

Ma question est celle-ci:
Comment peut-on faire pour dire que si une if($_SESSION[$page]['Location']=="Liste_Prenoms") ou/et Fiche_Prenom ou encore Liste_PrenomsM a la question 9

Merci a celui qui pourrait m'aider a terminer cette portion de code php.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
-1
Utilisateur anonyme
28 août 2008 à 08:03
Bonjour,
sans garantie sur cette idée mais personnellement je commencerai par enlevere les espaces qui trainent dans les noms de fichier et dans les chaines de caratères passées

Warning: main(./Prenoms/Liste_Prenoms Fr.htm) [function.main]: failed to open stream: No such file or directory in /mnt/123/sdb/9/1/txiki/index.php on line 127
et ici
include $_SESSION[$page]['Location']." $lang.php";

include $_SESSION[$page]['Location']." $lang.htm";


-1