Mikä tässä koodipätkässä on vikana

   A:link {color:#176791; font-size: 10;}
   A:visited {color:#176791; font-size: 10;}
   A:hover {color:#FF5613; text-decoration: underline; background:#8FC6E3; font-size: 10;}


Vieraskirja



Nimesi:
Viestisi:





Kun sitä koitaa ajaa omalla servulla, niin se vain ilomoittaa tämän.. Notice: Undefined variable: viesti in c:\inetpub\wwwroot\vieraskirja.php on line 2

kokeilkaa vaikka os. http://jhvisto.dy.fi ja testi linkki
121087
Äänestä

Muut lukivat myös

Vastaukset 12

Vanhimmat

Tuo virheilmoitus tarkoittaa sitä että $viesti muuttujaa ei ole määritelty globaalissa nimiavaruudessa.

Tämä johtuu siitä että PHP 4.2.0 versiosta lähtien konfiguraatiodirektiivi register_globals = off (tähän päädyttiin m.m turvallisuussyistä)

Pääset käsiksi lomakkeen tietoihin $_POST ja $_GET superglobaaleilla taulukoilla (esim
$_POST["viesti"]).Lisätietoa saat (suosittelen että luet) osoitteista:

http://fi2.php.net/manual/fi/language.variables.external.php

ja

http://fi2.php.net/manual/fi/ini.sect.data-handling.php#ini.register-globals


En ole tutkinut tuota koodinpätkää sen tarkemmin joten en tiedä onko siinä muita virheitä..

MP

Äänestä
  • *Tuo virheilmoitus tarkoittaa sitä että $viesti muuttujaa ei ole määritelty globaalissa nimiavaruudessa.

    Tämä johtuu siitä että PHP 4.2.0 versiosta lähtien konfiguraatiodirektiivi register_globals = off (tähän päädyttiin m.m turvallisuussyistä)*

    Itseasiassa ei johdu ihan tosta, toi virheilmoitus tarkoittaa vain, ettei viesti muuttujaa ole alustettu, sillä ei ole mitään tekemistä ton globals asetuksen kanssa, yhtälailla saman ilmoituksen antaa $_GET['viesti'].

    Virhe korjataan alustamalla muuttuja tai tarkistamalla saako se arvoa, tai sitten otetaan php asetuksista pois noi huomautukset.

    Noita superglobaaleja kannattaa käyttää, jos on laiska niin lisää $viesti = $_GET_['viesti']

    Äänestä

  • 1212 kirjoitti:

    *Tuo virheilmoitus tarkoittaa sitä että $viesti muuttujaa ei ole määritelty globaalissa nimiavaruudessa.

    Tämä johtuu siitä että PHP 4.2.0 versiosta lähtien konfiguraatiodirektiivi register_globals = off (tähän päädyttiin m.m turvallisuussyistä)*

    Itseasiassa ei johdu ihan tosta, toi virheilmoitus tarkoittaa vain, ettei viesti muuttujaa ole alustettu, sillä ei ole mitään tekemistä ton globals asetuksen kanssa, yhtälailla saman ilmoituksen antaa $_GET['viesti'].

    Virhe korjataan alustamalla muuttuja tai tarkistamalla saako se arvoa, tai sitten otetaan php asetuksista pois noi huomautukset.

    Noita superglobaaleja kannattaa käyttää, jos on laiska niin lisää $viesti = $_GET_['viesti']

    1212 Wrote:
    "Itseasiassa ei johdu ihan tosta, toi virheilmoitus tarkoittaa vain, ettei viesti muuttujaa ole alustettu, sillä ei ole mitään tekemistä ton globals asetuksen kanssa, yhtälailla saman ilmoituksen antaa $_GET['viesti']."

    $viesti muuttujaa ei *koskaan* alusteta (siis lomakkeesta tuleva nimi&arvo paria)globaalissa nimiavaruudessa niin kauan kuin register_globals = Off


    1212 Wrote:
    "Virhe korjataan alustamalla muuttuja tai tarkistamalla saako se arvoa, tai sitten otetaan php asetuksista pois noi huomautukset"

    $viesti muuttuja ei ikinä saa mitään arvoa (yllä mainitusta syystä). PHP antaa vain virheilmoituksen "Notice: Undefined variable: viesti in .." , itse virheilmoituksen toki saa pois asettamalla error_reporting (E_ALL ^ E_NOTICE); (mikä itse asiassa pitäisi olla oletusarvoisesti)



    Toki pitää tarkastaa että $_POST['viesti'] on olemassa (koska se ei ole olemassa ennekuin olet kutsunut lomakekoodin sisältävän tiedoston POST metodilla).

    Tähän voi käyttää joko isset() tai
    array_key_exists() (joka on hieman luotettavampi koska se toimii myös silloin kun taulukkoelementin arvo on NULL, josta ei kyllä tässä tapauksessa tarvitse välittää) funktiota:

    Tarkastetaan myös samalla että Viesti ei ole tyhjä merkkijono:

    if (array_key_exists($_POST['viesti']) && $_POST['viesti'] != '')
    {
    // Tee jotain
    }




    MP

    Äänestä

  • MachuPichu kirjoitti:

    1212 Wrote:
    "Itseasiassa ei johdu ihan tosta, toi virheilmoitus tarkoittaa vain, ettei viesti muuttujaa ole alustettu, sillä ei ole mitään tekemistä ton globals asetuksen kanssa, yhtälailla saman ilmoituksen antaa $_GET['viesti']."

    $viesti muuttujaa ei *koskaan* alusteta (siis lomakkeesta tuleva nimi&arvo paria)globaalissa nimiavaruudessa niin kauan kuin register_globals = Off


    1212 Wrote:
    "Virhe korjataan alustamalla muuttuja tai tarkistamalla saako se arvoa, tai sitten otetaan php asetuksista pois noi huomautukset"

    $viesti muuttuja ei ikinä saa mitään arvoa (yllä mainitusta syystä). PHP antaa vain virheilmoituksen "Notice: Undefined variable: viesti in .." , itse virheilmoituksen toki saa pois asettamalla error_reporting (E_ALL ^ E_NOTICE); (mikä itse asiassa pitäisi olla oletusarvoisesti)



    Toki pitää tarkastaa että $_POST['viesti'] on olemassa (koska se ei ole olemassa ennekuin olet kutsunut lomakekoodin sisältävän tiedoston POST metodilla).

    Tähän voi käyttää joko isset() tai
    array_key_exists() (joka on hieman luotettavampi koska se toimii myös silloin kun taulukkoelementin arvo on NULL, josta ei kyllä tässä tapauksessa tarvitse välittää) funktiota:

    Tarkastetaan myös samalla että Viesti ei ole tyhjä merkkijono:

    if (array_key_exists($_POST['viesti']) && $_POST['viesti'] != '')
    {
    // Tee jotain
    }




    MP

    Kirjoitin parametrit väärin array_key_exists() funktiossa, oikea koodi on siis:

    if (array_key_exists('viesti', $_POST) && $_POST['viesti'] != '')
    {
    // Tee jotain
    }


    MP

    Äänestä

  • MachuPichu kirjoitti:

    1212 Wrote:
    "Itseasiassa ei johdu ihan tosta, toi virheilmoitus tarkoittaa vain, ettei viesti muuttujaa ole alustettu, sillä ei ole mitään tekemistä ton globals asetuksen kanssa, yhtälailla saman ilmoituksen antaa $_GET['viesti']."

    $viesti muuttujaa ei *koskaan* alusteta (siis lomakkeesta tuleva nimi&arvo paria)globaalissa nimiavaruudessa niin kauan kuin register_globals = Off


    1212 Wrote:
    "Virhe korjataan alustamalla muuttuja tai tarkistamalla saako se arvoa, tai sitten otetaan php asetuksista pois noi huomautukset"

    $viesti muuttuja ei ikinä saa mitään arvoa (yllä mainitusta syystä). PHP antaa vain virheilmoituksen "Notice: Undefined variable: viesti in .." , itse virheilmoituksen toki saa pois asettamalla error_reporting (E_ALL ^ E_NOTICE); (mikä itse asiassa pitäisi olla oletusarvoisesti)



    Toki pitää tarkastaa että $_POST['viesti'] on olemassa (koska se ei ole olemassa ennekuin olet kutsunut lomakekoodin sisältävän tiedoston POST metodilla).

    Tähän voi käyttää joko isset() tai
    array_key_exists() (joka on hieman luotettavampi koska se toimii myös silloin kun taulukkoelementin arvo on NULL, josta ei kyllä tässä tapauksessa tarvitse välittää) funktiota:

    Tarkastetaan myös samalla että Viesti ei ole tyhjä merkkijono:

    if (array_key_exists($_POST['viesti']) && $_POST['viesti'] != '')
    {
    // Tee jotain
    }




    MP

    *$viesti muuttujaa ei *koskaan* alusteta (siis lomakkeesta tuleva nimi&arvo paria)globaalissa nimiavaruudessa niin kauan kuin register_globals = Off*

    Ei niin, mutta toi globals asetus ei liity mitenkään tähän virheeseen. Totta on, ettei $viesti muuttuja saa arvoa jos register... off. Mutta jos koodissa alustettaisiin(tarkistettaisiin) muuttuja, niin virheilmoitusta ei tulisi. Toki syötettyä arvoa muuttuja ei ikinä saisi ;)

    Esim
    $viesti = (!empty($viesti) ? $viesti : FALSE);



    *$viesti muuttuja ei ikinä saa mitään arvoa (yllä mainitusta syystä). PHP antaa vain virheilmoituksen "Notice: Undefined variable: viesti in .." , itse virheilmoituksen toki saa pois asettamalla error_reporting (E_ALL ^ E_NOTICE); (mikä itse asiassa pitäisi olla oletusarvoisesti)*

    Oletusarvoisesti php näyttää kaikki virheet, toki usealla palvelimella noi huomautukset on otettu pois, ja niistähän on vain hyötyä kun kehitetään scriptiä. Itseasiassa, mitään php:n virheilmoitusta ei saisi antaa käyttäjän näkyville, sisältävät liikaa tietoa, mielummin tekee omat virheilmoitukset ja logittaa/mailaa php:n omat.

    Saatoin olla aikasemmin liian epäselvä. Mutta virheen ilmestymisen kannalta on aivan sama onko koodissa $viesti tai $_POST['viesti'] yhtälailla virhe tulee, kokeile vaikka. Totahan scriptiä kutsutaan muuloinkin kuin pelkästää lomakkeen kautta.



    *if (array_key_exists($_POST['viesti']) && $_POST['viesti'] != '')....*

    Yhtälailla saman voisi tehdä
    if (!empty($_POST['viesti'])) .......




    Toisaalta noi muutujien alustamiset on lähinnä turhuutta mikäli register_global off, eikä virheilmoitukset näy, mutta siltikin kannataa olla tarkkana ohjelman sisäisten muuttujien kanssa ja alustaa tärkeät. Alla olevan virheen tapainen on aika yleinen aloittelijoiden keskuudes


    if (tarkista_onko_kirjaantunut() === TRUE)
    $sisällä = 'juuu';


    if ($sisällä == 'juuu')
    echo 'terveppä tuloa admin';

    else
    echo 'pois';


    Tohon ei tartte kuin xxx.php?sisällä=juuu niin tolla pääsee kukavain ilman tarkistusta, sensijaan jos muuttuja oltaisiin alustettu, ongelmaa ei olisi, eikä myöskään silloin jos register_global = off

    Äänestä

  • 1212 kirjoitti:

    *$viesti muuttujaa ei *koskaan* alusteta (siis lomakkeesta tuleva nimi&arvo paria)globaalissa nimiavaruudessa niin kauan kuin register_globals = Off*

    Ei niin, mutta toi globals asetus ei liity mitenkään tähän virheeseen. Totta on, ettei $viesti muuttuja saa arvoa jos register... off. Mutta jos koodissa alustettaisiin(tarkistettaisiin) muuttuja, niin virheilmoitusta ei tulisi. Toki syötettyä arvoa muuttuja ei ikinä saisi ;)

    Esim
    $viesti = (!empty($viesti) ? $viesti : FALSE);



    *$viesti muuttuja ei ikinä saa mitään arvoa (yllä mainitusta syystä). PHP antaa vain virheilmoituksen "Notice: Undefined variable: viesti in .." , itse virheilmoituksen toki saa pois asettamalla error_reporting (E_ALL ^ E_NOTICE); (mikä itse asiassa pitäisi olla oletusarvoisesti)*

    Oletusarvoisesti php näyttää kaikki virheet, toki usealla palvelimella noi huomautukset on otettu pois, ja niistähän on vain hyötyä kun kehitetään scriptiä. Itseasiassa, mitään php:n virheilmoitusta ei saisi antaa käyttäjän näkyville, sisältävät liikaa tietoa, mielummin tekee omat virheilmoitukset ja logittaa/mailaa php:n omat.

    Saatoin olla aikasemmin liian epäselvä. Mutta virheen ilmestymisen kannalta on aivan sama onko koodissa $viesti tai $_POST['viesti'] yhtälailla virhe tulee, kokeile vaikka. Totahan scriptiä kutsutaan muuloinkin kuin pelkästää lomakkeen kautta.



    *if (array_key_exists($_POST['viesti']) && $_POST['viesti'] != '')....*

    Yhtälailla saman voisi tehdä
    if (!empty($_POST['viesti'])) .......




    Toisaalta noi muutujien alustamiset on lähinnä turhuutta mikäli register_global off, eikä virheilmoitukset näy, mutta siltikin kannataa olla tarkkana ohjelman sisäisten muuttujien kanssa ja alustaa tärkeät. Alla olevan virheen tapainen on aika yleinen aloittelijoiden keskuudes


    if (tarkista_onko_kirjaantunut() === TRUE)
    $sisällä = 'juuu';


    if ($sisällä == 'juuu')
    echo 'terveppä tuloa admin';

    else
    echo 'pois';


    Tohon ei tartte kuin xxx.php?sisällä=juuu niin tolla pääsee kukavain ilman tarkistusta, sensijaan jos muuttuja oltaisiin alustettu, ongelmaa ei olisi, eikä myöskään silloin jos register_global = off

    Tässä tuli näköjään vähän väärinkäsityksiä puolin ja toisin, yritin sanoa sitä että tuo alkuperäinen Nimettömän koodinpätkä olisi ihan OK jos se tiedosto, missä kyseinen scripti sijaitsee, kutsutaan aina POST metodilla ja register_globals = On.

    Tässä tapauksessa (alustamaton) muuttuja $viesti saisi AINA arvon lomakkeen kautta (mahdollisesti tyhjän merkkijonon '' jos käyttäjä jättäisi viestikentän tyhjäksi), virheilmoitusta ei koskaan tulisi JOS lomakescriptiä (niinkuin yleensä on tapana lomakkeilla, palautelomake on yksi .html sivu, jonka kautta kutsutaan POST metodilla jonkuntyyppistä formmail.php scriptiä) kutsuttaisiin aina POST metodilla.
    PHP3:ssa riitti kun kirjoitti:

    Viestisi:
    if ($viesti != '')
    {
    // Tee jotain
    }

    Virheilmoitusta ei tullut koska $viesti koodin sisältävä scripti kutsutaan aina POST metodilla ja se saa aina arvon PHP:lta joka luo $viesti muuttujan ('' jos käyttäjä jätti tekstikentän tyhjäksi) globaaliin nimiavaruuteen kunhan register_globals oli On (mitä se oli ennen, EI ole PHP4.2.0 eteenpäin oletusarvoisesti).


    Tietenkin tälläinen ohjemointitapa oli erittäin huolimatonta mutta aika yleinen vuosien takaisissa antiikin formmail.php skripteissä.

    Jos taas register_globals = Off niin tuosta seuraa virheilmoitus koska PHP tulkki ei enää määrittele (implisiittisesti) $viesti muuttujaa
    eli kyllä register_globals arvo vaikuttaa tuon virheilmoituksen syntymiseen aivan oleellisesti

    Siinä olet oikeassa että jos palautelomakkeessa sijaitsee tuo koodinpätkä ja se kutsuu itseään POST metodilla, niin silloin myöskin seuraisi virheilmoitus (tarkalleen ottaen Notice) kun PHP tulkki lukisi sivua ensimmäistä kerta (jolloin tiedostoa ei ole vielä kutsuttu POST metodilla käyttäjän toimesta esim. lomakken kautta)

    1212 Wrote:
    " Oletusarvoisesti php näyttää kaikki virheet, toki usealla palvelimella noi huomautukset on otettu pois.."

    PHP4 ei näytä E_NOTICE "virheitä" oletusarvoisesti (siksi ihmettelinkin miksi Nimetön sai tuon Notice ilmoituksen, PHP Manuaali:"In PHP 4 the default value does not show E_NOTICE level errors. You may want to show them during development").
    Joko Nimettömän skriptissä on aikaisemmassa vaiheessa esim. error_reporting (E_ALL); tai sitten admin on muuttanut error_reporting direktiiviä.

    1212 Wrote:
    "..ja niistähän on vain hyötyä kun kehitetään scriptiä."

    Totta, minäkin pistän aina scriptin kehitysvaiheessa "päälle" kaikki virheilmoitukset
    error_reporting(E_ALL);

    1212 Wrote:
    "Saatoin olla aikasemmin liian epäselvä. Mutta virheen ilmestymisen kannalta on aivan sama onko koodissa $viesti tai $_POST['viesti'] yhtälailla virhe tulee, kokeile vaikka. Totahan scriptiä kutsutaan muuloinkin kuin pelkästää lomakkeen kautta.
    if (array_key_exists('viesti', $_POST) && $_POST['viesti'] != '') "

    (korjasin parametrit jotka kirjoitin alkuperäisessä postissani väärin)


    Siksi juuri tarkastankin viestindeksin olemassaolon ennekuin tarkastan onko $_POST['viesti'] tyhjä merkkjono (PHP:hän ei tarkasta AND operaattorin yhteydessä toista operandia jos ensimmäinen on false, joten virheilmoitusta ei tule toisessa operandissa $_POST['viesti'] vaikka sitä ei olisi määritelty.)

    1212 Wrote:
    "Yhtälailla saman voisi tehdä
    if (!empty($_POST['viesti'])) ......."

    empty() funktion käyttämistä en suosittelisi käytettäväksi koska silloin if-lauseen koodinpätkää ei suoritettaisi jos viesti sisältäisi pelkän 0 merkin (toki voi olla että käyttäjä haluaa tulkita 0 merkin tyhjäksi merkiksi, silloin empty() kävisi ihan hyvin).


    Mutta joo tässä nyt sekottuu vähän PHP:n vanhaa&uutta tapaa käsitellä lomakkeen tietoja(mistä nämä väärinkäsitykset kumpuavatkin), kaikkein parasta olisi jos käyttäjät tästä eteenpäin käyttäisivät vain superglobaaleja taulukoita ja tarkistaisivat etukäteen taulukkoindeksien olemassaolon ja unohtaisivat "vanhat hackit".


    MP

    Äänestä

  • MachuPichu kirjoitti:

    Tässä tuli näköjään vähän väärinkäsityksiä puolin ja toisin, yritin sanoa sitä että tuo alkuperäinen Nimettömän koodinpätkä olisi ihan OK jos se tiedosto, missä kyseinen scripti sijaitsee, kutsutaan aina POST metodilla ja register_globals = On.

    Tässä tapauksessa (alustamaton) muuttuja $viesti saisi AINA arvon lomakkeen kautta (mahdollisesti tyhjän merkkijonon '' jos käyttäjä jättäisi viestikentän tyhjäksi), virheilmoitusta ei koskaan tulisi JOS lomakescriptiä (niinkuin yleensä on tapana lomakkeilla, palautelomake on yksi .html sivu, jonka kautta kutsutaan POST metodilla jonkuntyyppistä formmail.php scriptiä) kutsuttaisiin aina POST metodilla.
    PHP3:ssa riitti kun kirjoitti:

    Viestisi:
    if ($viesti != '')
    {
    // Tee jotain
    }

    Virheilmoitusta ei tullut koska $viesti koodin sisältävä scripti kutsutaan aina POST metodilla ja se saa aina arvon PHP:lta joka luo $viesti muuttujan ('' jos käyttäjä jätti tekstikentän tyhjäksi) globaaliin nimiavaruuteen kunhan register_globals oli On (mitä se oli ennen, EI ole PHP4.2.0 eteenpäin oletusarvoisesti).


    Tietenkin tälläinen ohjemointitapa oli erittäin huolimatonta mutta aika yleinen vuosien takaisissa antiikin formmail.php skripteissä.

    Jos taas register_globals = Off niin tuosta seuraa virheilmoitus koska PHP tulkki ei enää määrittele (implisiittisesti) $viesti muuttujaa
    eli kyllä register_globals arvo vaikuttaa tuon virheilmoituksen syntymiseen aivan oleellisesti

    Siinä olet oikeassa että jos palautelomakkeessa sijaitsee tuo koodinpätkä ja se kutsuu itseään POST metodilla, niin silloin myöskin seuraisi virheilmoitus (tarkalleen ottaen Notice) kun PHP tulkki lukisi sivua ensimmäistä kerta (jolloin tiedostoa ei ole vielä kutsuttu POST metodilla käyttäjän toimesta esim. lomakken kautta)

    1212 Wrote:
    " Oletusarvoisesti php näyttää kaikki virheet, toki usealla palvelimella noi huomautukset on otettu pois.."

    PHP4 ei näytä E_NOTICE "virheitä" oletusarvoisesti (siksi ihmettelinkin miksi Nimetön sai tuon Notice ilmoituksen, PHP Manuaali:"In PHP 4 the default value does not show E_NOTICE level errors. You may want to show them during development").
    Joko Nimettömän skriptissä on aikaisemmassa vaiheessa esim. error_reporting (E_ALL); tai sitten admin on muuttanut error_reporting direktiiviä.

    1212 Wrote:
    "..ja niistähän on vain hyötyä kun kehitetään scriptiä."

    Totta, minäkin pistän aina scriptin kehitysvaiheessa "päälle" kaikki virheilmoitukset
    error_reporting(E_ALL);

    1212 Wrote:
    "Saatoin olla aikasemmin liian epäselvä. Mutta virheen ilmestymisen kannalta on aivan sama onko koodissa $viesti tai $_POST['viesti'] yhtälailla virhe tulee, kokeile vaikka. Totahan scriptiä kutsutaan muuloinkin kuin pelkästää lomakkeen kautta.
    if (array_key_exists('viesti', $_POST) && $_POST['viesti'] != '') "

    (korjasin parametrit jotka kirjoitin alkuperäisessä postissani väärin)


    Siksi juuri tarkastankin viestindeksin olemassaolon ennekuin tarkastan onko $_POST['viesti'] tyhjä merkkjono (PHP:hän ei tarkasta AND operaattorin yhteydessä toista operandia jos ensimmäinen on false, joten virheilmoitusta ei tule toisessa operandissa $_POST['viesti'] vaikka sitä ei olisi määritelty.)

    1212 Wrote:
    "Yhtälailla saman voisi tehdä
    if (!empty($_POST['viesti'])) ......."

    empty() funktion käyttämistä en suosittelisi käytettäväksi koska silloin if-lauseen koodinpätkää ei suoritettaisi jos viesti sisältäisi pelkän 0 merkin (toki voi olla että käyttäjä haluaa tulkita 0 merkin tyhjäksi merkiksi, silloin empty() kävisi ihan hyvin).


    Mutta joo tässä nyt sekottuu vähän PHP:n vanhaa&uutta tapaa käsitellä lomakkeen tietoja(mistä nämä väärinkäsitykset kumpuavatkin), kaikkein parasta olisi jos käyttäjät tästä eteenpäin käyttäisivät vain superglobaaleja taulukoita ja tarkistaisivat etukäteen taulukkoindeksien olemassaolon ja unohtaisivat "vanhat hackit".


    MP

    *PHP4 ei näytä E_NOTICE "virheitä" oletusarvoisesti*

    Eipäs näytäkkään, olin vääräs. Itse oon muokannut aina siitä toisesta php.inistä mitä suosittelevat tarkoituksiini sopivan, siinähän noi "virheet" näytetään oletusarvoisesti.


    *Tietenkin tälläinen ohjemointitapa oli erittäin huolimatonta mutta aika yleinen vuosien takaisissa antiikin formmail.php skripteissä.*

    Niin oli yleinen, samoin scriptit jotka käyttivät spammien lähettämiseen noita valmiita formmail sovelluksia.


    *empty() funktion käyttämistä en suosittelisi käytettäväksi.... *

    Onhan tossa toi nolla ongelma, mutta eipähän pelkkää nollaa useesti tarvita, vieraskirjassa ainaskaan.

    Äänestä

Ilmeisesti alussa haluat tarkistaa onko muuttuja $viesti tyhjä ja jollei niin tallentaa tuon kyseisen rivin tiedostoon. Tästä syystä sinulla pitäisi olla tuo if lauseen ehto muotoa:

if ($viesti != "")

Eli lisää tuohon siis toinen lainausmerkki. Näin tarkistetaan onko muuttuja tyhjäsetti. Lisää toki alkuun myös tuo edellisissä viestissä ehdotettu pätkä jotta tuo muuttuja tunnistetaan.

Äänestä
  • MHSH wrote:
    if ($viesti != "")
    "Eli lisää tuohon siis toinen lainausmerkki. Näin tarkistetaan onko muuttuja tyhjäsetti."


    Nimimerkki Nimettömän käyttämät yksinkertaiset lainausmerkit käy myös yhtä hyvin.
    if ($viesti != '')

    MP

    Äänestä

  • MachuPicu kirjoitti:

    MHSH wrote:
    if ($viesti != "")
    "Eli lisää tuohon siis toinen lainausmerkki. Näin tarkistetaan onko muuttuja tyhjäsetti."


    Nimimerkki Nimettömän käyttämät yksinkertaiset lainausmerkit käy myös yhtä hyvin.
    if ($viesti != '')

    MP

    if ($viesti != '')

    Tämä on nopeempa kuin

    if ($viesti != "")

    Koska php tulkitsee ylinmäisen pelkäksi merkkijonoksi. Juu ero on sit tässä tapauksessa todella huima, muutama tuhat nanosekunttia ;)

    Äänestä

  • 1212 kirjoitti:

    if ($viesti != '')

    Tämä on nopeempa kuin

    if ($viesti != "")

    Koska php tulkitsee ylinmäisen pelkäksi merkkijonoksi. Juu ero on sit tässä tapauksessa todella huima, muutama tuhat nanosekunttia ;)

    No vaikka se ei käytännössä näkys nopeudessa paljoa, niin siitä huolimatta on paljon siistimpää ohjhelmointityyliä käyttää '':ä "":n sijasta sillonkun sitä merkkijonon tulkitsemista ei tarvita. Hyvä ohjelmointityyli on aina paikallaan.

    Äänestä

  • miksuh kirjoitti:

    No vaikka se ei käytännössä näkys nopeudessa paljoa, niin siitä huolimatta on paljon siistimpää ohjhelmointityyliä käyttää '':ä "":n sijasta sillonkun sitä merkkijonon tulkitsemista ei tarvita. Hyvä ohjelmointityyli on aina paikallaan.

    Onhan se tietenkin hyvä asia tehdä noin, mutta jos on tottunut käyttämään toista tapaa niin helposti toi sekottaa.

    Äänestä

Kommentoi aloitusta


Nimetön kirjoitti:

   A:link {color:#176791; font-size: 10;}
   A:visited {color:#176791; font-size: 10;}
   A:hover {color:#FF5613; text-decoration: underline; background:#8FC6E3; font-size: 10;}


Vieraskirja



Nimesi:
Viestisi:





Kun sitä koitaa ajaa omalla servulla, niin se vain ilomoittaa tämän.. Notice: Undefined variable: viesti in c:\inetpub\wwwroot\vieraskirja.php on line 2

kokeilkaa vaikka os. http://jhvisto.dy.fi ja testi linkki

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