8792 sujets

Développement web côté serveur, CMS

Bonjour,
voila, j'ai réalisé en local une ébauche de site avec du php dedans. Jusqu'à maintenant je m'intéressais plus au squelette(le comportement) qu'à l'ergonomie du site.
Une fois que tout marche bien, j'ai voulu amélioré l'ergonomie(comme ajouter un menu horizontal). Ce menu étant présent dans toutes les pages, j'ai voulu profiter des includes pour éviter de retaper dans toutes mes pages le code du menu. J'ai donc lu l'excellent tutoriel de ce site. Sauf que dans mes pages je passais des variables avec la méthode GET et je ne vois pas comment l'utiliser avec la méthode des includes des tutoriels.
Si il existe une méthode reconnue et sure, j'achète Smiley ravi
merci.
Modifié par KOre_TecHS (11 Jul 2005 - 18:32)
Je ne comprend pas bien ton problème...

a écrit :
Sauf que dans mes pages je passais des variables avec la méthode GET et je ne vois pas comment l'utiliser avec la méthode des includes des tutoriels.


Si tu veux dire que tu utilisais déjà des variables get et que donc tu ne sais pas comment passer une deuxième variable, il suffit de les séparer par un & :

http://url.com/page.php?var1=ffff&var2=xxxx

Si tu ne sais pas comment récupérer le contenu d'une variable get en php :

$_GET['mavariable'] te donne le contenu de la variable get mavariable.
Modifié par TriadPtale (08 Jul 2005 - 18:33)
C'est catholique ça de faire un include de fichier + des variables sur la même ligne ?
Il faut se dire que l'include intégre le contenu d'un fichier et non afficher le résultat que l'interprétateur PHP renvoit. Euhh suis-je clair ? En fait moi non plus je comprend pas bien ton problème… Du code, du code…
Modifié par zzzazzz (08 Jul 2005 - 20:40)
Le problème est que ce tutoriel mêlant include et simulation du comportement des frames crée, involontairement, une confusion à peu près totale pour ceux qui découvrent php.

KOre_TecHS : Commençons déjà par ce que tu voulais faire avant de tout mélanger avec ces fichus pseudo-frames : à quoi te sert le php dedans ton site, avant l'histoire du tutoriel ? quel est le rôle de tes variables passées en GET ? Où et comment sont-elles traitées ?
a écrit :
Le problème est que ce tutoriel mêlant include et simulation du comportement des frames


A mon avis la confusion a lieu quand les débutant voient ce tuto avec l'idée de "je vais simuler des frames" ...

Dans tous les cas, y a du boulot Smiley smile
Je n'ai pas vraiment de code à montrer puisque je n'arrive pas a comprendre comment je peut coder celà.
J'avais compris que les includes "recopiait" le code dans la page, mais dans ma tete c'était que le code html. Maintenant je pense avoir mieux saisi. Donc je pense que faire une include en passant des vars par l'adresse c'est pas possible.(par exemple
include ('pageX.php?var1=toto'); 
c'est pas bon?)

@Laurent Denis: le php sert à me connecter à une DB et a presenter les informations "esthétiquement". Je présente des photos avec commentaires associées et des statistiques que je calcule(que le php calcule). Et les variables que je passe servent a definir la phot qe je veu afficher(son ID) et elles me servent pour rediriger les logins qui se sont bien passé(mot de passe valide)sur la page depuis laquelle ils ont été demandés.
Modifié par KOre_TecHS (08 Jul 2005 - 23:26)
Bigre Smiley eek

Bon pour faire simple :

tu n'as pas besoin de passer la variable, puisque tu es dans le même script Smiley cligne les variables sont accessible ...
Meci pour ces réponses mais je pense chosir la méthode bourrin:
dans chaqe page je vais faire un include vers le menu et le footer et au milieu je laisserai ma page normale. Je ne sais pas si cette méthode est bonne en termes de performances pour le serveur.
Sinon , j'ai du code ce qui pourra peut-être aider à mieux comprendre.

<?


mysql_connect("localhost", "root", "");
mysql_select_db("testdedb");
if (empty($_POST))
{
echo'genre le isset est tjrs vrai y que empty qui marche';
DisplayPage(0);
exit;
}

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  extract($_POST);
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "SELECT Mdp FROM ListUsers where Login='".$_POST['login']."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);
$pass=md5($_POST['pass']);//on crypte le mot de passe qui a été posté par luser car dans la db c'est crypté

  if($data['Mdp'] != $pass) {
    DisplayPage(2);//Erreur2:mauvais login/mdp
    exit;
  }
  else {
    session_start();
    $_SESSION['login'] = $login;
    if (!empty($_POST['depuispage']))
	{
	header('Location: '.$_POST['depuispage'].'.php');//dangereux faire un switch pour le WAN
	}//faire switch
    //echo $login.'Vous etes bien logué';
    
  }   
}
else {DisplayPage(1);}//Erreur 1: Champ non remplis
exit;

function DisplayPage($Erreur)
{?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<? switch ($Erreur)
{
case 1 :echo'Tous les champs n\'ont pas été remplis';break;
case 2: echo 'Mauvais Login/Mot de passe.Reessayez';break;}?>
<form
 action="login2.php" method="post">
  <table align="center" border="0">
    <tbody>
      <tr>
        <td>Login :</td>
        <td><input
 name="login" maxlength="250" type="text"></td>
      </tr>
      <tr>
        <td>Password</td>
        <td><input
 name="pass" maxlength="10" type="password"></td>
      </tr>
      <tr>
        <td colspan="2" align="center"><input
 value="log in" type="submit"></td>
      </tr>
    </tbody>
  </table>
<input type="hidden" name="depuispage" 
<? 
if (!empty($_GET['page']))
{
$page=htmlentities($_GET['page']);  //on inscrit dans un champ caché la page d'origine obtenu par le GET. Elle sera posté puis traité par POST
echo 'value="'.$page.'"';
}?>
/> 
  
  </form>
</body>
</html>
<?
}
?>


Mon problème c'était comment modifier le header pour que ca marche avec la technique du tuto. Et mon autre problème c'était comment appeler cette page de login qui était appelée par un lien du type login2.php?page=pageX.
En espérant avoir été plus clair Smiley lol
Modifié par KOre_TecHS (10 Jul 2005 - 11:28)
Achètes toi un bon bouquin au sujet de php si tu veux progresser Smiley smile

C'est un sujet très vaste et quoiqu'on en dise, un livre c'est toujours très utile.
Comme dit plus haut, il n'y a pas de problème...

Tu ouvres ta page avec tes paramètres

href="page.php?variable=valeur';


ensuite tu appelles ta page normalement (code simplifié, je vous laisse placer les bonnes balises, les divs et compagnie Smiley cligne )


<?php
$variable = $_POST['login']) 
include 'entete.php';
include 'menu.php';
>?
Ceci est le code de ma page <?php echo $var; ?>


dans le menu


Ceci est le menu de ma page <?php echo $var; ?>


dans l'en-tête

Ceci est l'en-tête de ma page <?php echo $var; ?>


et tu utilises $var aussi bien dans le corps que dans le menu que dans l'en-tête... Puisque c'est inclus dans un seul et même fichier au moment du traitement sur le serveur et que ce ne sont pas trois fichiers différents...

Faut que je relises le tuto sur l'include mais il m'avait semblé que c'était clair dedans...
Modifié par Bob (MC Melun) (11 Jul 2005 - 14:33)