Aller au contenu

mathieu147

Webmaster Régulier
  • Compteur de contenus

    64
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre

À propos de mathieu147

  • Date de naissance 14/09/1985

Pour me contacter

  • Mon Site
    http://

Information du profil

  • Localisation
    Liège
  1. Ah oui, c'est vrai que la syntaxe de ce que je dois remplacer est finalement assez simple... Mais je me demandais quand-même s'il existait en PHP des équivalents des fonctions jQuery qui, il faut le dire, sont plutôt bien foutues.
  2. Normalement ça doit être le cas, mais je n'en suis pas certain. C'est du code qui sort de tinyMCE. Je ne l'ai pas encore surpirs à sortir du code invalide, mais il est vrai que je n'ai pas utilisé de fonctions très avancées de l'éditeur. C'est un mutualisé OVH, je ne sais pas si c'est installé, ça m'étonnerait... L'interface de mise à jour de mon site repose sur tinyMCE (éditeur WYSIWYG en Javascript), et je voudrais que la personne qui met à jour son site puisse inclure dans sa page des "blocs spéciaux", comme des galeries d'images, ou autre. Le problème est que faire un plugin tinyMCE qui inclut des galeries d'images peut être très compliqué, surtout si la galerie est changée par la suite. Donc j'ai fait un plugin tinyMCE qui insère des images (ça c'est facile) dont la classe est "gallery" et le alt est l'id de la galerie d'image. Ensuite à l'affichage, je voudrais remplacer la balise image par le bon contenu. En fait en résumé c'est pour pouvoir gérer facilement (avec une seule balise) dans tinyMCE des trucs plus complexes. Ben oui voilà... J'ai fait ça en Javascript pour pouvoir avancer un peu dans le reste de mon site qui avait besoin que ça soit fait, mais je me disais bien que c'était une solution de secours.
  3. mathieu147

    Parser du HTML en PHP

    Bonjour, J'ai dans la base de données de mon site une table avec mes pages. Elles ont un ID et (entre autres) un contenu HTML. Lorsque je génère une page, j'inclus ce morceau de HTML en même temps que l'entête, le menu, le pied de page, etc. Tout à fait classique. Mais, dans ce code HTML, j'ai certaines balises que je dois remplacer par d'autres. Pour l'instant, je fais ça en Javascript: j'ai un script jQuery qui récupère la balise à remplacer, et qui récupère (via xmlhttprequest) ce qu'il faut mettre à la place. Ça fonctionne très bien, mais je voudrais me passer de ce Javascript, j'aimerais faire tout ça directement en PHP. Voici le fonctionnement un peu plus détaillé: J'ai des balises IMG avec une certaine classe, je dois les récupérer toutes. Pour chaque balise IMG ainsi récupérée: récupérer l'attribut alt; Puis aller chercher avec une fonction ce qu'il faut mettre à la place, en fonction du alt; Enlever la balise IMG et la remplacer par ce qu'il faut. Super facile en javascript si le script replace.php me dit par quoi remplacer ma balise dont l'attribut est alt: $(document).ready(function() { $("img.replace").each(function() { var alt = $(this).attr("alt"); loadReplace($(this), alt); }); }); function loadReplace(el, alt) { var xhr = getXhr(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { replace = xhr.responseText; displayReplace(el, replace); } }; xhr.open("GET", replace.php + "&alt=" + alt, true); xhr.send(null); } function displayReplace(el, replace) { el.after(replace); el.remove(); } Existe-t-il en PHP des fonctions équivalentes qui permettent, à partir d'une chaîne de caractères représentant un fragment de HTML, de faire ce genre d'opérations? Merci d'avance!
  4. Bonsoir, Merci pour vos réponses. Effectivement, lorsque je dis que j'ai un client qui rédige ses pages en HTML, il ne s'agit que de la zone de texte de page, il n'a pas accès au menu généré automatiquement, ni à l'entête, au pied de page, et à la disposition générale. Par contre, si, il utilise des <div class="trucmachin"> et pas des balises <font> toutes nazes, il est très à cheval sur la présentation et veut un site vraiment le plus nickel possible. Mais je sais que c'est un peu une exception et que la plupart des gens voudront une interface un peu plus «user-friendly», je voulais savoir ce que vous utilisiez.
  5. Bonjour, Lorsque je crée un site vient toujours la question de la mise à jour. En effet, le propriétaire du site veut toujours pouvoir modifier lui-même le texte et la mise en page des pages de son site. Je ne sais jamais trop bien quelle solution utiliser, parce que chacune a des inconvénients. Sur un des sites que j'ai faits, le client voulait bien écrire toutes ses pages directement en HTML, parce que ça ne le dérangeait pas d'apprendre et qu'il voulait garder une grande souplesse en mise en page. Mais tout le monde n'est pas capable de comprendre le HTML. J'ai donc déjà utilisé aussi WikiRenderer (http://wikirenderer.berlios.de/) parce qu'il a une syntaxe super simple. Mais justement, la syntaxe est parfois trop simple et on n'a donc pas la souplesse du HTML. Et puis ça fait quand-même un langage à apprendre, et tout le monde ne veut/peut pas faire cet apprentissage (manque de temps, de capacité ou simplement ça les gonfle). La troisième solution est un éditeur WYSIWYG comme TimyMCE par exemple. Là c'est super parce que c'est assez simple à utiliser, mais déjà les images c'est pas toujours simple, mais surtout, ce n'est pas vraiment WYSIWYG, c'est plutôt WYSIPOMAPDCPUEDCQCPED (What You See Is Plus Ou Moins À Peu De Choses Près Un Exemple De Ce Que Ça Pourrait Éventuellement Donner) notamment à cause des feuilles de style qui peuvent changer des choses, ou de la largeur de la page qui n'est pas la même sur le site ou dans l'éditeur. Quand vous avez un client qui ne connaît pas le HTML (ce qui arrive souvent ) et qui veut mettre à jour ses pages lui-même (ce qui arrive souvent aussi), quelle solution utilisez-vous? Merci!
  6. Ouais, effectivement ça m'a l'air d'être ça. Je vais regarder, merci
  7. Bonjour, Je dois modifier le site web d'une entreprise dont une des activités est l'acheminement de personnes entre leur domicile et un aéroport. La fonctionnalité demandée par le client est la suivante: un visiteur doit pouvoir entrer l'adresse de son domicile, et choisir l'aéroport de destination afin d'avoir de connaître le prix du trajet. Je mets donc un champ où le visiteur peut mettre son adresse, et trois boutons pour choisir un des trois aéroports déservis par la compagnie. Il faudrait ensuite une fonction qui calcule la longueur (en kilomètres, en temps aussi si possible) du trajet à effectuer. Les explications que je trouve sur internet à ce sujet permettent d'afficher des cartes, des trajets, des marqueurs et plein de choses, mais moi je voudrais uniquement récupérer une valeur numérique sans nécessairement passer par l'affichage d'une carte (puisqu'à priori le visiteur s'en fout de voir une carte pour savoir où il habite). Pouvez-vous m'aider? Un grand merci d'avance!
  8. Bonne question Mais ça ne résoudrait pas mon problème, si??
  9. Bonjour, J'ai écrit un site de vente de livres en PHP, et j'utilise les sessions pour le login de mes utilisateurs: ils ont un panneau avec les ventes en cours (pour les modifier/supprimer etc.) accessible à eux seuls. Dans chaque page qui doit être réservée aux utilisateurs enregistrés, je vérifie si la variable de session 'pseudo' est initialisée: session_start(); if (!isset($_SESSION['pseudo'])) { header('Location: login.php5'); exit(); } Si ce n'est pas le cas, redirection vers le formulaire de login. Après login, je vérifie si le pseudo/mot de passe existe dans la BDD. Si c'est le cas, j'initialise la variable 'pseudo' et l'utilisateur est loggué, sinon, redirection vers une page qui dit que le mot de passe est mauvais: function verification($login, $pass) { //Vérification dans la BDD [...] } session_start(); if (isset($_POST['pseudo']) && isset($_POST['motdepasse'])) { $pseudo = $_POST['pseudo']; $motdepasse = $_POST['motdepasse']; if (verification($pseudo, $motdepasse)) { //On change d'identifiant de session session_regenerate_id(); //On sauvegarde le pseudo dans l'identifiant de session $_SESSION['pseudo'] = $pseudo; $page = "index.php5"; } else { $page = "authfail.php5"; } } [...] echo "<meta http-equiv=\"refresh\" content=\"0; url=$page\">"; [...] Ça fonctionne bien chez moi et chez la plupart de mes utilisateurs (différents OS et navigateurs), mais chez certain, il y a un problème: ils ne peuvent pas accéder aux pages privées: leur mot de passe est demandé à chaque fois, même quand il est bon. Quand il est faux, la page "mauvais mot de passe" est bien affichée. Qu'est-ce qui peut bien poser problème?? Pourquoi est-ce que ça fonctionne chez certains et pas chez d'autres? Il me semble que les sessions, c'est côté serveur, donc si ça marche pour un, ça devrait marcher pour tous, non? Un grand merci d'avance!
  10. Bonjour, et merci pour ta réponse! Mais, par hasard, tu ne connaîtrais pas un moyen de faire disparaître ça?
  11. Bonjour, Le site que je programme peut être visible ici. Pas de problème avec Firefox, mais avec IE j'ai différentes choses qui ne vont pas avec le menu, mais ce qui m'embête le plus, c'est la chose suivante: avec IE6, les éléments du menu se décalent à gauche ou à droite d'un pixel ou deux, et ne reviennent pas toujours en place, c'est assez étrange. Qu'est-ce qui se passe? Merci d'avance
  12. Et bien si je fais ça, ça me fait exactement la même erreur. Dans un sens, c'est logique: je n'ai pas d'index sur code_media dans ma table Media, et pourtant ma clé étrangère vers Media(code_media) est correcte dans ma table Exemplaire. Par contre, si je crée mes clés étrangères de cette façon: CREATE TABLE Emprunt( code_personne INT NOT NULL REFERENCES Membre(code_personne), code_film INT NOT NULL REFERENCES Film(code_film), code_exemplaire INT NOT NULL REFERENCES Exemplaire(code_exemplaire), date_emprunt DATE NOT NULL, date_restitution DATE, INDEX(code_personne, code_film, code_exemplaire), PRIMARY KEY(code_personne, code_film, code_exemplaire, date_emprunt) ) TYPE=InnoDB; ça marche! Mais je ne comprends pas pourquoi ça ne fonctionne pas de la première manière...
  13. mathieu147

    InnoDB et foreign keys

    Bonjour, Je tente de créer les tables de ma base de données avec le script SQL suivant: CREATE TABLE Personne( code_personne INT NOT NULL PRIMARY KEY, nom VARCHAR(50) NOT NULL, prenom VARCHAR(50) NOT NULL ) TYPE=InnoDB; CREATE TABLE Membre( code_personne INT NOT NULL PRIMARY KEY, adresse VARCHAR(100) NOT NULL, date_inscription DATE NOT NULL, INDEX(code_personne), FOREIGN KEY(code_personne) REFERENCES Personne(code_personne) ) TYPE=InnoDB; CREATE TABLE Film( code_film INT NOT NULL PRIMARY KEY, titre VARCHAR(50) NOT NULL, annee SMALLINT(6) NOT NULL, genre VARCHAR(25) NOT NULL, evaluation TINYINT(4) NOT NULL, code_personne INT NOT NULL, INDEX(code_personne), FOREIGN KEY(code_personne) REFERENCES Personne(code_personne) ) TYPE=InnoDB; CREATE TABLE Joue_dans( code_personne INT NOT NULL, code_film INT NOT NULL, PRIMARY KEY(code_personne, code_film), INDEX(code_personne, code_film), FOREIGN KEY(code_personne) REFERENCES Personne(code_personne), FOREIGN KEY(code_film) REFERENCES Film(code_film) ) TYPE=InnoDB; CREATE TABLE Media( code_media INT NOT NULL PRIMARY KEY, type VARCHAR(5) NOT NULL ) TYPE=InnoDB; CREATE TABLE Localisation( code_localisation INT NOT NULL PRIMARY KEY, description VARCHAR(50) NOT NULL ) TYPE=InnoDB; CREATE TABLE Exemplaire( code_film INT NOT NULL, code_exemplaire INT NOT NULL, code_media INT NOT NULL, code_localisation INT NOT NULL, PRIMARY KEY(code_film, code_exemplaire), INDEX(code_film, code_media, code_localisation), FOREIGN KEY(code_film) REFERENCES Film(code_film), FOREIGN KEY(code_media) REFERENCES Media(code_media), FOREIGN KEY(code_localisation) REFERENCES Localisation(code_localisation) ) TYPE=InnoDB; CREATE TABLE Emprunt( code_personne INT NOT NULL, code_film INT NOT NULL, code_exemplaire INT NOT NULL, date_emprunt DATE NOT NULL, date_restitution DATE, PRIMARY KEY(code_personne, code_film, code_exemplaire, date_emprunt), INDEX(code_personne, code_film, code_exemplaire), FOREIGN KEY(code_personne) REFERENCES Membre(code_personne), FOREIGN KEY(code_film) REFERENCES Film(code_film), FOREIGN KEY(code_exemplaire) REFERENCES Exemplaire(code_exemplaire) ) TYPE=InnoDB; Toutes les tables se créent correctement sauf la dernière (Emprunt). J'ai l'erreur suivante: C'est la dernière clé étrangère (code_exemplaire) qui pose problème, parce que si je retire les lignes FOREIGN KEY(code_exemplaire) REFERENCES Exemplaire(code_exemplaire) ça ne me met plus d'erreur (mais évidemment, j'ai perdu ma contrainte aussi, ce qui est ennuyeux ). Ça fait des heures que je cherche et que j'épluche la documentation de mySQL et les forums, mais je ne trouve pas. Merci d'avance de m'aider
  14. J'ai trouvé SELECT DISTINCT code_film, code_exemplaire FROM Exemplaire LEFT JOIN Emprunt USING (code_film, code_exemplaire) WHERE date_restitution!="0000-00-00" OR date_restitution IS NULL
  15. Bonjour, Dans le cadre d'une application de gestion de vidéothèque, j'ai une table Emprunt et une table Exemplaire: CREATE TABLE `Emprunt` ( `code_personne` int(11) NOT NULL, `code_film` int(11) NOT NULL, `code_exemplaire` int(11) NOT NULL, `date_emprunt` date NOT NULL, `date_restitution` date NOT NULL, PRIMARY KEY (`code_personne`,`code_film`,`code_exemplaire`,`date_emprunt`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Contenu de la table `Emprunt` -- INSERT INTO `Emprunt` (`code_personne`, `code_film`, `code_exemplaire`, `date_emprunt`, `date_restitution`) VALUES (1, 1, 1, '2007-04-20', '2007-04-21'), (1, 2, 1, '2007-04-21', '2007-04-23'), (2, 1, 1, '2007-04-21', '2007-04-22'), (3, 3, 1, '2007-04-22', '2007-04-25'), (4, 4, 1, '2007-04-23', '0000-00-00'), (5, 4, 3, '2007-04-24', '0000-00-00'); -- -------------------------------------------------------- -- -- Structure de la table `Exemplaire` -- CREATE TABLE `Exemplaire` ( `code_exemplaire` int(11) NOT NULL auto_increment, `code_film` int(11) NOT NULL, `code_media` int(11) NOT NULL, `code_localisation` int(11) NOT NULL, PRIMARY KEY (`code_exemplaire`,`code_film`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5; -- -- Contenu de la table `Exemplaire` -- INSERT INTO `Exemplaire` (`code_exemplaire`, `code_film`, `code_media`, `code_localisation`) VALUES (1, 1, 1, 1), (1, 2, 2, 2), (2, 1, 2, 3), (2, 2, 3, 4), (3, 1, 1, 1), (4, 1, 1, 2), (4, 2, 2, 3), (4, 3, 3, 4); J'aimerais déterminer le code_film et le code_exemplaire des exemplaires qui ne sont actuellement pas en location. Un exemplaire est en location si, dans la table Emprunt, il y a une ligne dont le code_exemplaire ET le code_film correspondent, et que la date de restitution est "0000-00-00"). J'ai pensé que je pourrais faire SELECT code_exemplaire, code_film FROM Exemplaire pour avoir les code_film et code_exemplaire de tous les exemplaires, puis SELECT code_exemplaire, code_film FROM Emprunt WHERE date_restitution!="0000-00-00" puis de faire la différence des deux, donc ceci; SELECT code_exemplaire, code_film FROM Exemplaire DIFF SELECT code_exemplaire, code_film FROM Emprunt WHERE date_restitution!="0000-00-00" sauf que j'ai une error in my SQL syntax... Apparemment on ne peut pas utiliser DIFF en MySQL? Comment puis-je faire? Merci d'avance!
×
×
  • Créer...