ggaetan Posté(e) le 10 septembre 2014 Posté(e) le 10 septembre 2014 (modifié) Bonjour, Enseignant, j'utilise une petite application pour réaliser mon cahier de texte en ligne (http://www.etab.ac-caen.fr/bsauveur/cahier_de_texte/?page_id=7). Elle s'installait sans problème sur ma version précédente du dsm (j'étais encore en dsm3 je pense, j'avais du retard). Depuis le passage en dsm5, certaines tables ne se créent plus alors que d'autres oui. J'ai tenté de désinstaller phpmyadmin + mariadb en supprimant toutes les bases puis de recommencer à zéro, mais ça bloque toujours. J'ai testé l'installation avec xampp et elle tourne sans problème. Par exemple, la table cdt_emploi_du_temps ne se crée pas. Je mets ci-dessous le début du script php de l'install où la création de cdt_emploi_du_temps est demandé en 3ème position (je peux envoyer d'autres fichiers s'il faut). Les autres tables se créent bien (cdt_agenda, cdt_classe, cdt_fichiers_joints). Pourquoi donc cdt_emploi_du_temps ne passe-t-il pas ? (d'autant plus que si je fais à la main un copier/coller dans une requete sql sous phpmyadmin, elle se crée bien) Quelqu'un saurait-il pourquoi ça bug et me donner une solution ? Y a-t-il des paramètres à modifier sous phpmyadmin ? (Je n'ai que des connaissances très basiques sur tout ça) Merci d'avance de l'aide. GaËtan ------------- <?php //modifier pour chaque nouvelle version $indice_version='4944'; $libelle_version='Version 4.9.4.4 Standard'; //--------------------------------- require_once('../Connections/conn_cahier_de_texte.php'); session_start(); if (isset($_GET['creer_base'])){ $query = "CREATE DATABASE ". $database_conn_cahier_de_texte; $result = mysql_query($query,$conn_cahier_de_texte); } mysql_select_db($database_conn_cahier_de_texte, $conn_cahier_de_texte) OR die('Erreur de connexion à la base de données. Recommencez l'installation et vérifiez bien vos paramètres. '); $query = " CREATE TABLE `cdt_agenda` ( `ID_agenda` mediumint( unsigned NOT NULL auto_increment, `prof_ID` smallint(5) unsigned NOT NULL default '0', `classe_ID` smallint(5) unsigned NOT NULL default '0', `gic_ID` smallint(5) unsigned NOT NULL default '0', `matiere_ID` smallint(5) unsigned NOT NULL default '0', `groupe` varchar(255) NOT NULL default '', `semaine` varchar(255) NOT NULL default '', `jour_pointe` varchar(255) NOT NULL default '', `heure` tinyint(4) NOT NULL default '0', `duree` varchar(255) default NULL, `heure_debut` varchar(255) default NULL, `heure_fin` varchar(255) default NULL, `theme_activ` varchar(255) default NULL, `type_activ` varchar(255) default NULL, `couleur_activ` varchar(7) NOT NULL DEFAULT '#000066', `a_faire` text, `activite` text, `rq` text default NULL, `code_date` varchar(255) NOT NULL default '', `date_visa` date NOT NULL default '0000-00-00', `edt_modif` enum('O','N') NOT NULL DEFAULT 'N', `partage` enum('O','N') NOT NULL DEFAULT 'N', `emploi_ID` smallint(5) unsigned NOT NULL DEFAULT '0', PRIMARY KEY `ID_agenda` (`ID_agenda`) ) ENGINE=MyISAM AUTO_INCREMENT=1 "; $result = mysql_query($query,$conn_cahier_de_texte); $query = " CREATE TABLE `cdt_classe` ( `ID_classe` smallint(5) unsigned NOT NULL auto_increment, `nom_classe` varchar(255) NOT NULL default '', `passe_classe` varchar(32) default NULL, `code_classe` varchar(20) default NULL, PRIMARY KEY (`ID_classe`) ) ENGINE=MyISAM AUTO_INCREMENT=1 "; $result = mysql_query($query,$conn_cahier_de_texte); $query = " CREATE TABLE `cdt_emploi_du_temps` ( `ID_emploi` smallint(5) unsigned NOT NULL auto_increment, `prof_ID` smallint(5) unsigned NOT NULL default '0', `jour_semaine` enum('Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche') NOT NULL default 'Lundi', `semaine` enum('A','B','A et B') NOT NULL default 'A et B', `heure` tinyint(2) unsigned NOT NULL default '0', `classe_ID` smallint(5) unsigned default '0', `gic_ID` smallint(5) unsigned NOT NULL default '0', `groupe` varchar(255) default 'Classe entière', `matiere_ID` smallint(5) unsigned default NULL, `heure_debut` varchar(255) default NULL, `heure_fin` varchar(255) default NULL, `duree` varchar(255) default NULL, `edt_exist_debut` date NOT NULL default '0000-00-00', `edt_exist_fin` date NOT NULL default '2100-00-00', `couleur_cellule` varchar(7) DEFAULT '#CAFDBD', `couleur_police` varchar(7) DEFAULT '#000000', `ImportEDT` varchar(255) NOT NULL DEFAULT 'NON', `ID_Import` smallint(5) unsigned NOT NULL DEFAULT '0', `fusion_gic` enum('O','N') NOT NULL DEFAULT 'N', `verrou_remplace` smallint(5) NOT NULL DEFAULT '0', PRIMARY KEY (`ID_emploi`) ) ENGINE=MyISAM AUTO_INCREMENT=1 "; $result = mysql_query($query,$conn_cahier_de_texte); $query = " CREATE TABLE `cdt_fichiers_joints` ( `ID_fichiers` smallint(5) unsigned NOT NULL auto_increment, `agenda_ID` mediumint( unsigned NOT NULL default '0', `ind_position` tinyint(3) NOT NULL default '1', `nom_fichier` varchar(255) NOT NULL default '', `prof_ID` smallint(5) unsigned NOT NULL default '0', `type` enum('Cours','Travail') default 'Cours', `t_code_date` varchar(255) default NULL, PRIMARY KEY (`ID_fichiers`) ) ENGINE=MyISAM AUTO_INCREMENT=1 "; $result = mysql_query($query,$conn_cahier_de_texte); etc... (fichiers sur demande si besoin) Modifié le 10 septembre 2014 par ggaetan 0 Citer
glouglou44 Posté(e) le 10 septembre 2014 Posté(e) le 10 septembre 2014 Salut ggaetan, Le problème provient de l'accent de "Classe entière": `groupe` varchar(255) default 'Classe entière'. Si tu l'enlèves, ça fonctionne. Je ne suis pas parvenu a faire fonctionner ta requête avec accent même en forçant l'encodage de tout les côtés. S'il y a un spécialiste php par ici :-) 0 Citer
ggaetan Posté(e) le 10 septembre 2014 Auteur Posté(e) le 10 septembre 2014 Re- Merci pour avoir regardé. Avant de partir ce matin (je rentre juste), j'ai utilisé Notepad++ pour convertir le fichier php en utf8. Ensuite, la table se créée (J'avais lu l'info sur le forum, mais pas encore trouvé comment convertir). Par contre, j'ai encore d'autres problèmes dans l'application que je n'avais pas avant, peut être du à d'autres lignes non interprétées dans d'autres fichiers. A part les prendre un à un, y a-t-il un utilitaire (ou un module de notepad++) qui permettrait de faire les conversions en lot ? Merci d'avance. 0 Citer
glouglou44 Posté(e) le 10 septembre 2014 Posté(e) le 10 septembre 2014 Effectivement, j'avais "UTF-8 SANS BOM" et en "UTF-8" simple, ça fonctionne. En allant chercher un peu sous Google, le logiciel kaboom revient souvent mais je ne le connais pas et il faut voir qu'il y a une version gratuite 0 Citer
ggaetan Posté(e) le 10 septembre 2014 Auteur Posté(e) le 10 septembre 2014 Je viens d'y passer 2h30 et j'ai fini par utiliser un script sous Notepad++ qu'on retrouve souvent en demandant la conversion en UTF-8 sans Bom ou en UTF-8. Dans les 2 cas, cela génère d'autres problèmes (je suppose qu'il force certaines conversions qui n'ont pas lieu d'être en ne détectant pas correctement le format d'origine). Bref, je reste coincé. Je préférais donc nettement avant ce dsm5 car je n'avais alors aucun problème d'install avec les mêmes fichiers ! Si d'autres ont une idée ???? 0 Citer
glouglou44 Posté(e) le 10 septembre 2014 Posté(e) le 10 septembre 2014 (modifié) Que veux-tu dire par "un script sous Notepad++" ??? Tu peux passer par "Encoding"=>"Encode in UTF-8". C'est peut-être ce que tu as fait. Après c'est peut-être la version de php qui a changé mais pour générer autant d'erreurs.... Quels sont ces types d'erreur ??? Note: utilise UTF-8 simple, pas le BOM. Modifié le 10 septembre 2014 par glouglou44 0 Citer
ggaetan Posté(e) le 10 septembre 2014 Auteur Posté(e) le 10 septembre 2014 Script pour demander l'encodage en utf8 de TOUS les fichiers php du répertoires et des sous-répertoires. (oui, sans BOM j'ai mis). J'ai piqué un script trouvé sur le net en l'adaptant très légèrement (ce n'est pas de mon niveau de le créer). Pour les erreurs, je n'en sais rien : je ne les vois pas (juste que, par exemple, la table ne se crée pas) ou bien il y a un log d'erreurs quelque part ? 0 Citer
gaetan.cambier Posté(e) le 13 septembre 2014 Posté(e) le 13 septembre 2014 Et ceci : mysql_set_charset('utf8',$conn_cahier_de_texte); 0 Citer
ggaetan Posté(e) le 15 septembre 2014 Auteur Posté(e) le 15 septembre 2014 A taper dans phpmyadmin, c'est ça ? Je teste une autre install avec un nom de base différente dès que j'ai le temps (là, je ne veux pas écraser mon début d'année !!) 0 Citer
gaetan.cambier Posté(e) le 15 septembre 2014 Posté(e) le 15 septembre 2014 Moi je l'aurai ajouter au script PHP après l'ouverture de la db. 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.