RIVINVAIHTO Ongelma

= )Ö

Missä lienee ongelma, kun en saa rivinvaihtoa "\n" suoritettua PHP:ssä (enkä edes "\r\n", "\r" tai "\t"). Tämän takia olen joutunut turvautumaan HTML:n tageihin, mutta olisi myös hauska, jos saisin ne myös PHP:ssä toimimaan.

Käsittääkseni virhe ei voi olla PHP:n versiossa, joka on nelosen uusin. Voisikohan virhe liittyä jotenin kirjastoihin?

Kiitos

12

1276

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Undefined

      Vaikea sanoa mitään ilman esimerkkikoodia.

      Tiedäthän sen, että tavalliset rivinvaihdot (\n) eivät ole HTML:ssä merkitseviä kuin PRE-elementin sisällä? Muulloin tulee käyttää BR-elementtiä rivinvaihtoon. Harvemmin WWW-sivuille on kyllä tarvetta rivinvaihtoja tunkeakaan.

      PHP:n versiota 4 ei kannata käyttää, jos siihen ei ole jotain erityisen pakottavaa syytä.

    • -----

      *Missä lienee ongelma, kun en saa rivinvaihtoa "\n" suoritettua PHP:ssä (enkä edes "\r\n", "\r" tai "\t"). Tämän takia olen joutunut turvautumaan HTML:n tageihin, mutta olisi myös hauska, jos saisin ne myös PHP:ssä toimimaan.*

      Kyl nuo toimii. Katsoppas sivun lähdekoosit siel komeilee rivinvaihto. Selainhan ei välitä tuommosista rivinvaihdoista mitään, ellei ole pre tagin sisäl.

      Esim lähdekoodissa
      1
      2
      3

      Selaimessa näät tuon
      123

      Jos lähdekoodissa näin
      1
      2
      3

      Selaimessa näät
      1
      2
      3

      Tutustuppas http://fi.php.net/manual/fi/function.nl2br.php se muuntaa nuo rivinvaihdot (x)HTML muotoon.

      Nuilla rivinvaihdoilla pystyt tekemään HTML koodista selkeää ja luettavaa mikäli haluaa. Käyttäen sisennyksiä lisäks.

      • = )Ö

        Toimii! :) - mutta kumpaako on suositeltavaa käyttää vai tuota nl2br-funktiota?

        *****
        Ja vielä yksi pieni juttu mistähän johtuu, että error tulee edelleen function eteen huolimatta @-merkistä?

        Example - Division by Zero:



        Thanks!


      • -----
        = )Ö kirjoitti:

        Toimii! :) - mutta kumpaako on suositeltavaa käyttää vai tuota nl2br-funktiota?

        *****
        Ja vielä yksi pieni juttu mistähän johtuu, että error tulee edelleen function eteen huolimatta @-merkistä?

        Example - Division by Zero:



        Thanks!

        *mutta kumpaako on suositeltavaa käyttää vai tuota nl2br-funktiota?*

        Riippuu ihan käyttötarkoituksesta. Tuo pre esittää tekstin semmoisenaan joten käytetään yleensä koodiesimerkeissä jne.... Ei sivun varsinaisessa tekstissä.


        *Ja vielä yksi pieni juttu mistähän johtuu, että error tulee edelleen function eteen huolimatta @-merkistä?*

        Nollalla kun ei voi jakaa. Itselläni tuo @ piilottaa errorin tuossakin tapauksessa. Tosin testialustana PHP 5. Tuossa errorien piilottamisessa on omat vaaransa, joten ennemmin kannattaa vaik logittaa virheet kuin piilottaa ne kokonaan. Ei tartte kuin pikkuinen typö ja olet ongelman edessä.


      • -----
        ----- kirjoitti:

        *mutta kumpaako on suositeltavaa käyttää vai tuota nl2br-funktiota?*

        Riippuu ihan käyttötarkoituksesta. Tuo pre esittää tekstin semmoisenaan joten käytetään yleensä koodiesimerkeissä jne.... Ei sivun varsinaisessa tekstissä.


        *Ja vielä yksi pieni juttu mistähän johtuu, että error tulee edelleen function eteen huolimatta @-merkistä?*

        Nollalla kun ei voi jakaa. Itselläni tuo @ piilottaa errorin tuossakin tapauksessa. Tosin testialustana PHP 5. Tuossa errorien piilottamisessa on omat vaaransa, joten ennemmin kannattaa vaik logittaa virheet kuin piilottaa ne kokonaan. Ei tartte kuin pikkuinen typö ja olet ongelman edessä.

        Erroreist kannattaa vilkast http://fi.php.net/errorfunc siel on ihan ok erroreiden käsittelijä josta pienel muokkauksel saa ihan toimivan.


      • = )Ö
        ----- kirjoitti:

        Erroreist kannattaa vilkast http://fi.php.net/errorfunc siel on ihan ok erroreiden käsittelijä josta pienel muokkauksel saa ihan toimivan.

        Lukasin tota manuaali ja vaikuttaa todella mielenkiintoiselta. :) Itse on tarkoituksena koodailla nettisivu, joten tuo matsku näyttäisi tulevan todella tarpeeseen. Minkä kannattaisi sitten valita noista virhetasoista E_NOTICE, E_STRICT vai jokin muu?

        En tiedä ymmärsinkö oikein, mutta noi muutokset taidedaan tehdä PHP.ini tiedostoon muukaan lukien tuo erroreiden käsittelijää koskeva koodi?! Minkälaisia muutoksia muuten itse teit tuohon koodiin?

        Kiitos!


      • -----
        = )Ö kirjoitti:

        Lukasin tota manuaali ja vaikuttaa todella mielenkiintoiselta. :) Itse on tarkoituksena koodailla nettisivu, joten tuo matsku näyttäisi tulevan todella tarpeeseen. Minkä kannattaisi sitten valita noista virhetasoista E_NOTICE, E_STRICT vai jokin muu?

        En tiedä ymmärsinkö oikein, mutta noi muutokset taidedaan tehdä PHP.ini tiedostoon muukaan lukien tuo erroreiden käsittelijää koskeva koodi?! Minkälaisia muutoksia muuten itse teit tuohon koodiin?

        Kiitos!

        *Minkä kannattaisi sitten valita noista virhetasoista E_NOTICE, E_STRICT vai jokin muu?*

        Tämäkin on sellainen asia et käyttötarkoitus ja tottumus määrää. Scriptejä tehdessä kaikki errorit näkyviin E_ALL tai sitten kaikki errorit mutta noticet pois E_ALL & ~E_NOTICE, tällöin ei huomatuta alustamattomista muuttujista jne..., mutta tässä taas on omat vaaransa. Tuo E_STRICT on vasta PHP 5 juttuja.

        Samat asetukset voi olla silloinkin kun sivusto/scripti on julkaistu, kunhan virheet ei näy käyttäjälle liikaa tietoa. Tai sit voi laittaa scriptin alkuun ini_set('display_errors', 0); joka estää errorien näkymisen kävijälle tai .htaccess tiedostoon php_value display_errors off. Tosin onneksi nykyään oletuksenä display_errors = off mutta silti kumma hinku palvelimien pitäjillä muuttaa tuo on asentoon, vaik turvallisempa olisi, että käyttäjä sen itse muuttaisi niin halutessaan.




        *En tiedä ymmärsinkö oikein, mutta noi muutokset taidedaan tehdä PHP.ini tiedostoon muukaan lukien tuo erroreiden käsittelijää koskeva koodi?*


        Noita sivun alussa mainittuja pystyy muuttamaan ihan scriptistä käsin ja .htaccess tiedostosta, viestin alussa mainitul taval.

        php.ini ja httpd.conf tiedostoja ei pysty itse muokkaamaan mikäli et ole palvelimen ylläpitäjä. Tosin joissain on käyttäjäkohtasia php.ini tiedostoja jolloin pystyy muokkaamaan.

        Vilkases http://fi.php.net/manual/fi/ini.php niin näät mitä kaikkea PHP:n asetuksia pystyy säätämään vaik et ylläpitäjä olisikaan.

        Tuo erroreiden käsittelijä laitetaan joka sivun alkuun vaikkapa includella. Se on ihan normaali scriptin pätkä set_error_handler("userErrorHandler"); sanoo PHP:lle, että tuota userErrorHandler functiota käytetään oman error käsittelijän sijast.


        Tuos sivun alus oli kyl vähäsen turhahkoa asiaa joita ei tartte välttämättä säätää ellei halua saattaa sekoittaakkin. Joten vilkaseppas http://fi.php.net/manual/fi/function.set-error-handler.php siel on hieman toisenlainen ehkä selvempi esimerkki, mut ei niin käytännöllinen tuollaisenaan.



        *Minkälaisia muutoksia muuten itse teit tuohon koodiin?*

        Lähinnä ettei logita noticeja, ilmoittaa vakavista virheistä SMS viestillä emailin lisäksi, yrittää uudestaan muutaman kertaan tietokantaan ennenkuin ilmoittaa tietokantaongelmista sekä yrittää korjata automaattisesti tauluja jos vikaantuu, debuggaus ominaisuuden, sekä kertoo käyttäjälle pientä informaatiota virheestä. Noiden lisäks pientä pikkusäätöä. Aika pieniä muutoksia loppujenlopus.


      • = )Ö
        ----- kirjoitti:

        *Minkä kannattaisi sitten valita noista virhetasoista E_NOTICE, E_STRICT vai jokin muu?*

        Tämäkin on sellainen asia et käyttötarkoitus ja tottumus määrää. Scriptejä tehdessä kaikki errorit näkyviin E_ALL tai sitten kaikki errorit mutta noticet pois E_ALL & ~E_NOTICE, tällöin ei huomatuta alustamattomista muuttujista jne..., mutta tässä taas on omat vaaransa. Tuo E_STRICT on vasta PHP 5 juttuja.

        Samat asetukset voi olla silloinkin kun sivusto/scripti on julkaistu, kunhan virheet ei näy käyttäjälle liikaa tietoa. Tai sit voi laittaa scriptin alkuun ini_set('display_errors', 0); joka estää errorien näkymisen kävijälle tai .htaccess tiedostoon php_value display_errors off. Tosin onneksi nykyään oletuksenä display_errors = off mutta silti kumma hinku palvelimien pitäjillä muuttaa tuo on asentoon, vaik turvallisempa olisi, että käyttäjä sen itse muuttaisi niin halutessaan.




        *En tiedä ymmärsinkö oikein, mutta noi muutokset taidedaan tehdä PHP.ini tiedostoon muukaan lukien tuo erroreiden käsittelijää koskeva koodi?*


        Noita sivun alussa mainittuja pystyy muuttamaan ihan scriptistä käsin ja .htaccess tiedostosta, viestin alussa mainitul taval.

        php.ini ja httpd.conf tiedostoja ei pysty itse muokkaamaan mikäli et ole palvelimen ylläpitäjä. Tosin joissain on käyttäjäkohtasia php.ini tiedostoja jolloin pystyy muokkaamaan.

        Vilkases http://fi.php.net/manual/fi/ini.php niin näät mitä kaikkea PHP:n asetuksia pystyy säätämään vaik et ylläpitäjä olisikaan.

        Tuo erroreiden käsittelijä laitetaan joka sivun alkuun vaikkapa includella. Se on ihan normaali scriptin pätkä set_error_handler("userErrorHandler"); sanoo PHP:lle, että tuota userErrorHandler functiota käytetään oman error käsittelijän sijast.


        Tuos sivun alus oli kyl vähäsen turhahkoa asiaa joita ei tartte välttämättä säätää ellei halua saattaa sekoittaakkin. Joten vilkaseppas http://fi.php.net/manual/fi/function.set-error-handler.php siel on hieman toisenlainen ehkä selvempi esimerkki, mut ei niin käytännöllinen tuollaisenaan.



        *Minkälaisia muutoksia muuten itse teit tuohon koodiin?*

        Lähinnä ettei logita noticeja, ilmoittaa vakavista virheistä SMS viestillä emailin lisäksi, yrittää uudestaan muutaman kertaan tietokantaan ennenkuin ilmoittaa tietokantaongelmista sekä yrittää korjata automaattisesti tauluja jos vikaantuu, debuggaus ominaisuuden, sekä kertoo käyttäjälle pientä informaatiota virheestä. Noiden lisäks pientä pikkusäätöä. Aika pieniä muutoksia loppujenlopus.

        Eikö toi Debuggaus ominaisuus ja Error Handling ole sitten automaattisesti päällä PHP 5:ssa? Pärjääkö ilman noita ominaisuuksia? (Käyttö: websivun teko)


        "Tai sit voi laittaa scriptin alkuun ini_set('display_errors', 0); joka estää errorien näkymisen kävijälle tai .htaccess tiedostoon php_value display_errors off."

        Pääseekö tohon .htaccess tiedostoon edes textieditorilla käsiksi vai muutetaanko sitä vain noilla stripteillä? Onko noissa PHP.ini'ssä ja .htaccess'ssa periaatteessa samat tiedot eli ne toimii rinnan, kun voi saman asian hoitaa molempien tiedostojen kautta?!


      • -----
        = )Ö kirjoitti:

        Eikö toi Debuggaus ominaisuus ja Error Handling ole sitten automaattisesti päällä PHP 5:ssa? Pärjääkö ilman noita ominaisuuksia? (Käyttö: websivun teko)


        "Tai sit voi laittaa scriptin alkuun ini_set('display_errors', 0); joka estää errorien näkymisen kävijälle tai .htaccess tiedostoon php_value display_errors off."

        Pääseekö tohon .htaccess tiedostoon edes textieditorilla käsiksi vai muutetaanko sitä vain noilla stripteillä? Onko noissa PHP.ini'ssä ja .htaccess'ssa periaatteessa samat tiedot eli ne toimii rinnan, kun voi saman asian hoitaa molempien tiedostojen kautta?!

        *Eikö toi Debuggaus ominaisuus ja Error Handling ole sitten automaattisesti päällä PHP 5:ssa?*

        On (tai ei riippuu miten tän haluaa käsittää), mutta haluan käyttää omaa tekelettä tällöin pystyy itse päättää tarkalleen mitä haluaa.

        Debuggauksella tarkoitin, että kun kirjaantuu admin tunnuksilla sivuille niin halutessa saa virheet ja muuta tärkeellistä tietoa kuten tietokanta kyselyt näkyville. PHP:n omassa toteutuksessahan moinen ei onnistu.

        Tietenkin ini_set avulla vois määritellä adminille virheet näkyviin jne... Mutta mielestäni on helpompaa kun kaik on samassa paikkaa tällöin tarvittavat muutokset on helppo tehdä. Sekä ennenkaikkea tuota omaa tekemää erroreiden hallintaa voi käyttää suoraan sellaisenaan muissakin sivu projekteissa.


        Tottahan toki ilman noita hienouksia pärjää, kaikki riippuu mitä sinä vaadit. Aluksi voit käyttää vaikkapa sitä esimerkkiä melkein sellaisenaan mikä tallentaa ja mailaa virheet jos tarvetta niin lisäilet siihen pikkihiljaa ominaisuuksia mitä tarttet. Turhaa laittaa mitään ominaisuuksia mille ei itsellä ole mitään tarvetta.



        *Pääseekö tohon .htaccess tiedostoon edes textieditorilla käsiksi vai muutetaanko sitä vain noilla stripteillä?*

        Pääsee toki. Tuo nimi tuottaa joillekkin editoreille vaikeuksia tallentaessa. Esim muistiossa tiedoston nimeksi tallennusvaiheessa pitää laittaa ".htaccess" muutoin muistio saattaa tallentaa .htaccess.txt joka ei tietenkään toimi.

        Teet tuon tiedoston vaik muistiol ja laitat siihen halutut tiedot ja sitten vain siirrät sen normaalisti palvelimelle. Määrätyt asetukset koskevat sitten myös alikansioitakin.


        *Onko noissa PHP.ini'ssä ja .htaccess'ssa periaatteessa samat tiedot eli ne toimii rinnan, kun voi saman asian hoitaa molempien tiedostojen kautta?!*

        Periaatteessa kyl, php.ini'ssä määrätään oletusarvot tarvittaessa niitä voi muuttaa .htaccess'ssa. Tosin ei ihan kaikkia asetuksia, kuten palvelimen turvallisuuteen ja tehokkuuteen vaikuttavia. Ei mitään pelkoa et vahingossa niitä muuttaisit, koska se ei onnistu.


      • = )Ö
        ----- kirjoitti:

        *Eikö toi Debuggaus ominaisuus ja Error Handling ole sitten automaattisesti päällä PHP 5:ssa?*

        On (tai ei riippuu miten tän haluaa käsittää), mutta haluan käyttää omaa tekelettä tällöin pystyy itse päättää tarkalleen mitä haluaa.

        Debuggauksella tarkoitin, että kun kirjaantuu admin tunnuksilla sivuille niin halutessa saa virheet ja muuta tärkeellistä tietoa kuten tietokanta kyselyt näkyville. PHP:n omassa toteutuksessahan moinen ei onnistu.

        Tietenkin ini_set avulla vois määritellä adminille virheet näkyviin jne... Mutta mielestäni on helpompaa kun kaik on samassa paikkaa tällöin tarvittavat muutokset on helppo tehdä. Sekä ennenkaikkea tuota omaa tekemää erroreiden hallintaa voi käyttää suoraan sellaisenaan muissakin sivu projekteissa.


        Tottahan toki ilman noita hienouksia pärjää, kaikki riippuu mitä sinä vaadit. Aluksi voit käyttää vaikkapa sitä esimerkkiä melkein sellaisenaan mikä tallentaa ja mailaa virheet jos tarvetta niin lisäilet siihen pikkihiljaa ominaisuuksia mitä tarttet. Turhaa laittaa mitään ominaisuuksia mille ei itsellä ole mitään tarvetta.



        *Pääseekö tohon .htaccess tiedostoon edes textieditorilla käsiksi vai muutetaanko sitä vain noilla stripteillä?*

        Pääsee toki. Tuo nimi tuottaa joillekkin editoreille vaikeuksia tallentaessa. Esim muistiossa tiedoston nimeksi tallennusvaiheessa pitää laittaa ".htaccess" muutoin muistio saattaa tallentaa .htaccess.txt joka ei tietenkään toimi.

        Teet tuon tiedoston vaik muistiol ja laitat siihen halutut tiedot ja sitten vain siirrät sen normaalisti palvelimelle. Määrätyt asetukset koskevat sitten myös alikansioitakin.


        *Onko noissa PHP.ini'ssä ja .htaccess'ssa periaatteessa samat tiedot eli ne toimii rinnan, kun voi saman asian hoitaa molempien tiedostojen kautta?!*

        Periaatteessa kyl, php.ini'ssä määrätään oletusarvot tarvittaessa niitä voi muuttaa .htaccess'ssa. Tosin ei ihan kaikkia asetuksia, kuten palvelimen turvallisuuteen ja tehokkuuteen vaikuttavia. Ei mitään pelkoa et vahingossa niitä muuttaisit, koska se ei onnistu.

        "Tietenkin ini_set avulla vois määritellä adminille virheet näkyviin jne... Mutta mielestäni on helpompaa kun kaik on samassa paikkaa--"

        Täysin samaa mieltä! :) Kiitos kaikesta avusta!

        Ps: Onko muuten mahdollista nähdä se sun stripti? :P Olis kiva lukasta. Anyway, keep on rocking & have a nice Summer!


    • vaikean kautta

      Kun voi helpommallakin päästä elikkäs, itse juuri koitin ja rivinvaihdon voi tehdä muuntujaksi: $rivinvaihto = ""; echo "rivin $rivinvaihto vaihto"; Näkyisi HTML koodissa: " rivin vaihto " Lithi@ www.lithinkorneri.net

      • tuohon

        eikä siitä näemmä edes tarvitse tehdä muuntujaa, riittää ihan "" tekstin sisällä


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Katso: Ohhoh! Miina Äkkijyrkkä sai käskyn lähteä pois Farmi-kuvauksista -Kommentoi asiaa: "En ole.."

      Tämä oli shokkiyllätys. Oliko tässä kyse tosiaan siitä, että Äkkijyrkkä sanoi asioita suoraan vai mistä.... Tsemppiä, Mi
      Tv-sarjat
      155
      6469
    2. Voi kun mies rapsuttaisit mua sieltä

      Saisit myös sormiisi ihanan tuoksukasta rakkauden mahlaa.👄
      Ikävä
      34
      3888
    3. Poliisiauto Omasp:n edessä parkissa

      Poliisiauto oli parkissa monta tuntia Seinäjoen konttorin edessä tänään. Haettiinko joku tai jotain pankista tutkittavak
      Seinäjoki
      25
      2005
    4. Haluan jutella kanssasi Nainen

      Olisiko jo aika tavata ja avata tunteemme...On niin paljon asioita joihin molemmat ehkä haluaisimme saada vastaukset...O
      Ikävä
      18
      1969
    5. Onko mies niin,

      että sinulle ei riitä yksi nainen? Minulle suhde tarkoittaa sitoutumista, tosin eihän se vankila saa olla kummallekaan.
      Tunteet
      27
      1799
    6. Voitasko leikkiä jotain tunnisteleikkiä?

      Tietäisi ketä täällä käy kaipaamassa.. kerro jotain mikä liittyy sinuun ja häneen eikä muut tiedä. Vastaan itsekin kohta
      Ikävä
      77
      1646
    7. Tietysti jokainen ansaitsee

      Hän varmasti ansaitsee vain parasta ja sopivinta tietenkin, suon sen onnen hänelle enemmän kuin mielelläni. Aika on nyt
      Ikävä
      17
      1553
    8. Armi Aavikko Malmin hautausmaa

      Haudattiinko Armi arkussa Malmin hautausmaalle vai tuhkattiinko hänet? Kuka tietää asiasta oikein?
      Kotimaiset julkkisjuorut
      27
      1508
    9. Haluisin suudella ja huokailla

      ja purra kaulaasi ja rakastella sinua. Haluisin puristella rintojasi ja pakaroitasi. Ei sinulla taida olla kuitenkaan ni
      Ikävä
      19
      1499
    10. Miksi näin?

      Miksi vihervassut haluaa maahan porukkaa jonka pyhä kirja kieltää sopeutumisen vääräuskoisten keskuuteen? Näin kotoutumi
      Maailman menoa
      35
      1380
    Aihe