STIC Discussion:STIC II - exercice 12 (Nestor-Pixel)

De EduTech Wiki
Aller à : navigation, rechercher

Sommaire

1 Liens ?

Bonjour, je n'ai pas trouvé comment faire apparaître les url sous forme de liens cliquables dans la base de données.

Sylviane 8 mars

salut sylviane :) heu... je dois dire que je comprends pas vraiment ta question... tu pourrais préciser? merci :)

--Bertrand Schneider 9 mars 2008 à 11:01 (CET)

    • tu vas comprendre avec la capture écran ci-jointe :

page principale [1]

Comme tu peux voir, les url ne sont pas soulignées, elles ne sont pas actives (enfin le soulignement n'est pas une preuve puisqu'on peut le supprimer.. mais bon, admettons :-)

Or j'aimerais bien qu'à partir de cetet page on puisse accéder aux ressources...

Sylviane 9 mars à 12:36 (CET)

Je suis pas sur d'avoir compris non plus. D'où vient cette image ? PhpMyAdmin ? Webgenerator ? tu as une adresse où on peut voir d'où provient cette image ? Si c'est une image de PhpMyAdmin, tu ne pourras jamais avoir de liens cliquables depuis ta base de données (à moins que....... mais ça devient du gros hacking :P )--Davidc 10 mars 2008 à 07:00 (CET)
Cela vient d'un générateur. Donc soit on peut lui apprendre comment afficher un URL, soit il faudrait trouver l'endroit dans le code généré et changer manuellement. Je pense que c'est plutôt cela qu'il faut faire (editer le fichier list.php). - Daniel K. Schneider 10 mars 2008 à 10:23 (CET)

2 Installation sur serveur Université

Pour les exercices 11 et 12, vous nous demandez d'installer les bases de données sur le serveur MySQL de l'université mais apparemment on ne peut installer qu'1 seule base de données, avec comme nom son propre login. J'en déduis qu'on aura alors plusieurs tables qui n'auront pas de lien entre elles et les 2 bdd vont donc être mélangées, ça ne fait rien ?

Autre question : J'ai généré le code php avec Webgenerator puis fait quelques modifications. En local ça marche très bien : on peut compléter la base de données grâce à un formulaire et on voit que le lien se fait correctement avec MySql. Comment faire pour que ça marche sur le serveur du Tecfa, en admettant que l'on mette les pages ainsi générées dans le repertoire ex12 (comme je l'ai fait) ? Faut-il changer des chemins et si oui lesquels ?

Sylviane 9 mars

pour les ex 11 et 12 tu n'as besoin que d'une seule base de données normalement... avec minimalement deux tables (les tables c'est ok, tu peux en créer autant que tu veux). Quand tu parles des deux bases de données mélangées, laquelle est la deuxième?? (désolé je dois pas être bien réveillé ce matin :PPP)

--Bertrand Schneider 9 mars 2008 à 11:01 (CET)

    • non c'est moi qui m'explique mal mais enfin peut-être que tu as fait la fête aussi hier soir :-)

pour l'exo 11 j'ai crée 1 bdd avec 2 tables que j'ai mises en relation, pour le 12 j'ai rassemblé les 2 en 1 et modifié qqs points. Donc sur phpMyadmin, je fais passer les 2 tables de l'exo 11 et celle de l'exo 12 qui est nommée autrement. Mais c'est du vrac parce que apparemment c'est comme chez Free : on ne peut créer qu'une seule bdd (sur tecfa elle est sous mon login). Mais peut-être que j'ai mal compris... Sylviane


pour webgenerator, tes fichiers php peuvent être n'importe où ça marchera, la connexion à sql ne dépend pas d'un chemin. Essaie, tu verras ;)

    • j'ai mis les fichiers générés par Webgenerator dans mon espace dans le dossier ex12 et la bdd est sur phpMyadmin et je suis coincée là : je ne sais pas comment faire pour qu'on voit le résultat comme en local, et que l'on puisse saisir. Sylviane

2.1 Plusieurs bases de données sur une seule

Un petit truc quand on est coincé avec une seule base de données : Ajouter des préfixes à ses tables :

  • maltt_table1
  • maltt_table2
  • webGen_table1
  • webGeb_table2
  • ....

ça fait plus ordonner et permet de tout condenser dans une seule base de données.--Davidc 10 mars 2008 à 07:04 (CET)

