[PHP] simpel maar raar probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
hi ik ben een search aan maken voor een mysql database, alleen uit dit simpele probleem kom ik niet. Namelijk:

PHP:
1
2
3
4
5
6
if ($zoek)
{
 if ((strlen($zoek) < 3))
  {
   echo "Je invoer is leeg of te kort(min. van 3 karakter)!";
  }


Bij een invoer van niks geeft hij de echo niet! Het werkt ook niet met isset en empty. Ik heb php versie 4.2.2 iemand een idee wat dit kan zijn? Ik kom er echt niet meer uit.
Als ik a, bb, 1 of 2 invoer krijg ik wel de echo, dus een invoer van < 3.

[ Voor 11% gewijzigd door Y0ur1 op 25-01-2004 17:06 ]


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
if ($zoek) evalueert tot false als het null of leeg is. Je bent verder een acoolade-sluiten vergeten.
Probeer
PHP:
1
2
3
if (isset($zoek) && !isempty($zoek) && strlen($zoek) > 2) {
 //code
}

[ Voor 34% gewijzigd door Skaah op 25-01-2004 17:08 . Reden: typo + suggestie ]


Acties:
  • 0 Henk 'm!

  • oVRoM
  • Registratie: Juli 2000
  • Niet online
Is het niet zo dat bij een invoer van niets de if ($zoek) failed?

[ Voor 0% gewijzigd door oVRoM op 25-01-2004 17:07 . Reden: Te laat :) ]


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
oVRoM schreef op 25 januari 2004 @ 17:07:
Is het niet zo dat bij een invoer van niets de if ($zoek) failed?
Ja ik zie het nu zelf ook *schaam*. bedankt iig :)

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Skaah schreef op 25 januari 2004 @ 17:06:
if ($zoek) evalueert tot false als het null of leeg is. Je bent verder een acoolade-sluiten vergeten.
Probeer
PHP:
1
2
3
if (isset($zoek) && !isempty($zoek) && strlen($zoek) > 2) {
 //code
}
maar het probleem is dat hij dit al bij het laden van de pagina doet. En dan geeft hij meteen bij het betreden van de pagina dat het te kort is. Omdat hij bij hetladen van de pagina natuurlijk nog niet is ingevuld

[ Voor 13% gewijzigd door Y0ur1 op 25-01-2004 17:32 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Y0ur1 schreef op 25 januari 2004 @ 17:30:
[...]


maar het probleem is dat hij dit al bij het laden van de pagina doet. En dan geeft hij meteen bij het betreden van de pagina dat het te kort is. Omdat hij bij hetladen van de pagina natuurlijk nog niet is ingevuld
mischien eerst kijken of het form is gepost?

PHP:
1
2
3
4
5
6
7
8
9
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if ($_POST['zoek'])
    {
      // etc..
    }
}
?>

[ Voor 12% gewijzigd door Verwijderd op 25-01-2004 17:43 ]


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Y0ur1 schreef op 25 januari 2004 @ 17:30:
[...]


maar het probleem is dat hij dit al bij het laden van de pagina doet. En dan geeft hij meteen bij het betreden van de pagina dat het te kort is. Omdat hij bij hetladen van de pagina natuurlijk nog niet is ingevuld
Lijkt me ster, $zoek is dan helemaal nog niet aangemaakt nl ;)

*PS het is "empty" niet "isempty" :)

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Ik heb het al opgelost door een hidden value in mijn form te doen. Het ziet er nu zo uit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<form action="index.php" method="post">
<input type="text" name="zoek">
<input type="submit">
<input type="hidden" name="action" value="woei">
</form>

<?

if ($action == "woei")
{
 if ((isset($zoek)) && (!empty($zoek)) && (strlen($zoek) > 2))
  {
   include('dbcon.inc.php');
   mysql_select_db('bla');
   $query =
   "
   SELECT artiesten.artiest_naam, albums.album_naam
   FROM artiesten
   INNER JOIN albums ON artiesten.artiest_ID = albums.artiest_ID
   AND artiesten.artiest_naam like '%$zoek%'
   ";
   $query1 = mysql_query($query);
   
   while ($row = mysql_fetch_array($query1))
   {
    echo $row['artiest_naam'] .' - ';
    echo $row['album_naam'].'<br>';
   }
  }

else
 { echo "Je invoer is leeg of te klein!"; }
}
?>

Acties:
  • 0 Henk 'm!

  • IcE_364
  • Registratie: Februari 2002
  • Laatst online: 20-09 12:07
Je kan ook je input een name meegeven, dan is die hidden niet meer nodig

PHP:
1
2
3
4
5
6
<input type="submit"  name="submit">

<?
if(IsSet($submit)) {
...
?>

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
IcE_364 schreef op 25 januari 2004 @ 17:58:
Je kan ook je input een name meegeven, dan is die hidden niet meer nodig

PHP:
1
2
3
4
5
6
<input type="submit"  name="submit">

<?
if(IsSet($submit)) {
...
?>
ach dat kan ook ja :)

Acties:
  • 0 Henk 'm!

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 15:26
Y0ur1 schreef op 25 januari 2004 @ 18:09:
[...]


ach dat kan ook ja :)
Zou ik niet doen, die werkt namelijk niet in elke browser op het moment dat een formulier gepost word met een enter ipv op de submit knop te klikken.

Acties:
  • 0 Henk 'm!

  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 14:15

BrZ

Dit blijft eigenlijk de enige goede manier om het te doen. De anderen werken wel, maar zijn alles behalve netjes.
Verwijderd schreef op 25 januari 2004 @ 17:43:
[...]
PHP:
1
2
3
4
5
6
7
8
9
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if ($_POST['zoek'])
    {
      // etc..
    }
}
?>

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
BrZ schreef op 25 januari 2004 @ 18:22:
Dit blijft eigenlijk de enige goede manier om het te doen. De anderen werken wel, maar zijn alles behalve netjes.

[...]
En als je nou meerdere formulieren op je pagina gebruikt?

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Y0ur1 schreef op 25 januari 2004 @ 18:34:
[...]


En als je nou meerdere formulieren op je pagina gebruikt?
Dan neem je iets op om elk formulier uniek te identificeren; wat vaak een hidden input zal zijn.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if (isset($_POST['actie']) && !empty($_POST['actie']))
    {
switch ($_POST['actie']){
 case 'Form 1':

 case 'Form 2':
enzo..
}
    }
}
?>
:)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Nou het werkt ook zo prima dus ik laat het zo.

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
PrisonerOfPain schreef op 25 januari 2004 @ 17:44:
[...]

Lijkt me ster, $zoek is dan helemaal nog niet aangemaakt nl ;)

*PS het is "empty" niet "isempty" :)
* gaat zich schamen :P

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Y0ur1 schreef op 25 januari 2004 @ 18:43:
Nou het werkt ook zo prima dus ik laat het zo.
waarom tijd in de toekomst besparen toch ;)
want als je nu je script niet aanpast ga je veel werk krijgen om het op een andere server (of andere php versie/php.ini) werkend te krijgen.
Pagina: 1