données-->tableau-->liens-->chargement

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 : données-->tableau-->liens-->chargement

par renatane » 30 mai 2005, 17:39

merci bcp

par Cyrano » 30 mai 2005, 17:37

W3C = World Wide Web Consortium, organisme international sans but lucratif qui établit les recommandations pour les normes dans les langages, principalement de l'Internet mais plus généralement pour les échanges d'information. Donc quand on parle de validation d'un code HTML ou XHTML ou encore CSS, ça veut dire qu'on respecte ces recommandations reconnues en général comme des standards.

Le W3C est composé des principaux acteurs majeurs de l'industrie, Netscape, Microsoft, Adobe/Macromedia, etc.....
Voir le site www.w3.org

par renatane » 30 mai 2005, 17:26

oui &, merci.
c koi W3C?

par Cyrano » 30 mai 2005, 17:11

le & et non le $amp; , c'est une version valide W3C du & dans une url

par renatane » 30 mai 2005, 16:39

j'ai remplacer les "" par des '' a l'interieur des [ ].
J'ai ajouter $amp (c'est koi? c'est comme un &&?)

Mais ca n'a rien changer :cry:

par Cyrano » 30 mai 2005, 16:30

Je viens de remarquer un problème sur la page brouillon: les concaténation de chaine lors des construction de requête ou de liens: les alternances " et ' sont hasardeuses et il y a conflit: D'autre part, tu envoies deux paramètres dans les liens sans les séparer avec un "&" ou "&"
Observe attentivement les différences entre ton code et mon corrigé.

Ce n'est peut-être pas suffisant pour régler le problème, mais ça devrait avancer pas mal:
<html>
    <head>
        <title>brouillon.php</title>
    </head>
    <body>
        <A HREF="index.php"> retour a l\'index </A><br><br>
         
<?php
include ("connexion.php");
connection();

$req_brouillon=mysql_query("select * from phpgw_workf_versions"); //where le nom d'user == celui de connection.
echo "<table border='1'>";
echo "<tr><td>id_version</td><td>id_note</td><td>Service</td><td>Titre</td><td>Date d'instance</td><td>destinataire</td><td>Supprimer?</td>";



while ($a_result = mysql_fetch_array($req_brouillon, MYSQL_ASSOC))
{
    $q = "SELECT DISTINCT  date FROM phpgw_workf_instances WHERE id_instance = ".$a_result['id_instance'];
    // Envoi de la requête à MySQL
    $resultq = mysql_query($q);

    $s = "SELECT DISTINCT  nom_service FROM phpgw_workf_services WHERE id_service = ".$a_result['id_service'];
    // Envoi de la requête à MySQL
    $results = mysql_query($s);

    echo "<tr>";
    echo "<td><a href='rediger.php?id=".$a_result['id_note']. "&ide=".$a_result['id_version']."'>".$a_result['id_version']."</a></td>";
    echo "<td><a href='rediger.php?id=".$a_result['id_note']. "&ide=".$a_result['id_version']."'>".$a_result['id_note']."</a></td>";
    echo "<td><a href='rediger.php?id=".$a_result['id_note']. "&ide=".$a_result['id_version']."'>".$results."</a></td>";
    echo "<td><a href='rediger.php?id=".$a_result['id_note']. "&ide=".$a_result['id_version']."'>".$a_result['titre']."</a></td>";
    echo "<td><a href='rediger.php?id=".$a_result['id_note']. "&ide=".$a_result['id_version']."'>".$resultq."</a></td>";
    echo "<td><a href='rediger.php?id=".$a_result['id_note']. "&ide=".$a_result['id_version']."'>".$a_result['destinataire']."</a></td>";
    echo "<td><a href='supprime_brouillon.php?id=".$a_result['id_brouillon']. "&ide=".$a_result['id_note']."'>supprimer</a></td>";
    echo "</tr>";
}

echo "</table>";
mysql_close();
?>
        </table>
    </body>
</html>

par renatane » 30 mai 2005, 11:39

a bon! pourtant, avant, quand ca tournai, ma redirection etait là aussi, et ca marchait qd mê.

Pour ce qui est des liens entre les pages:

"rediger" appel "enregistrer"
"enregistrer" renvoye a "rediger" et alimente la base.

"brouillon" appel la base et ouvre "rediger" et c'est là qu'est mon problème.

par Cyrano » 30 mai 2005, 11:01

Ok, je vois un premier problème dans la page enregistrer.php: tu commences par rediriger directement vers une autre page, donc la suite du code n'est pas exécutée: Comme sur cette page tu n'envoies rien au navigateur, tu peux mettre ce header en fin de code;
<?php
$service = $_POST['nom_service'];
$titre = $_POST['titre'];
$article = $_POST['article'];
$date = $_POST['date'];
$destinataire = $_POST['destinataire'];
$id_note=$_POST['id_note'];
$id_version=$_POST['id_version'];