2.2 Passer du local au serveur TECFA

Tu as oublié de changé tes codes d'accès à ta base de données dans TECFA. C'est le fichier /db/db_connection.php . Tu dois passer du root au nom que Stephane t'a filé. Un truc pour ne pas travailler avec plusieurs versions de fichiers. Quand vous avez une base de données externes qui requiert un login/password différent de root/NULL (c'est à dire tout le temps). C'est de créer un utilisateur dans votre PHPMYAdmin local avec les mêmes codes d'accès. Par exemple, si sur un serveur x, pour accéder à la BdD, le login est moi/mon motdepasse, vous créez ce même utilisateur en local. Comme ça, vos applis fonctionnent aussi bien en local que sur serveur (mais avec des BdD différentes).--Davidc 10 mars 2008 à 07:11 (CET)

    • j'ai dû rater une étape : sur le serveur du tecfa, j'ai importé des fichiers SQL. Mes bases de données apparaissent bien voir capture ecran, (j'ai d'ailleurs suivi tes conseils pour les identifier) mais ensuite je fais quoi avec tous les fichiers php générés par WebFormGenerator (je les mets où ?) ? Est-ce que tu veux dire que si je les mets dans mon dossier ex12 et que je change le blabla dans le fichier /db/db_connection.php, il va trouver la bdd ?
Si c'est ça, du coup à "$dbname", je mets quoi étant donné que j'ai 2 bdd dans une (revoir capture écran (exo11_.. et exo12_..)? en toute logique je mets le nom de la table (exo12_ressources) pour qu'il trouve la bonne,pas celui de la bdd non? J'ai juste ? Sylviane 11 mars 2008 à 17:01 (CET)
En gros, la meilleure stratégie est de faire exactement pareil: Nom de la base de donnée en local = la même que sur le serveur de TECFA, nom de l'utilisateur aussi. Sinon, il faut effectivement modifier le code ($dbname est le nom de la base de données qu'on vous a donné, genre "renard") - Daniel K. Schneider 12 mars 2008 à 10:19 (CET)
      • je viens d'essayer (je pose d'abord la question et j'essaye après, c'est tout moi ça ;-). J'ai une erreur : Warning: session_start() [function.session-start]: SAFE MODE Restriction in effect. The script whose uid/gid is 16030/16100 is not allowed to access /var/tmp/ owned by uid/gid 0/3 in /web/etu-maltt/nestor/renards0/stic/ex12/biblio_maltt/general/header.inc on line 2

J'ai regardé dans le fichier header.inc :

 session_start();
 include('usersession.php');
 include('db/db_connection.php');
 if (!isset($_SESSION['usr']))
 {
     $myData = new usersession();
 }
 else
 {
     $myData = unserialize($_SESSION['usr']);
 }

je ne vois pas bien ce qui ne va pas...Peut-être y-a-t-il aussi qq chose à changer dans le fichier db_connection.tpl ??

2.3 Et vous ?

Pourquoi je ne vois pas vos bases de données sur http://tecfa.unige.ch/admin/phpMyAdmin/ ça m'inquiète beaucoup, suis-je au bon endroit ? David, pour les tables (les nommer de manière à ce qu'on s'y retrouve), c'est une idée pleine de bon sens et je l'adopte. Sylviane 11 mars 2008 à 13:40 (CET)

c'est normal, les permissions ont dû être réglées pour que tu ne puisses changer que tes tables (moi non plus je ne vois pas les tiennes). Bon, c'est le moment de se remettre à EIA ;) --Bertrand Schneider 11 mars 2008 à 16:19 (CET)

ouais, c'est un peu une question de sécurité (et du hasard aussi). A priori vous permettre de voire vos bases de données respectives n'est pas dangereux, mais cela implique bcp de click/pas en plus à faire lors de la création de votre login.

2.4 suite..

euhh.. je viens de regarder le code de ton webGenerator.. En fait, tu peux pas utiliser de préfixe pour tes tables.. à moins de réécrire le WebGen... enfin, j'ai regardé vite fait, ça ne semble pas inclut (en général, ça l'est). Donc, retour à l'ancienne.

Non je penses pas. Ce générateur ne crée pas de tables. Il utilise juste celles que vous avez fait. Le prefixe n'a rien de spécial. - Daniel K. Schneider 12 mars 2008 à 10:03 (CET)

2.4.1 bug de session

