webForumDet fria alternativet

Hindra användare från att skriva hur som helst

PHP

5 svar · 422 visningar · startad av Iceyes

Medlem sedan apr. 200592 inlägg
Frågan#1
if ($nicklength > 50) {
		echo 'Nickname was too long.';
	}
	if ($messagelength > 200) {
		echo 'Message was too long.';
	}
	if (empty($nick) && empty($message)) {
echo 'Please fill in both fields.';

Om jag t.e.x bara trycker submit så skickar den ett medelande men skriver Please fill in both fields. osv
Hur ska jag göra så den hindrar användaren samtidigt som den forfarande varnar va dem gör för fel?

Medlem sedan feb. 200622 inlägg
#2

Hur menar du med hindrar användaren? Vad är det som ska hindras? Att ett mail skickas eller att något skrivs till databasen kanske? Då är det ju bara att du skippar det som är tänkt ska hända om felkontrollen inte går igenom. Enkelt kan man lösa det men en radda if-satser som söker efter möjliga fel och i slutet en else-sats som gör det du vill om alla felkontroller i if-satserna returnerat ok.

Medlem sedan apr. 200592 inlägg
#3

jonelo skrev:

Hur menar du med hindrar användaren? Vad är det som ska hindras? Att ett mail skickas eller att något skrivs till databasen kanske? Då är det ju bara att du skippar det som är tänkt ska hända om felkontrollen inte går igenom. Enkelt kan man lösa det men en radda if-satser som söker efter möjliga fel och i slutet en else-sats som gör det du vill om alla felkontroller i if-satserna returnerat ok.

Ja skriva till databasen skulle det då vara.
koden är från en typ gästbok jag har på sidan, och som jag nämde får jag den att varna med dessa medelanden om någonting inte går rätt till

if (empty($nick) && empty($message)) {
echo 'Please fill in both fields.';

om någon i vanligast form av spam inte skriver nånting utan bara trycker submit får dem medelandet Please fill in both fields men medelandet skickas ändå. Det ska liksom bara stå så som det gör men ingenting ska skickas.
hur skulle jag konfigurera den med if satser så den inte skickar nånting när det inte går igenom felkontrollerna?

Medlem sedan feb. 200622 inlägg
#4
if (empty($nick) && empty($message) {
	echo 'fel 1';
}
elseif (ett annat möjligt fel) {
	echo 'fel 2';
}
else {
	skriv till databasen här
}
Medlem sedan apr. 200592 inlägg
#5

jonelo skrev:

if (empty($nick) && empty($message) {
	echo 'fel 1';
}
elseif (ett annat möjligt fel) {
	echo 'fel 2';
}
else {
	skriv till databasen här
}

måste jag har möjliga alternaiv räcker inte 1?
vad ska ja skriva till databasen?

Medlem sedan mars 20034 471 inlägg
#6

Iceyes skrev:

måste jag har möjliga alternaiv räcker inte 1?
vad ska ja skriva till databasen?

Alltså, vad du anser är fel är ju naturligtvis upp till dig.

Men vill du att folk ska kunna skriva ett nick som är 100 tecken långt? Vill du tillåta ett meddelande av essälängd? Vad ska hända om det i texten står:

www.minskummaserver.com/virus.asp

ska det bli en länk eller inte? Om det står

<img src="www.minskummaserver.com/nakedWoman.jpg">

? Ska bilder visas? Är "_" ett tillåtet nick? Är "_" ett tillåtet meddelande? Du kanske vill ha en minilängd som är större än 1?

Om du inte kollar indata alls så kan ju folk krita in vad som helst!

Dessutom för att säkert stoppa tom indata är det bättre att skriva:

if (isSet($in) && !empty(trim($in)))

eftersom empty(" ") ==> False, så vitt jag begriper

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)