TRIM -funktio

Jos mulla on
if (trim($_POST['nimi'] ==)
{
toiminta jatkuu
}
else
{
jotakin muta
}

niin miten saan tuon trim -funktion käänteiseksi?
eli jos nimi EI ole tyhjä, niin toiminta jatkuu?
15345
Äänestä

Muut lukivat myös

Vastaukset 15

Vanhimmat

kuuluu olla (huomaa lainausmerkit):

if (trim($_POST['nimi']) == "")
{
toiminta jatkuu jos nimi on tyhjä
}
else
{
jotakin muuta toimintaa
}

Näin (vaihdat toiminnot eri paikkaan):

if (trim($_POST['nimi']) == "")
{
toiminta jatkuu jos nimi _on_ tyhjä
}
else
{
toiminta jatkuu jos nimi _ei_ ole tyhjä
}

Tai sitten (erisuurikuin !=):
if(trim($_POST['nimi']) != "")

Äänestä
  • ei vieläkään toimi niin kuin haluaisin...

    eli tein seuraavasti:
    if (trim($_POST['nimi']) != "")
    {
    toiminta jatkuu, jos nimi _ei_ ole tyhjä
    }
    else
    {
    nimi on tyhjä
    tulostetaan virheilmoitus
    }

    mutta tuo jatkoi vaan toimintaa vaikka nimi -kentät jätettiin tyhjäksi..

    Äänestä

  • tiiiikeri kirjoitti:

    ei vieläkään toimi niin kuin haluaisin...

    eli tein seuraavasti:
    if (trim($_POST['nimi']) != "")
    {
    toiminta jatkuu, jos nimi _ei_ ole tyhjä
    }
    else
    {
    nimi on tyhjä
    tulostetaan virheilmoitus
    }

    mutta tuo jatkoi vaan toimintaa vaikka nimi -kentät jätettiin tyhjäksi..

    nimi -kentät? Tuossa viitataan vain yhteen.

    Äänestä

  • tiiiikeri kirjoitti:

    ei vieläkään toimi niin kuin haluaisin...

    eli tein seuraavasti:
    if (trim($_POST['nimi']) != "")
    {
    toiminta jatkuu, jos nimi _ei_ ole tyhjä
    }
    else
    {
    nimi on tyhjä
    tulostetaan virheilmoitus
    }

    mutta tuo jatkoi vaan toimintaa vaikka nimi -kentät jätettiin tyhjäksi..

    eli tuohan oli esimerkki, todellisuudessa tuo jatkuu:

    if (trim($_POST['nimi']) != "" OR trim($_POST['snimi']) != "")
    {
    toiminta jatkuu, jos nimi _ei_ ole tyhjä
    }
    else
    {
    nimi on tyhjä
    tulostetaan virheilmoitus
    }

    Äänestä

  • pdpcodec kirjoitti:

    nimi -kentät? Tuossa viitataan vain yhteen.

    käyttämällä strlen -funktiota.
    Mutta ihmetyttää kyllä, miksei tuo trim() toimi...

    Äänestä

if (!empty($_POST['nimi'])).... siis nimi ei ole tyhjä, ei tuossa mitään trimmeilyä kannata käyttää.

Äänestä
  • if(!empty($_POST['nimi']) OR !empty($_POST['snimi']))
    {
    tee jotain
    }
    ei siis toimi vaan tekee vaikka olisi tyhjä..

    Sen sijaan strlen -funktio toimii esim. seuraavasti:

    if (strlen($_POST['nimi']) >= 2 OR strlen($_POST['snimi']) >= 2)

    Äänestä

  • tiiiikeri kirjoitti:

    if(!empty($_POST['nimi']) OR !empty($_POST['snimi']))
    {
    tee jotain
    }
    ei siis toimi vaan tekee vaikka olisi tyhjä..

    Sen sijaan strlen -funktio toimii esim. seuraavasti:

    if (strlen($_POST['nimi']) >= 2 OR strlen($_POST['snimi']) >= 2)

    Kyllä se toimii mutta sinulla on jotain häikkää.

    "Sen sijaan strlen -funktio toimii esim. seuraavasti:

    if (strlen($_POST['nimi']) >= 2 OR strlen($_POST['snimi']) >= 2)"

    Aivan tuossa pitää olla nimi ja snimi kentässä vähintään 3 merkkiä. Ja kaks kirjainta sisältävä EI ole tyhjä, siksi esimerkkini ei toiminut.

    empty = 0 ja null

    ja jos tekstilootaan ei mitään laiteta niin se on null. Jolloin koodini toki toimii.

    Ja muista, että 2 merkkiset etu ja sukunimet laillisia, joten suosittelen tuota emptyä.

    Äänestä

  • ef3243 kirjoitti:

    Kyllä se toimii mutta sinulla on jotain häikkää.

    "Sen sijaan strlen -funktio toimii esim. seuraavasti:

    if (strlen($_POST['nimi']) >= 2 OR strlen($_POST['snimi']) >= 2)"

    Aivan tuossa pitää olla nimi ja snimi kentässä vähintään 3 merkkiä. Ja kaks kirjainta sisältävä EI ole tyhjä, siksi esimerkkini ei toiminut.

    empty = 0 ja null

    ja jos tekstilootaan ei mitään laiteta niin se on null. Jolloin koodini toki toimii.

    Ja muista, että 2 merkkiset etu ja sukunimet laillisia, joten suosittelen tuota emptyä.

    en hae siis tuollaista että kirjaimia enemmän kuin 2, vaan että jos kenttä ei ole tyhjä toiminta jatkuu muutoin virheilmoitus.

    emptyllä siis kokeilin, jätin kenttiä tyhjäksi mutta toiminta jatkui. jos sen sijaan kokeilen strlen -funktiolla esim. että merkkejä pitää olla vähintään 2, toiminta ei jatku jos on 1 merkki tai 0.

    Äänestä

  • tiiiikeri kirjoitti:

    en hae siis tuollaista että kirjaimia enemmän kuin 2, vaan että jos kenttä ei ole tyhjä toiminta jatkuu muutoin virheilmoitus.

    emptyllä siis kokeilin, jätin kenttiä tyhjäksi mutta toiminta jatkui. jos sen sijaan kokeilen strlen -funktiolla esim. että merkkejä pitää olla vähintään 2, toiminta ei jatku jos on 1 merkki tai 0.

    "vaan että jos kenttä ei ole tyhjä toiminta jatkuu muutoin virheilmoitus."

    Juu tuollee toimii tuo !empty mikäli ei ole tyhjä niin suoritetaan if lauseen koodi.

    Kokeileppas



    Niin näät mitä lomakkeesi todella palauttaa ja pastea se tänne ellet sitä ymmärrä.


    Kokeiles tällä

    if (!empty($_POST['nimi']))
    {
    echo 'nimi ei ole tyhjä';
    }
    elseif (!empty($_POST['snimi']))
    {
    echo 'snimi ei ole tyhjä';
    }
    else
    {
    echo 'nimi ja snimi on tyhjä';
    }

    Äänestä

  • ef3243 kirjoitti:

    "vaan että jos kenttä ei ole tyhjä toiminta jatkuu muutoin virheilmoitus."

    Juu tuollee toimii tuo !empty mikäli ei ole tyhjä niin suoritetaan if lauseen koodi.

    Kokeileppas



    Niin näät mitä lomakkeesi todella palauttaa ja pastea se tänne ellet sitä ymmärrä.


    Kokeiles tällä

    if (!empty($_POST['nimi']))
    {
    echo 'nimi ei ole tyhjä';
    }
    elseif (!empty($_POST['snimi']))
    {
    echo 'snimi ei ole tyhjä';
    }
    else
    {
    echo 'nimi ja snimi on tyhjä';
    }

    Jälkimmäinen esimerkki (if-elseif-else) ei käy,
    vaan pitäisi tehdää juuri tyyliin if ja sitten or jne.

    Täytyy vielä tarkistaa, mikä tuolla on. Mutta voisiko olla niin, ettei tuo toimi käytettäessä OR? mulla on tuossa useampi kenttä kuin nimi ja snimi eli tyyliin if (!empty($_POST['kentta1']) OR !empty($_POST['kentta2']) OR !empty($_POST['kentta3']))

    Äänestä

  • tiiiikeri kirjoitti:

    Jälkimmäinen esimerkki (if-elseif-else) ei käy,
    vaan pitäisi tehdää juuri tyyliin if ja sitten or jne.

    Täytyy vielä tarkistaa, mikä tuolla on. Mutta voisiko olla niin, ettei tuo toimi käytettäessä OR? mulla on tuossa useampi kenttä kuin nimi ja snimi eli tyyliin if (!empty($_POST['kentta1']) OR !empty($_POST['kentta2']) OR !empty($_POST['kentta3']))

    "Mutta voisiko olla niin, ettei tuo toimi käytettäessä OR?"

    Ei. Tuo toimii myös OR ja AND käytettäessä, ja myös || ja && jotka ovat sama asia.

    Epäilen että olet typottanyt jotain, esim sul on lomakkeessa parikertaa sama kentän nimi jolloin vain jälkimmainen ylikirjoittaa aikasemman.

    Suosittelen että kokeilet tuon var_dump jutun niin näät todella mitä lomake palauttaa, ja sitten lähe tekemään tuo if hässäkkä ihan alusta yksi kerrallaan, siis
    if (!empty($_POST['kentta1'])) jos toimii niin sitten if (!empty($_POST['kentta1']) OR !empty($_POST['kentta2'])) jne.... niin selviää missä vika.

    Äänestä

  • ef3243 kirjoitti:

    "Mutta voisiko olla niin, ettei tuo toimi käytettäessä OR?"

    Ei. Tuo toimii myös OR ja AND käytettäessä, ja myös || ja && jotka ovat sama asia.

    Epäilen että olet typottanyt jotain, esim sul on lomakkeessa parikertaa sama kentän nimi jolloin vain jälkimmainen ylikirjoittaa aikasemman.

    Suosittelen että kokeilet tuon var_dump jutun niin näät todella mitä lomake palauttaa, ja sitten lähe tekemään tuo if hässäkkä ihan alusta yksi kerrallaan, siis
    if (!empty($_POST['kentta1'])) jos toimii niin sitten if (!empty($_POST['kentta1']) OR !empty($_POST['kentta2'])) jne.... niin selviää missä vika.

    heti kun tulee mukaan toinen tekijä, ei toimi enää.

    Eli:
    if(!empty($_POST['kentta1']))
    TOIMII

    if(!empty($_POST['kentta1']) OR !empty($_POST['kentta2']))
    EI TOIMI

    Äänestä

  • tiiiikeri kirjoitti:

    heti kun tulee mukaan toinen tekijä, ei toimi enää.

    Eli:
    if(!empty($_POST['kentta1']))
    TOIMII

    if(!empty($_POST['kentta1']) OR !empty($_POST['kentta2']))
    EI TOIMI

    Ahaa nyt selvisi missä vika.


    if(!empty($_POST['kentta1']) OR !empty($_POST['kentta2']))

    Tosi jos kentta1 TAI kentta2 ei ole tyhjä. Tätähän et halunnutkaan.


    if(!empty($_POST['kentta1']) AND !empty($_POST['kentta2']))

    Tosi jos kentta1 JA kentta2 ei ole tyhjiä.

    Äänestä

  • ef3243 kirjoitti:

    Ahaa nyt selvisi missä vika.


    if(!empty($_POST['kentta1']) OR !empty($_POST['kentta2']))

    Tosi jos kentta1 TAI kentta2 ei ole tyhjä. Tätähän et halunnutkaan.


    if(!empty($_POST['kentta1']) AND !empty($_POST['kentta2']))

    Tosi jos kentta1 JA kentta2 ei ole tyhjiä.

    nyttenhän se toimii kuin unelma, suuret kiitokset!:)

    Äänestä

Kommentoi aloitusta


tiiiikeri kirjoitti:

Jos mulla on
if (trim($_POST['nimi'] ==)
{
toiminta jatkuu
}
else
{
jotakin muta
}

niin miten saan tuon trim -funktion käänteiseksi?
eli jos nimi EI ole tyhjä, niin toiminta jatkuu?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu