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

De EduTech Wiki
Aller à la navigation Aller à la recherche

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)Répondre[répondre]

    • 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)Répondre[répondre]
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)Répondre[répondre]

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)Répondre[répondre]

    • 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

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)Répondre[répondre]

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)Répondre[répondre]

    • 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)Répondre[répondre]
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)Répondre[répondre]
      • 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 ??

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)Répondre[répondre]

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)Répondre[répondre]

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.

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)Répondre[répondre]

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)Répondre[répondre]

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)Répondre[répondre]
    • ç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)Répondre[répondre]

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)Répondre[répondre]

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)Répondre[répondre]
    • 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)Répondre[répondre]

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.

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

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.

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

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