Maison développement back-end tutoriel php php mysql 字符转义有关问题

php mysql 字符转义有关问题

Jun 13, 2016 pm 01:28 PM
name post select

php mysql 字符转义问题

后台处理
$name=addslashes($_POST['name']);//转义单引号

insert的时候,是不是带着转义符号一起存到数据库里?还是去掉转义符号存进去?

如果是带着转义符号存入到数据库,这就出现了一个小问题

如果我要查义name是不是重复,就需要对$name进行比较

依然进行转义 $name=addslashes($_POST['name']);

SELECT count(*) AS num FROM talbe WHERE name = $name

num显示的是0,也就是说找不到相同的,

打印sql语句为 SELECT count(*) AS num FROM talbe WHERE name = 'this/'s a apple'

num的值为零,我打开数据库发现,name这个字段的值是 this/'s a apple,这样肯定不能找到

如果将$name,再转义一次才能找到,$name的值就是 this///'s a apple 才能找到纪录

也就是说用两次addslashes函数

请问大家是如何处理这样的问题?如果要用两次不是很麻烦吗?


------解决方案--------------------
再就是如果Php.ini开启了magic_quotes_gpc,那么cookie啊,post,get啊,都会默认就addslashes过了,比如用户上传的是li'lei,那么你$_POST['name']得到就是li\'lei, 这样直接拼接到sql里:

select * from table where name='li\'lei'就行了,不需要addslashes了。
如果你给它addslashes了,那就变态了,因为\也会影响mysql解析命令,所以addslashes也会转移它,结果就真的变态了:

addslashes("li\'lei");将生成li\\\'lei, 拼成sql:

select * from table where name='li\\\'lei',入库后实际就是li\'lei,多了一个\。


再另外,stripslashes很少使用,因为一般只有php.ini默认开启了magic_quotes_gpc(get,post,cookie的意思)的情况下,如果我们希望使用到用户真正提交的值,比如li'lei,那么需要做stripslashes($_POST['name']); 而这里的name是被自动addslahes过的li\'lei, strip后就是li'lei了。
如果不strip,那么输出到页面上,用户看到的会是li\'lei。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Une brève analyse de la méthode POST en PHP avec des paramètres pour accéder à la page Une brève analyse de la méthode POST en PHP avec des paramètres pour accéder à la page Mar 23, 2023 am 09:15 AM

Pour les développeurs PHP, utiliser POST pour accéder à des pages avec des paramètres est une compétence de base. POST est une méthode d'envoi de données en HTTP. Il peut soumettre des données au serveur via des requêtes HTTP. La page de renvoi traite et saute la page côté serveur. Dans le développement réel, nous devons souvent utiliser POST avec des paramètres pour accéder aux pages afin d'atteindre certains objectifs fonctionnels.

Comment déterminer si un message a été soumis en PHP Comment déterminer si un message a été soumis en PHP Mar 21, 2023 pm 07:12 PM

PHP est un langage de script côté serveur largement utilisé qui peut être utilisé pour créer des applications Web interactives et dynamiques. Lors du développement d'applications PHP, nous devons généralement soumettre les données saisies par l'utilisateur au serveur pour traitement via des formulaires. Cependant, nous devons parfois déterminer si les données du formulaire ont été soumises en PHP. Cet article explique comment effectuer une telle détermination.

Méthode de traitement asynchrone de la programmation simultanée Select Channels Go à l'aide de Golang Méthode de traitement asynchrone de la programmation simultanée Select Channels Go à l'aide de Golang Sep 28, 2023 pm 05:27 PM

Méthode de traitement asynchrone de la programmation simultanée SelectChannelsGo à l'aide de golang Introduction : La programmation simultanée est un domaine important dans le développement de logiciels modernes, qui peut améliorer efficacement les performances et la réactivité des applications. Dans le langage Go, la programmation simultanée peut être implémentée de manière simple et efficace à l'aide des instructions Channels et Select. Cet article explique comment utiliser Golang pour les méthodes de traitement asynchrone de la programmation simultanée SelectChannelsGo et fournit des informations spécifiques.

Comment utiliser la publication des requêtes Python Comment utiliser la publication des requêtes Python Apr 29, 2023 pm 04:52 PM

Python simule le navigateur envoyant des demandes de publication au format importrequests request.postrequest.post(url,data,json,kwargs)#format de demande de publication request.get(url,params,kwargs)#Par rapport à la demande d'obtention, les paramètres d'envoi de demande de publication sont divisés en Le paramètre de données Forms ( x-www-form-urlencoded) json (application/json) prend en charge le format de dictionnaire et le format de chaîne. Le format de dictionnaire utilise la méthode json.dumps() pour convertir les données en chaîne au format json légal.

Comment masquer l'élément select dans jquery Comment masquer l'élément select dans jquery Aug 15, 2023 pm 01:56 PM

Comment masquer l'élément select dans jquery : 1. méthode hide(), introduisez la bibliothèque jQuery dans la page HTML, vous pouvez utiliser différents sélecteurs pour masquer l'élément select, le sélecteur ID remplace le selectId par l'ID de l'élément select que vous utilisez réellement ; 2. la méthode css(), utilisez le sélecteur d'ID pour sélectionner l'élément de sélection qui doit être masqué, utilisez la méthode css() pour définir l'attribut d'affichage sur aucun et remplacez selectId par l'ID de l'élément de sélection.

Comment Java lance-t-il une requête http, appelle-t-il la publication et obtient-il les interfaces ? Comment Java lance-t-il une requête http, appelle-t-il la publication et obtient-il les interfaces ? May 16, 2023 pm 07:53 PM

1. Java appelle l'interface de publication 1. Utilisez URLConnection ou HttpURLConnection fourni avec Java. Il n'est pas nécessaire de télécharger d'autres packages jar. Si le code de réponse de l'interface est modifié par le serveur, le message de retour ne peut pas être reçu. ne peut être reçu que lorsque le code de réponse est correct pour renvoyer publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt.

Comment résoudre le problème du proxy inverse NGINX qui renvoie 405 pour la requête POST de la page HTML Comment résoudre le problème du proxy inverse NGINX qui renvoie 405 pour la requête POST de la page HTML May 22, 2023 pm 07:49 PM

Nom du serveur :server{listen80;listen443ssl;server_namenirvana.test-a.gogen;ssl_certificate/etc/nginx/ssl/nirvana.test-a.gogen.crt;ssl_certificate_key/etc/nginx/ssl/nirvana.test-a.gogen .key;proxy_connect_timeout600;proxy_read_timeout600;proxy_send_timeout600;c

Exemple de code PHP : Comment utiliser POST pour transmettre des paramètres et implémenter des sauts de page Exemple de code PHP : Comment utiliser POST pour transmettre des paramètres et implémenter des sauts de page Mar 07, 2024 pm 01:45 PM

Titre : Exemple de code PHP : Comment utiliser POST pour transmettre des paramètres et implémenter des sauts de page. Dans le développement Web, cela implique souvent la nécessité de transmettre des paramètres via POST et de les traiter côté serveur pour implémenter des sauts de page. PHP, en tant que langage de script côté serveur populaire, fournit une multitude de fonctions et de syntaxes pour atteindre cet objectif. Ce qui suit présentera comment utiliser PHP pour implémenter cette fonction à travers un exemple pratique. Tout d'abord, nous devons préparer deux pages, une pour recevoir les requêtes POST et les paramètres de processus.

See all articles