input met alleen spaties probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik heb staan een input veld met name="zoek"
PHP:
1
2
3
<?
$zoek = trim($zoek);
?>

Als ik nu slechts 1 of meerdere spaties invoer en een submit doe komt ie terug met alle records uit de database

en als ik een woord met daarchter of daarvoor spaties gebruik is het resultaat wat het wel moet zijn. Ik kom er niet uit. kan iemand me helpen?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Je zult moeten controleren of $zoek na gebruik leeg is

Verwijderd

Topicstarter
PHP:
1
2
3
<?
if (!empty($zoeken)){ echo "hallo!";}
?>

hij geeft hallo en alles daarna terug dus is niet leeg.

pardon ik had $zoek staan moet zijn $zoeken

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Op donderdag 30 augustus 2001 21:42 schreef pepweb het volgende:
PHP:
1
2
3
<?
if (!empty($zoeken)){ echo "hallo!";}
?>

hij geeft hallo en alles daarna terug dus is niet leeg.

pardon ik had $zoek staan moet zijn $zoeken
Hij is toch wel leeg? als ie hallo afdrukt??

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01 11:31
Op donderdag 30 augustus 2001 21:48 schreef ACM het volgende:

[..]

Hij is toch wel leeg? als ie hallo afdrukt??
dan is tie !empty()

edit: maar dit:
PHP:
1
2
3
4
<?
$foo = "          "
if ( empty($foo) ) echo "bluh";
?>

zou al bluh op moeten leveren omdat een string met alleen spaties als empty word beschouwd.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Op donderdag 30 augustus 2001 21:49 schreef PlayR het volgende:
dan is tie !empty()
Hehe ja...
Maar als ie de "lege string" als inhoud heeft ("") geeft empty() dan wel true ?

anders moet je checken op if($zoeken != "")

Verwijderd

Topicstarter
ben ik nou gek of? !empty is toch het zelfde als 'niet leeg'

dan druk hallo af, dus hij is niet leeg
PHP:
1
2
3
<?
if (isSet($zoeken)){ echo "hallo!";}
?>

geeft terug hallo bij invoer van één spatie

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Op donderdag 30 augustus 2001 21:53 schreef pepweb het volgende:
ben ik nou gek of? !empty is toch het zelfde als 'niet leeg'

dan druk hallo af, dus hij is niet leeg
PHP:
1
2
3
<?
if (isSet($zoeken)){ echo "hallo!";}
?>

geeft terug hallo bij invoer van één spatie
Er zit toch een spatie in?
Dan is ie toch "geset" ?

Verwijderd

Topicstarter
PHP:
1
2
3
4
<?
$foo = "    ";
if (empty($foo)) {echo "bluh";}
?>

dit geeft geen bluh terug dus wat Playr schreef klopt niet.

ok hij is geset dus, wat nu dan?

Je gaat er niet vanuit dat gebruikers het doen, maar als iemand één of meerdere spaties invoert komen dus alle results terug. Die trim functie werkt alleen zodra een woord met daarvoor of daarachter spaties staan, maar niet in dit geval, hoe kan ik dit dan afvangen?

Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Je moet de spaties uit de zoekterm slopen. Dat kun je met een regexp doen bijvoorbeeld.

Maar dan krijg je misschien wel problemen met zoektermen die uit meedere woorden bestaan.

Misschien zoiets?
PHP:
1
2
3
4
5
6
7
8
<?
$zoek=trim(ltrim($zoek));
if(!empty($zoek)) {
  // Zoek
} else {
  // Sla gebruiker
}
?>

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik denk dat ik het gewoon zo oplos dat als het aantal karakters minder is dan 5 geef dan gewoon een melding dat de invoer te weinig is
Pagina: 1