Depuis janvier, le safe mode est de mise sur le serveur, faque tu dois trouver une solution tierce ;) (genre des cookies ou un BdD de session......)

En attendant, tu peux essayer de désactiver la commande :

// session_start();

je garantis pas le comportement de l'appli après.. à toi de nous dire.--Davidc 11 mars 2008 à 18:28 (CET)

Faudrait qu'on trouve une solution, pas sûr que tout marche sans les sessions. Enfin, en attendant enlever cette commande peut marcher .... mais effectivement à vérifier ! - Daniel K. Schneider 12 mars 2008 à 10:03 (CET)
    • ça marche nickel chrome. David tu m'as bien dépannée ! J'ai une toute dernière question : j'aimerais bien que quand on clique sur "update" les données déjà entrées restent sur la fiche puisqu'il s'agit juste d'une mise à jour. Savez-vous ce que je dois entrer comme commande Php ? Sylviane 12 mars 2008 à 01:12 (CET)

J'ai pas regardé précisément comment marche ton générateur php, mais tu dois probablement bidouiller ton fichier update.php de la manière suivante :

- t'as déjà l'id de ta news en variable get (donc $GET_['id'])

- après il faut que tu récupères tes infos par mysql (donc :

$reponse = mysql_query('SELECT * FROM ta_table WHERE id="'.$GET['id'].'"');
$tab = mysql_fetch_array($reponse);

- ensuite tu remplis tes champs avec les valeurs que t'as récupérées. Par exemple :


<input type="text" name="id" value="<?php echo $tab['id']?>" /> 
<input type="text" name="titre" value="<?php echo $tab['titre']?>" /> 
//etc...

mais faut contrôler le nom des champs de ta table mysql (moi j'ai déduis que c'était les mêmes que les champs de ton questionnaire). Redis-moi si tu comprends le trick :)

--Bertrand Schneider 12 mars 2008 à 07:56 (CET)

Je pense qu'il faut s'arrêter là et passer à autre chose. Effectivement on peut modifier le code, mais je conseille cela uniquement aux gens qui ont petite expérience en programmation - Daniel K. Schneider 12 mars 2008 à 10:03 (CET)
    • mais en fait j'ai trouvé ! j'avais juste oublié de changer le $selectSql et $updateSq dans le fichier update ! Maintenant c'est ok ça marche ! merci à tous pour votre aide précieuse et stimulante. Sylviane 12 mars 2008 à 11:56 (CET)

3 connection à la bd en localhost -- Denise Sutter Widmer 28 mars 2008 à 15:21 (CET)

Je n'arrive pas à me connecter depuis le générateur de php (Web Form Generator et PhP Generator for MySQL) à ma base de donnée que j'ai créée en local dans phyMyadmin. Mon serveur local est actif, ma base de donnée se trouve dans les fichiers MySQL de mon phyMyadmin local. Et lorsque je clique, dans Web Form Generator, sur "connect ", j'obtiens le message "can't connect to the database". Les données suivantes figurent dans la fenêtre de connection: sous hostname: localhost, sous username : root, et sous port: 3306. Faut-il modifier le port? Merci pour vos conseils.

3.1 Re: connection à la bd en localhost -- Daniel K. Schneider 28 mars 2008 à 18:21 (CET)

(1) Est-ce que la base de donnée tourne ? Donc pas juste le serveur web, mais aussi le serveur mysql ?

  • Le port par défaut est effectivement le 3306, mais peut-etre vous avez modifié cela.
  • Cela peut se voir facilement. Donc si votre mysql tourne, faut par exemple regarder le log file: mysql_error.log. Si vous avez installé WAMP server, c'est facile à trouver avec le petit menu
  • Sinon, comme d'hab, faut ouvrir une fenêtre DOS et taper ...
netstat -a -v
  • Il doit y avoir une connection TCP .....:3306 - Enfin cela ne dit pas quel service tourne
  • Troisième possibilité, regarder le fichier de configuration de mysql et de votre WAMP.

(2) Permissions ?

  • A priori si vous utilisez le même login (root) et mot de passe que pour phpadmin cela doit marcher ...
  • Enfin avant de lancer le générateur, d'abord tester avec phpmyadmin

3.1.1 Re: Re: connection à la bd en localhost -- Denise Sutter Widmer 28 mars 2008 à 22:00 (CET)

