Minimum twee karakters
Ook zie je wel eens op sites dat je twee karakters minimaal moet invullen, echter als je dan als zoekopdracht %% invult, je alsnog alles kan zien.
Het huidige script wat ik gebruik is het volgende:
http://www.plaatscode.be/38120/
if(strlen(POST) <= 2) { echo"2 karakters"; exit; }
Tikkes een % is ook een character, dus 2 keer een % returned bij strlen ook een true.
Misschien dat mysql_real_escape_string helpt, of anders % ook vervangen door zijn html entitie??
{
echo 'Zoektem tekort' ;
}
else
{
echo $zoekterm ;
}
Zo kun je controleren of je term alleen uit %% bestaat en als dat niet zo is kun je ze wel gewoon als wildcard gebruiken
Waar moet ik dat plaatsen dan?
Niet hier neem ik aan, dat werkt niet ($zoekterm veranderd in rowres):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?
if(($rowres)<=0) {
print '<P><B>Uw zoekactie heeft geen resultaten opgeleverd.</B></P>
<P>Ga terug en probeer het opnieuw met een minder nauwkeurige zoekterm.</P>';
}else{
if(($rowres)<=2) {
print 'Gevonden bedrijf:<BR /><BR />';
}else{
print 'Gevonden bedrijven:<BR /><BR />';
}
while($obj = mysql_fetch_object($result)) {
?>
if(($rowres)<=0) {
print '<P><B>Uw zoekactie heeft geen resultaten opgeleverd.</B></P>
<P>Ga terug en probeer het opnieuw met een minder nauwkeurige zoekterm.</P>';
}else{
if(($rowres)<=2) {
print 'Gevonden bedrijf:<BR /><BR />';
}else{
print 'Gevonden bedrijven:<BR /><BR />';
}
while($obj = mysql_fetch_object($result)) {
?>
Kan iemand hier nog even naar kijken voor me?
Waar gebruik je nou strlen? Het ging er toch om of de opgegeven zoekterm lang genoeg was?
Dat zal het opgegeven trefwoord moeten zijn? Dan krijg je dus iets als:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if(!strlen(str_replace('%','',$_POST['trefwoord']) >= 2){
// zonder de %% is het zoekwoord te kort
}
?>
if(!strlen(str_replace('%','',$_POST['trefwoord']) >= 2){
// zonder de %% is het zoekwoord te kort
}
?>
Maar als ik nu als zoekterm 1 letter doe bijvoorbeeld, dat kan wel. Ik wil echter dat hij minimaal 2 karakters moet zoeken.
EDIT:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}else{
?>
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}else{
?>
Dit stukje script heb ik even gepost. Het even zeker met mijn if/else opbouw te maken? Als ik nu namelijk ga zoeken op bijv Jansen.. dan zie ik de resultaten met daarboven alsnog de zin: "Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.". Komt dit door:
??
Gewijzigd op 01/01/1970 01:00:00 door Roy
Chilion
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?PHP
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
Else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
?>
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
Else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
?>
ofwel zet je daar die ELSE (zoals ik doe) ofwel doe je exit; onder je echo.
Die melding kreeg ik. Regel 98 is:
Code (php)
else { is de 98ste regel. Heb daaronder een { bij gezet, dan zie ik het formulier wel.. maar dan krijg ik bij iedere zoekopdracht de melding van een te kort trefwoord.
Gewijzigd op 01/01/1970 01:00:00 door Roy
Gisteravond nog mee loten klooien, maar het lukt me even niet. Kan iemand dit verhelpen? Dan werkt het volgens mij perfect.
die } voor je else, wat sluit die?
zo'n fout is meestal! kijk ook na op puntkomma's, aanhalingstekens, etc.
Edit:
indien je mijn scriptje gebruikte, dan heb je 2 maal else! dat kan uiteraard niet hé ;-)
Gewijzigd op 01/01/1970 01:00:00 door Tikkes C
Dit heb ik nu geprobeert, maar dat lukt dus niet. Overigens geeft hij in dit voorbeeld alleen de foutmelding als ik 4 karakters of meer zoek, dus de <=2 meost ik even anders doen. Echter geeft hij nu ook altijd de foutmelding weer, ook als hij de zoekresultaten laat zien en kan je gewoon op 1 letter zoeken...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?PHP
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
}else{
?>
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
}else{
?>
DAN KOMT HIER DE HTML TABEL
Iemand hier een oplossing voor?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?PHP
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
// door het ! gaat die niet door wanneer het aantal karakters <= 2, maar andersom.. :)
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
}else{
?>
if(!strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
// door het ! gaat die niet door wanneer het aantal karakters <= 2, maar andersom.. :)
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
}else{
?>
Hetzelfde probleem Robert
moet het niet zijn:
if(strlen(str_replace(blablabla)) <= 2)
dat ! weg...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?PHP
if(strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
exit;
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
?>
if(strlen(str_replace('%','',$_POST['trefwoord'])) <= 2)
{
echo 'Uw zoekactie bevat te weinig karakters. Dit moeten er minimaal twee zijn.';
exit;
}
else
{
while($obj = mysql_fetch_object($result)) {
echo 'Hier het reultaat';
}
echo '<br><a href="javascript:history.go(-1);">Klik hier voor een nieuwe zoekopdracht</a>';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Tikkes C
Trefwoord, plaats, provincie en rubriek.
Als ik nu op bijvoorbeeld Noord-Holland selecteer en geen trefwoord, geeft hij de melding dat ik niet genoeg karakters heb ingevuld. Hoe kan ik dit oplossen?
je had ook het commentaar moeten lezen, ik zei hetzelfde als Tikkes, alleen had je scriptje nog niet aangepast, dus de fout zat er nog wel in... :)