Problème avec include

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec include

par Cyrano » 09 oct. 2005, 16:25

Tu as rajouté quelques trucs inhabituels pour moi
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
La super-globale $_SERVER contient quelques index pratiques, en particulier PHP_SELF : ce que j'ai mis fait recharger la page sur elle-même, ça permet à un bour de script de formulaire d'être utilisé sur n'importe quelle page. Mais tu peux remplacer par le nom de la page comme c'était avant et ça fonctionnera de la même manière.

par DocType » 09 oct. 2005, 16:17

Excuse moi PRoGRaFLaSH

J'ai essayé ton code, car je n'ai pas compris ton explication.
Ton code aboutit au même dysfonctionnement que le mien

Que faut-il faire comme correction ?
Normal, c'est synthétiquement le tien ! :roll:
Le texte doit être placé dans un body et le link en head, d'où mon post :roll:
C'est d'ailleurs là dessus que j'attirais ton attention (et non ! ce n'était pas un code tout fait que je te donnais :lol: )

par Je Débute » 09 oct. 2005, 15:59

Cyrano, Merci !

J'ai rechargé ton code et il fonctionne.
Je n'ai pas encore compris la correction je vais analyser.
Tu as rajouté quelques trucs inhabituels pour moi

<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">

Merci beaucoup.

par Je Débute » 09 oct. 2005, 15:44

Excuse moi PRoGRaFLaSH

J'ai essayé ton code, car je n'ai pas compris ton explication.
Ton code aboutit au même dysfonctionnement que le mien

Que faut-il faire comme correction ?

par Cyrano » 09 oct. 2005, 15:42

Et les balises <body> ? C'est pour décorer ?

Voilà ce que j,ai fait et testé :
  1. cadre.php :
    <?php
    echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
    <title>Éléments imbriqués par include()</title>
    <link rel="stylesheet" media="screen" type="text/css" title="essai" href="./css.css" />
    </head>
    <body>
    <div class="cadre">
    <?php
    include ("./enregistre.php ");
    ?>
    </div>
    </body>
    </html>
    
  2. css.css:

    Code : Tout sélectionner

    .cadre { width: 300px; height: 200px; padding-left: 50px; padding-right: 0px; padding-top: 50px; background-color: #eee; position: absolute; top: 50px; left: 50%; margin-left: -150px; border:#000 solid 1px; color:green; }
  3. form.php :
    <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
    <b>Entrez le mot</b> <br>
    <input type="text" name="nom" value="NOM" /> <br>
    <input type="submit" value="Ok" />
    </form>
  4. enregistre.php :
    <?php
    $nom = isset($_POST['nom']) ? $_POST['nom'] : "";
    if ($nom!="secrêt")
    {
       include ("form.php");
       if(isset($_POST['nom']))
       {
           echo("<p>". $nom ." : mauvais mot</p>\n");
       }
    }
    else
    {
        echo("<p>".$nom ." trouvé</p>\n"); 
    }
    ?>
    

par DocType » 09 oct. 2005, 15:30

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" media="screen" type="text/css" title="essai" href="css.css" /> 
<div class="cadre"> 
<? 
if (isset ($_POST['nom'])) {$nom= $_POST['nom'];} 
else{$nom="";} 

if ($nom!="secrêt") 
   { 
   include ("form.php"); 
   echo $nom," mauvais mot"; 
   } 
else 
   { 
   echo $nom ," trouvé";  
    } 
?>
</div>
</head>

<body>

</body>
</html>
Voilà ce que ca donne normalement, a savoir que le link est censé etre dans le head. Vu ton code ca reagit comme cela, ca affiche donc du texte en dehors du body... :?

par Je Débute » 09 oct. 2005, 14:46

Je viens d'essayer, mais cela n'y fait rien, toujour même mauvais résultat

par Cyrano » 09 oct. 2005, 13:06

Le problème vient peut-être des liens relatifs: essaye en mettant de chemins comme ceci:
include ("./enregistre.php ");
Y compris dans le href de ta balise <link> vers la feuille de style.

Problème avec include

par Je Débute » 09 oct. 2005, 12:41

Bonjour,

Je vous soumets un jeux-test d'enchainement.
J'ai un cadre (conteneur) cadre.php que je lance en 1er.
Ce cadre est piloté par une feuille de style: css.css
Dans ce cadre, je fais appel par "include" à un traitement : enregistre.php qui lui même fait appel à un formulaire : form.php
Le traitement est logique et renvoie des réponses par des echos.

Mais ces echos sortent du cadre piloté par la feuille de style. Voila mon problème.
Comment faire pour que tout le traitement reste dans le cadre piloté par la feuille de style ?

Pour vous permettre de mieux comprendre voici le code de mon test:

cadre.php

Code : Tout sélectionner

<link rel="stylesheet" media="screen" type="text/css" title="essai" href="css.css" /> <div class="cadre"> <? include ("enregistre.php ");?> </div>
css.css

Code : Tout sélectionner

.cadre { width: 300px; height: 200px; padding-left: 50px; padding-right: 0px; padding-top: 50px; background-color: #eee; position: absolute; top: 50px; left: 300px; border:#000 solid 1px; color:green; }
enregistre.php

Code : Tout sélectionner

<? if (isset ($_POST['nom'])) {$nom= $_POST['nom'];} else{$nom="";} if ($nom!="secrêt") { include ("form.php"); echo $nom," mauvais mot"; } else { echo $nom ," trouvé"; } ?>
form.php

Code : Tout sélectionner

<form action="enregistre.php" method="post"> <b>Entrez le mot</b> <br> <input type="text" name="nom" value="NOM" /> <br> <input type="submit" value="Ok" /> </form>
Merci d'avance