include ("connexion.php");
connection ();
$s = "SELECT DISTINCT  id_service FROM phpgw_workf_services WHERE nom_service = $service";
// Envoi de la requête à MySQL
$results = mysql_query($s);

$q = "SELECT DISTINCT  id_instance FROM phpgw_workf_instances WHERE date = $date";
// Envoi de la requête à MySQL
$resultq = mysql_query($q);
$sql = "INSERT INTO phpgw_workf_versions (id_version,id_note, id_instance, id_service, titre, article, etat, destinataire, auteur) VALUES ('$id_version','$id_note','$results','$resultq','$titre','$article','', '$destinataire', '')";

// Envoi de la requête à MySQL

$query = mysql_query($sql);
mysql_close();
header("Location: rediger.php");
?>
Mais ça pose un problème: le formulaire de rediger.php a comme destination enregistrer.php, donc à l'exécution de ce dernier fichier, on revient automatiquement sur le formulaire... rien ne t'indiquera que les requêtes ont été correctement exécutées.

Je n'ai pas vraiment trouvé le lien entre ces deux fichiers et brouillon.php :?:

par renatane » 30 mai 2005, 10:39

ben moi ca me derange pas, mais c assez long, et je sais pas si'il est clair mon code.

rediger.php (c'est le formulaire)
<?php
include ("connexion.php");
connection ();

//controle pour voir si la page est ouverte a partir de brouillon.php.
if (isset($_GET["id"],$GET_["ide"])) {
//si oui:   
//on selectionne l'enregistrement de la table versions 
  $str_requete = "SELECT * FROM phpgw_workf_versions WHERE  id_note=".$_GET["id"]." and id_version=".$GET["ide"];
//on execute la requete
  $o_result = mysql_query($str_requete);
  $a_result = mysql_fetch_array($o_result, MYSQL_ASSOC) ;
//on stock les champs de l'enregistrement dans des variables.

$str_req = "SELECT nom_service FROM phpgw_workf_services WHERE  id_service=".$a_result["id_service"];
 $var1 = mysql_query($str_req);

 $var2 = $a_result["titre"];
 $var3 = $a_result["article"];

$str_r = "SELECT date FROM phpgw_workf_instances WHERE  id_instance=".$a_result["id_instance"];
 $var4 = mysql_query($str_r);

 $var5 = $a_result["destinataire"];

$st = "SELECT DICTINCT MAX(id_version) FROM phpgw_workf_versions where id_note=".$_GET["id"];
$varVe = mysql_query($st); 
$varV= $varVe +1;

$varN= $_GET["id"];

}
else //si non: (ouverture de la page normalement)
{
        //On met toute les variables par defaut
    $var1 = "";
    $var2 = "";
    $var3 = "";
    $var4 = "";
    $var5 = "";
$varV=1;

$str_requete = "SELECT DICTINCT MAX(id_note) FROM phpgw_workf_versions";
$varNo = mysql_query($str_requete); 
$varN= $varNo +1;
}
?>
<html>
    <body>
        <!-- titre de la page -->
        <center><h2>Rédiger une notes de syntheses</h2></center>
        <br><br>
        
        <!-- lien de retour a l'accueil -->
        <A HREF='index.php'> retour a l\'index </A>
        <br><br>

        <!-- création du form, champs Service, menu deroulant dynamique (table service) -->
        <form name='nom' action='enregistrer.php' method='post'>

Note:<INPUT type=text name='id_note' SIZE='11' MAXLENGTH='11' value='<?= $varN ?>'><br>
Version:<INPUT type=text name='id_version' SIZE='11' MAXLENGTH='11' value='<?= $varV ?>'><br><br>

            Service :
            <select name='nom_service'><br>
<?php
$rq = "SELECT DISTINCT nom_service FROM phpgw_workf_services ORDER BY nom_service";
$result = mysql_query($rq)
or die ("Exécution de la requête service impossible".mysql_error());
//DISTINCT permet d'afficher qu'une fois les données
//on liste tous les servicesde la table service.
while ($liste=mysql_fetch_array($result))
{
    extract($liste);
    //pour chaque ligne on teste si elle correspond à la ligne a afficher :
        //si var1 = "" aucune ligne ne sera sélectionnée
        // sinon la ligne qui a été enregistrée sera sélectionnée
    $selected = ($nom_service == $var1) ? "selected" : ""; // Cette ligne permet de sélectionner la ligne dont la valeur est stocké ds la bdd
    echo "<option value=" .$nom_service." ".$selected.">".$nom_service."</option>\n";
}
?>
           </select>
            <br><br>           
         <!-- champ titre. -->
            Titre :
            <INPUT type=text name='titre' SIZE='60' MAXLENGTH='200' value='<?= $var2 ?>'>
            <br><br>
            <!--champ de redaction de l'article -->
            Article :
            <BR><br>
            <TEXTAREA name='article' cols='100' rows='10' height=100% width=100% WRAP=virtual><?= $var3 ?></TEXTAREA>
            <table cols='2' rows='2' border='0' width=100% >
                <tr>
                    <td>
 <!-- champs de choix de la date dans le menu deroulant dynamique de la table instance -->
                        Proposé pour l instance du:
                        <select name='date'><br>
<?php
      //on selectionne jour, mois et année dans la table instance
    $rqs = "SELECT DISTINCT date FROM phpgw_workf_instances ORDER BY date";
    $results = mysql_query($rqs)
    or die ("Exécution de la requête instance impossible : ".mysql_error());
    //DISTINCT permet d'afficher qu'une fois les données
        //on liste toutes les options possibles c-a-d tous les enregistrements.
        while ($list=mysql_fetch_array($results))
        {
extract($list);
$selecte = ( $date== $var4) ? "selected" : "";
//affciche la date en francais et en toutes lettres

$dec= explode ("-",$date);
$a=$dec[0];
$b=$dec[1];
$c=$dec[2];

switch ($b)
{case "01":$moii="Janvier";break;
case "02": $moii="Février";break;
case "03": $moii="Mars";break;
case "04": $moii="Avril";break;
case "05": $moii="Mai";break;
case "06": $moii="Juin";break;
case "07": $moii="Juillet";break;
case "08": $moii="Aout";break;
case "09": $moii="Septembre";break;
case "10": $moii="Octobre";break;
case "11": $moii="Novembre";break;
case "12": $moii="Decembre";break;

}

$dat=$c."-".$moii."-".$a;
echo "<option value=".$dat." ".$selecte." >".$dat."</option>\n";
        
}
?>
                        </select>
                        <br>
<?php


//affichage du type et de la limite qui correspondent a la date choisie. table instance.
//Construction de la requete
$nature="SELECT DISTINCT type, date_limite FROM phpgw_workf_instances 
where date=".$date;

//On execute la requete sur la base de données afin de récuperer les données
$res = mysql_query($nature)
or die ("Exécution de la requête nature impossible : ".mysql_error());

//On place les données récupérées dans un tableau 
$lis=mysql_fetch_array($res);
echo $lis;
//On affiche ces données
echo "Nature : ".$lis['type'];  
echo "<br>";
//On affiche ces données 
echo "Date limite de remise des dossiers :".$lis['date_limite'];  
echo "<br>";


?>

                    </td>
<!-- champ destinataire ou l'on tape l'adresse mail du destinataire -->
                    <td>Destinataire :
                        <INPUT TYPE=text NAME='destinataire' SIZE='30' MAXLENGTH='50' value='<?= $var5 ?>'>
                        <INPUT TYPE='button' name= 'consulter' VALUE='consulter annuaire' OnClick='window.open("annuaire.php","pop1","height=600, width=400, top=100, left=100,toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=no, status=no");'> <br><BR>
                    </td>
                </tr>
                <tr colspan='2'>
                    <td>
                        <!-- bouton valider qui ouvre une pop up de confirmation -->
                         <INPUT TYPE='button' name= 'valider' VALUE='Valider' ;'>
                        <!-- bouton enregistrer qui stock le form dans la table brouillon. -->
                        <INPUT TYPE='submit' name ='enregistrer' VALUE='Enregistrer'>
                        <!-- bouton annuler qui annule -->
                        <INPUT TYPE='reset' VALUE='Annuler'>
                    </td>
                </tr>
                <br><br><br>
            </table>
        </form>
<?php
//fermeture de connection a la base.
mysql_close();
?>
    </body>
</html>
enregictrer.php;
<?php
header("Location: rediger.php"); 
$service = $_POST['nom_service'];
$titre = $_POST['titre'];
$article = $_POST['article'];
$date = $_POST['date'];
$destinataire = $_POST['destinataire'];
$id_note=$_POST['id_note'];
$id_version=$_POST['id_version'];


include ("connexion.php");
connection ();
$s = "SELECT DISTINCT  id_service FROM phpgw_workf_services WHERE nom_service = $service";
// Envoi de la requête à MySQL
$results = mysql_query($s);

$q = "SELECT DISTINCT  id_instance FROM phpgw_workf_instances WHERE date = $date";
// Envoi de la requête à MySQL
$resultq = mysql_query($q);
$sql = "INSERT INTO phpgw_workf_versions (id_version,id_note, id_instance, id_service, titre, article, etat, destinataire, auteur) VALUES ('$id_version','$id_note','$results','$resultq','$titre','$article','', '$destinataire', '')";

// Envoi de la requête à MySQL

$query = mysql_query($sql);
mysql_close(); 
?>
Brouillon .php:
<html> 
    <head> 
        <title>brouillon.php</title> 
    </head> 
    <body> 
        <A HREF="index.php"> retour a l\'index </A><br><br> 
         
<?php 
include ("connexion.php");
connection(); 
 
$req_brouillon=mysql_query("select * from phpgw_workf_versions"); //where le nom d'user == celui de connection.
 echo "<table border='1'>";
echo "<tr><td>id_version</td><td>id_note</td><td>Service</td><td>Titre</td><td>Date d'instance</td><td>destinataire</td><td>Supprimer?</td>";



while ($a_result = mysql_fetch_array($req_brouillon, MYSQL_ASSOC)) { 

$q = "SELECT DISTINCT  date FROM phpgw_workf_instances WHERE id_instance = ".$a_result["id_instance"];
// Envoi de la requête à MySQL
$resultq = mysql_query($q);

$s = "SELECT DISTINCT  nom_service FROM phpgw_workf_services WHERE id_service = ".$a_result["id_service"];
// Envoi de la requête à MySQL
$results = mysql_query($s);

  echo "<tr>"; 
echo "<td><a href='rediger.php?id=".$a_result["id_note"]. "ide=".$a_result["id_version"]."'>".$a_result["id_version"]."</a></td>";
echo "<td><a href='rediger.php?id=".$a_result["id_note"]. "ide=".$a_result["id_version"]."'>".$a_result["id_note"]."</a></td>";
  echo "<td><a href='rediger.php?id=".$a_result["id_note"]. "ide=".$a_result["id_version"]."'>".$results."</a></td>"; 
  echo "<td><a href='rediger.php?id=".$a_result["id_note"]. "ide=".$a_result["id_version"]."'>".$a_result["titre"]."</a></td>"; 
  echo "<td><a href='rediger.php?id=".$a_result["id_note"]. "ide=".$a_result["id_version"]."'>".$resultq."</a></td>"; 
  echo "<td><a href='rediger.php?id=".$a_result["id_note"]. "ide=".$a_result["id_version"]."'>".$a_result["destinataire"]."</a></td>"; 
echo "<td><a href='supprime_brouillon.php?id=".$a_result["id_brouillon"]. "ide=".$a_result["id_note"]."'>supprimer</a></td>";
  echo "</tr>"; 
} 

 echo "</table>";
mysql_close();
?> 
        </table> 
    </body> 
</html> 

par Cyrano » 30 mai 2005, 10:31

Difficile de te répondre, il faut voir le code des deux pages pour comprenre la méthode de transmission :?

par renatane » 30 mai 2005, 10:23

du formulaire "rediger", mes variables passent par "enregistrer" qui les placent dans la base de donnée. Puis "brouillon" récupère ces variables pour les affciher en lien dans un tableau.

Quand je clique sur un lien de "brouillon", la page rediger s'ouvre et ses champs sont remplis avec les valeurs du tab brouiillon.
Du moins, c'est ce que ca faisait avant, mais now que je verifie sur 2 camps de la table, ca marche plus, je pensait que c t la methode qui n'etait pas valable.

par Cyrano » 30 mai 2005, 10:15

Pourquoi pas, ça dépend comment tu transmets tes variables entre les deux pages... :?:

par renatane » 30 mai 2005, 10:03

Clic-droit>coller ;) à moins que tu sois sous Mac, avec un seul bouton, c'est dur de faire un clic droit
Troll en vue !
ca marchait pas, j'y pouvait rien ,lol, il faisait trop chaud, la souris faisait greve!
_________________________________________________________________________________________________________________
Now dans ma base, j'ai 2 champs en clé primaire, et dc, qd je veut reprendre un brouillon, je verrifie qu'il vient de la page de redaction est ouverte a partir de la page brouillon avec:

(sur la page de redaction:)
if (isset($_GET["id"],$GET_["ide"])) {
  $str_requete = "SELECT * FROM phpgw_workf_versions WHERE  id_note=".$_GET["id"]." and id_version=".$GET["ide"];
....
....}
puis dans ma page brouillon:
echo "<td><a href='rediger.php?id=".$a_result["id_note"]. "ide=".$a_result["id_version"]."'>".$a_result["id_version"]."</a></td>";
Est ce que j'ai le droit de le faire comme ca?

par Cyrano » 27 mai 2005, 17:40

Ha ben je sais pas moi, la culture Mac, c'est un univers qui pour moi est Terrae incognita ;)

par mere-teresa » 27 mai 2005, 17:39

Clic-droit>coller ;) à moins que tu sois sous Mac, avec un seul bouton, c'est dur de faire un clic droit
Troll en vue !

Pssssst, c'est fini les souris à un seul bouton, on a de l'USB maintenant...(*caresse sa souris Logitech à boutons et molette avec amour*