Heim Backend-Entwicklung PHP-Tutorial 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。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Eine kurze Analyse der POST-Methode in PHP mit Parametern zum Springen zur Seite Eine kurze Analyse der POST-Methode in PHP mit Parametern zum Springen zur Seite Mar 23, 2023 am 09:15 AM

Für PHP-Entwickler ist die Verwendung von POST zum Springen zu Seiten mit Parametern eine grundlegende Fähigkeit. POST ist eine Methode zum Senden von Daten in HTTP. Sie kann Daten über HTTP-Anfragen an den Server senden und die Seite auf der Serverseite überspringen. In der tatsächlichen Entwicklung müssen wir häufig POST mit Parametern verwenden, um zu Seiten zu springen und bestimmte funktionale Zwecke zu erreichen.

So ermitteln Sie, ob ein Beitrag in PHP übermittelt wurde So ermitteln Sie, ob ein Beitrag in PHP übermittelt wurde Mar 21, 2023 pm 07:12 PM

PHP ist eine weit verbreitete serverseitige Skriptsprache, mit der interaktive und dynamische Webanwendungen erstellt werden können. Bei der Entwicklung von PHP-Anwendungen müssen wir normalerweise Benutzereingabedaten zur Verarbeitung über Formulare an den Server übermitteln. Manchmal müssen wir jedoch feststellen, ob Formulardaten in PHP übermittelt wurden. In diesem Artikel erfahren Sie, wie Sie eine solche Feststellung treffen.

Asynchrone Verarbeitungsmethode von Select Channels Go zur gleichzeitigen Programmierung mit Golang Asynchrone Verarbeitungsmethode von Select Channels Go zur gleichzeitigen Programmierung mit Golang Sep 28, 2023 pm 05:27 PM

Asynchrone Verarbeitungsmethode der gleichzeitigen Programmierung von SelectChannelsGo mit Golang Einführung: Die gleichzeitige Programmierung ist ein wichtiger Bereich in der modernen Softwareentwicklung, der die Leistung und Reaktionsfähigkeit von Anwendungen effektiv verbessern kann. In der Go-Sprache kann die gleichzeitige Programmierung mithilfe von Channels- und Select-Anweisungen einfach und effizient implementiert werden. In diesem Artikel wird die Verwendung von Golang für die asynchrone Verarbeitungsmethode der gleichzeitigen Programmierung von SelectChannelsGo vorgestellt und spezifische Informationen bereitgestellt

Beitrag zur Verwendung von Python-Anfragen Beitrag zur Verwendung von Python-Anfragen Apr 29, 2023 pm 04:52 PM

Python simuliert den Browser, der Post-Anfragen im Importrequests-Format sendet request.postrequest.post(url,data,json,kwargs)#Post-Anforderungsformat request.get(url,params,kwargs)#Im Vergleich zur Get-Anfrage sind die Parameter für das Senden von Post-Anfragen unterteilt Der Datenparameter „forms“ (x-www-form-urlencoded) unterstützt das Wörterbuchformat und das Zeichenfolgenformat. Das Wörterbuchformat verwendet die Methode json.dumps(), um die Daten in eine Zeichenfolge im legalen JSON-Format zu konvertieren

So verbergen Sie das ausgewählte Element in jquery So verbergen Sie das ausgewählte Element in jquery Aug 15, 2023 pm 01:56 PM

So verbergen Sie das Select-Element in JQuery: 1. Methode hide (), fügen Sie die jQuery-Bibliothek in die HTML-Seite ein, Sie können verschiedene Selektoren verwenden, um das Select-Element auszublenden, der ID-Selektor ersetzt die SelectId durch die ID des von Ihnen ausgewählten Elements tatsächlich verwenden; 2. css()-Methode, verwenden Sie den ID-Selektor, um das ausgewählte Element auszuwählen, das ausgeblendet werden muss, verwenden Sie die css()-Methode, um das Anzeigeattribut auf „none“ zu setzen, und ersetzen Sie selectId durch die ID des ausgewählten Elements.

Wie initiiert Java eine http-Anfrage, ruft den Beitrag auf und erhält Schnittstellen? Wie initiiert Java eine http-Anfrage, ruft den Beitrag auf und erhält Schnittstellen? May 16, 2023 pm 07:53 PM

1. Java ruft die Post-Schnittstelle auf. 1. Verwenden Sie URLConnection oder HttpURLConnection. Es ist nicht erforderlich, andere JAR-Pakete herunterzuladen. Rufen Sie URLConnection auf kann nur empfangen werden, wenn der Antwortcode korrekt ist, um publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt zurückzugeben

So lösen Sie das Problem, dass der NGINX-Reverse-Proxy bei einer POST-Anfrage einer HTML-Seite 405 zurückgibt So lösen Sie das Problem, dass der NGINX-Reverse-Proxy bei einer POST-Anfrage einer HTML-Seite 405 zurückgibt May 22, 2023 pm 07:49 PM

实现如下: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

PHP-Codebeispiel: So verwenden Sie POST zum Übergeben von Parametern und zum Implementieren von Seitensprüngen PHP-Codebeispiel: So verwenden Sie POST zum Übergeben von Parametern und zum Implementieren von Seitensprüngen Mar 07, 2024 pm 01:45 PM

Titel: PHP-Codebeispiel: So verwenden Sie POST zur Übergabe von Parametern und zur Implementierung von Seitensprüngen. In der Webentwicklung ist es häufig erforderlich, Parameter über POST zu übergeben und sie auf der Serverseite zu verarbeiten, um Seitensprünge zu implementieren. PHP als beliebte serverseitige Skriptsprache bietet eine Fülle von Funktionen und Syntax, um diesen Zweck zu erreichen. Im Folgenden wird anhand eines praktischen Beispiels erläutert, wie PHP zum Implementieren dieser Funktion verwendet wird. Zuerst müssen wir zwei Seiten vorbereiten, eine für den Empfang von POST-Anfragen und Prozessparametern

See all articles