Balise latex et enregistrement MySQL

Discussions concernant tout ce qui n'entre pas dans le cadre des autres catégories.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
Olivier0229
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : samedi 07 octobre 2023, 17:45
Statut actuel : Enseignant

Balise latex et enregistrement MySQL

Message non lu par Olivier0229 »

Bonjour,
Je souhaite insérer du texte avec du code latex (donc avec des caractères antislash) dans une requête d'une base de donnée MySQL.
Or, le texte est bien enregistré, mais sans les caractères antislash. Par conséquent, l'affichage des formules sur le rendu d'une page web ne s'effectue pas correctement.
Après les recherches, je n'ai pas trouvé la solution au problème.
Merci de vos retours.
MB
Administrateur
Administrateur
Messages : 8071
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Balise latex et enregistrement MySQL

Message non lu par MB »

Bonjour, auriez-vous un exemple de requête à proposer ?
MB. (rejoignez pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
Olivier0229
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : samedi 07 octobre 2023, 17:45
Statut actuel : Enseignant

Re: Balise latex et enregistrement MySQL

Message non lu par Olivier0229 »

Bonjour,
Exemple de code Latex dans du php :

Code : Tout sélectionner

$variable_texte="\(\displaystyle f\left(x\right)\)"
Exemple de code php et SQL :

Code : Tout sélectionner

$requete="INSERT INTO base_de_donnees (texte) VALUES('".$variable_texte."')";
mysqli_query($cnx,$requete);
Merci.
MB
Administrateur
Administrateur
Messages : 8071
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Balise latex et enregistrement MySQL

Message non lu par MB »

Si j'ai bien compris, il ne s'agit pas d'une question concernant latex, mais plutôt du question concernant php, à savoir comment insérer un antislash dans une chaîne de caractères php. Avez-vous testé la syntaxe suivante ? (en remplaçant les " par des ')

Code : Tout sélectionner

$variable_texte='\(\displaystyle f\left(x\right)\)'
MB. (rejoignez pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
Olivier0229
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : samedi 07 octobre 2023, 17:45
Statut actuel : Enseignant

Re: Balise latex et enregistrement MySQL

Message non lu par Olivier0229 »

Oui, il ne s'agit pas d'un problème de syntaxe en latex mais plutôt de son enregistrement dans la base de données.
Le code en latex est mélangé à des phrases en français. Il s'agit par exemple d'un énoncé d'exercice de mathématiques ou de physique.
L'énoncé est proposé dans un formulaire en code html et php et récupéré en php via par exemple :

Code : Tout sélectionner

$variable_texte=$_POST['variable']
Comme le code en latex est mélangé à du texte en français, je ne peux pas mettre le code avec des apostrophes comme vous l'avez proposé.

Exemple avec ce forum : les internautes peuvent écrire du texte avec du code latex dans ce formulaire et l'enregistrement s'effectue sans soucis.

Merci.
MB
Administrateur
Administrateur
Messages : 8071
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Balise latex et enregistrement MySQL

Message non lu par MB »

Je déplace le sujet en tribune libre, étant donné qu'il ne concerne pas l'usage de latex.

Avez-vous regardé du côté des fonctions php addslashes ou mysqli.real-escape-string ?
MB. (rejoignez pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
Olivier0229
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : samedi 07 octobre 2023, 17:45
Statut actuel : Enseignant

Re: Balise latex et enregistrement MySQL

Message non lu par Olivier0229 »

Bonjour,

Oui, j'utilisais ces fonctions dans une class mais la nouvelle version de php ne les autorise plus.
Mais je vais tout de même réutiliser cette idée et essayer de contourner le problème.
Merci pour ce rappel.

Et pardon pour le post placé au mauvais endroit.
Bonne journée.
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1486
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Re: Balise latex et enregistrement MySQL

Message non lu par evariste_G »

Bonjour.
Ces fonctions PHP sont pourtant valables avec la version la plus récente de PHP. C'est donc assez étrange de lire que PHP ne les accepte plus.
Mathématiques, LaTeX et Python : https://www.mathweb.fr
Cours particuliers de maths par webcam: https://courspasquet.fr
Trouver/donner des cours particuliers: https://lesvraisprofs.mathweb.fr/
Olivier0229
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : samedi 07 octobre 2023, 17:45
Statut actuel : Enseignant

Re: Balise latex et enregistrement MySQL

Message non lu par Olivier0229 »

Ce ne sont pas les fonctions qui ne sont plus acceptées, mais la class que j'avais créée. Je me suis peut-être mal exprimé.
J'ai refais mon code, sans passer par cette class et en n'utilisant que la fonction mysqli.real_escape_string et cela fonctionne.
Je vous remercie pour votre aide.
Nate
Utilisateur débutant
Utilisateur débutant
Messages : 1
Inscription : mercredi 17 janvier 2024, 17:22
Statut actuel : Autre

Re: Balise latex et enregistrement MySQL

Message non lu par Nate »

Bonjour,

Avec la nouvelle version de PHP, il est vrai que certains ajustements sont nécessaires. C'est un peu comme essayer de résister à l'attrait d'un jeu auquel on est habitué dont on sait qu'il faut changer de stratégie, mais on est tenté de s'en tenir aux vieilles habitudes. Dans votre cas, contourner le problème nécessitera probablement une approche innovante, mais c'est souvent dans ces défis que l'on trouve les solutions les plus créatives.