Merci pour les différentes pistes énoncées. Je les ai toutes passée en revue, le message "can't connect to the database" n'étant pas suffisamment clair. C'est finalement au niveau du mot de passe qu'il y avait un problème. Pour accéder à phpMyadmin, je n'en ai pas besoin (faudrait-il prévoir une configuration nécessitant un mot de passe ?) mais pour me connecter à la base de données dans MySQL c'était indispensable. Et celui que j'avais noté sur ma fiche était incomplet... J'ai heureusement retrouvé sa trace dans le fichier configu.inc.php (sous Wamp\apps\phpmyadmin2.10.1\config.inc.php). Et la connection à la base de données marche enfin ! Merci encore.

4 Installation sur un autre serveur que celui de Tecfa -- Contia 29 mai 2008 à 10:16 (CEST)

Comme je compte utiliser la petite application développer pour cette exercice, je l'ai installé sur mon hébergement personnel et je le développe depuis là. Est que cette accès vous suffit ou dois-je l'installer également sur le serveur TECFA ?

4.1 Re: Installation sur un autre serveur que celui de Tecfa -- Daniel K. Schneider 29 mai 2008 à 10:25 (CEST)

  • Vous pouvez la mettre ailleurs. Il faudrait qu'on puisse l'évaluer (au moins voir l'interfacer et afficher des données), donc nous donner par exemple un login pour nous si c'est protégé
  • Le rapport par contre doit se trouver chez nous

5 Interface utilisateurs -- Claire Peltier 24 février 2010 à 10:23 (CET)

Bonjour,

A quoi doit ressembler l'interface utilisateurs ? Pourriez-vous me montrer un exemple ? J'ai généré deux pages avec PHP Generator mais je ne sais pas comment continuer. Voici une capture de mon écran :

[2]

Merci.

Claire

5.1 Re: Interface utilisateurs -- Daniel K. Schneider 24 février 2010 à 16:37 (CET)

C'est presque bon:

- Il faut peut-etre ajouter qc. en bas de page (footer). - Ensuite, dans ce footer ou alors dans le header faire un lien vers la page à créer ci-dessous. - ajouter un page de type welcome.html et qui va avoir un lien sur ces deux pages. (donc une petite page d'accueil pour la personne qui sera censée utiliser ces 2 pages).

6 Afficher les pages générées par PHPgenerator sur le serveur Tecfa -- Claire Peltier 14 mars 2010 à 10:42 (CET)

Bonjour, Je tourne en rond depuis un moment...

J'ai associé une page d'accueil à l'interface de ma base de données créé avec PHPGenerator. En local, tout fonctionne bien et s'affiche bien.

Ensuite, j'ai transféré tous les fichiers de ma base sur le serveur de Tecfa, ainsi que ma page d'accueil html.

La page d'accueil est bien accessible depuis ma page travaux (je sais que c'est le rapport qui devrait se trouver là, mais je réglerai cette question plus tard) mais le lien vers ma base ne fonctionne pas. Il faudrait que je change le lien qui n'est plus le même qu'en local dans ma page html mais je ne sais pas vers quel fichier php pointer ce lien. Il y en a plusieurs !

Pouvez-vous m'aider ? Merci !

6.1 Re: Afficher les pages générées par PHPgenerator sur le serveur Tecfa -- Daniel K. Schneider 14 mars 2010 à 12:01 (CET)

Heu faire des liens cela devrait pas être trop compliqué.

  • copiez simplement tout le répertoire (TEL qu'il est sur votre ordi local). Résultat:
pixel/XXX/stic/ex12/appli
  • Ajoutez un fichier index.html et faites des liens vers les xxx.php (environ 3 fichiers, regardez simplement leur nom quand vous utilisez en local. Ensuite vous pouvez éditer chacun de ces fichiers pour faire un lien vers index.html. Alternativement, vous aussi utiliser le générateur pour insérer du code HTML dans le header de chaque fichier.

Sinon, le générateur permet aussi de générer des fichiers pour un site (c'est ce que vous avez peut-être fait). S'il génère des des liens absolues, faut lui dire d'en créer des bons, genre:

 http://tecfaetu.unige.ch/etu-maltt/pixel/ghebali4/stic/ex12/appli/

... pas eu le temps de regarder.

Finalement, bien entendu, il faut aussi transporter le fichier *.sql ! Ne pas oublier de changer les paramètres de connexion dans le fichier de config si vous avez juste copié votre répertoir local:

xxx/settings.php

6.1.1 Re: Re: Afficher les pages générées par PHPgenerator sur le serveur Tecfa -- Claire Peltier 14 mars 2010 à 17:12 (CET)

Merci pour cette réponse. Malheureusement, ça ne marche toujours PAS ! Ma base de données ne s'affiche pas. Il n'y a pas de message d'erreur non plus, juste un écran blanc...

Pouvez-vous jeter un oeil ?

http://tecfaetu.unige.ch/etu-maltt/pixel/ghebali4/stic/ex12/

Merci.

6.1.1.1 Re: Re: Re: Afficher les pages générées par PHPgenerator sur le serveur Tecfa -- Daniel K. Schneider 14 mars 2010 à 19:08 (CET)

ouais cette fois-ci un problème plus vicieux. PHPgenerator veut créer des fichiers et ne peut pas ...

su@tecfasun4:/web/etu-maltt/pixel/ghebali4/stic/ex12/ghebali4/ [Sun Mar 14 18:29:02 2010]
[error] [client 129.194.112.10] PHP Fatal error:  
Smarty error: unable to write to $compile_dir 
'/export/web/etu-maltt/pixel/ghebali4/stic/ex12/ghebali4/templates_c'. 
Be sure $compile_dir is writable by the web server user. in 
/ex su@tecfasun4:/web/etu-maltt/pixel/ghebali4/stic/ex12/ghebali4/

Donc j'ai dévérouillé votre répertoire ex12/templates_c

Vous pouvez faire cela normalement depuis un client SFTP. Donc mettre les permissions à w/w/w/ (tout le monde peut écrire).

Par contrer, pour trouver l'erreur fallait consulter le log file du système. Je peux vous montrer cela une autre fois :)

PS: Puis pas besoin de lien vers settings bien sûr

6.1.1.1.1 Re: Re: Re: Re: Afficher les pages générées par PHPgenerator sur le serveur Tecfa -- Daniel K. Schneider 14 mars 2010 à 19:11 (CET)
Replace this text with your reply
6.1.1.1.2 =Re: Re: Re: Re: Re: Afficher les pages générées par PHPgenerator sur le serveur Tecfa -- Claire Peltier 14 mars 2010 à 20:16 (CET)=
Je n'aurais pas trouvé toute seule. Merci beaucoup !

7 Débloquage de l'exercice 12 -- Sugarch0 4 avril 2010 à 17:41 (CEST)

Avant la semaine de présentiel, je n'ai pas calculé que cet exercice serait si difficile pour moi et n'ai donc pas pu le terminer par manque de temps. En arrivant à Tecfa, j'avais importé les fichiers générés par le php generator sur le serveur mais n'ai pas pu aller plus loin.

J'ai repris cet exercice et suis bloquée pour plusieurs raisons:

- je n'ai plus accès à mon phpmyadmin alors que je voudrais voir mon application en local.

Le phphmyadmin me dit: error#1045, Access denied for user 'root'@'localhost' (using password:NO). J'ai regardé les documents de référence de myadmin mais je n'y comprends rien.

J'ai vu dans les discussions qu'il faut aller voir dans le fichier config.inc.php. Voici ce qui s'y trouve:

<?php
/* Servers configuration */
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = ;
$cfg['Servers'][$i]['socket'] = ;
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = ;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
/* End of servers configuration */
$cfg['DefaultLang'] = 'en-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = ;
$cfg['SaveDir'] = ;
?>

- Avec l'aide de Stéphane pendant la semaine présentielle, j'ai importé les fichiers créés sur le php generator sur le serveur Tecfa,on a changé les paramètres de login dans le fichier settings.php, on a déverrouillé l'accès sur le fichier template_c et j'ai vu mon application sur son ordinateur. maintenant je n'arrive pas à reproduire cela. Dans la page de l'exercice, il est dit qu'il faut importer dans le fichier stic/ex12 le fichier .htaccess mais je ne le trouve pas dans les fichiers sur le lien et ne sais pas quoi faire avec ces fichiers.

- Je n'ai pas compris l'histoire de la page d'accueil et de liens depuis le header ou le footer comme Claire le décrit. J'ai vu mon application tourner sur le serveur Tecfa sans cela!?

merci de m'aider si vous avez un moment (ou alors je passe une fois voir Stéphane?)