Elikkä asensin tässä lähiaikoina apachen ja php:n. Nyt kuitenkin kun katson sivuja, osa php-koodista näkyy itse sivulla, osa ei. Mikähän voisi olla ongelmana?
Joo mulla on sama onkelma mut luulisin ettet ole configurannu niitä elikkä tsekaas tuolta helppiä :
# And for PHP 4.x, use:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
tollaset rivit pitäis löytyä, mutta siin tiedostossa ei oo tommosia rivejä!?
https://www.ohjelmointiputka.net/oppaat/opas.
lainaus:
Elikkä asensin tässä lähiaikoina apachen ja php:n. Nyt kuitenkin kun katson sivuja, osa php-koodista näkyy itse sivulla, osa ei. Mikähän voisi olla ongelmana?
Jos vain osa PHP-koodista näkyy sivulla ja osa ei niin todennäköisesti itse koodissa on jotain vikaa. Minkälaisella sivulla tuollainen ongelma oikein tulee?
Ja kannattaa myös tutustua Abyss Web Serveriinkin. Erittäin pienikokoinen (n. 80 kt) Windows/Linux palvelin, jossa kaikki asetukset (kuten PHP:n asennus) tehdään selaimen kautta: http://www.aprelium.com
lainaus:
https://www.ohjelmointiputka.net/oppaat/opas.
php?tunnus=a_php löytyypi ohjeet PHP-tulkin asentamiseen Apache:en.
ohjeitten mukaan sen asensin, mutta siellä httpd.conf tiedostossa ei edes lue missään "php".
lainaus:
Minkälaisella sivulla tuollainen ongelma oikein tulee?
kaikilla millä on php:tä
oho
Koitin abyss web serveriä, samat ongelmat. HTML dokumentit toimii jotenka vika on ehkä PHP:ssä?
Itsellä oli sama ongelma aluksi kun käytin Apache v1.3.26, vaihdoin Apachen sitten v1.3.22:seen ja siinä oli nämä seuraavat rivit.
# And for PHP 4.x, use:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
Sen jälkeen loppu sujui leikiten =)
lainaus:
Koitin abyss web serveriä, samat ongelmat. HTML dokumentit toimii jotenka vika on ehkä PHP:ssä?
Näkyykö ne kaikki PHP-koodit nyt sivulla vai vain osa niinkuin aluksi kerroit? Jos kaikki näkyy, niin sitten PHP-tulkkia ei ole asennettu oikein.
Osa näkyy.
Sain homman nyt kuntoon, kiitos Pazin, mutta nyt keksien tallennus ei onnaa!?
Osa näkyy.
Sain homman nyt kuntoon, kiitos Pazin, mutta nyt keksien tallennus ei onnaa!?
lainaus:
mutta nyt keksien tallennus ei onnaa!?
Jos vähän tarkemmin kertoisit... Minkälaisella koodilla olet evästeitä yrittänyt tallentaa?
Tälläsel: setcookie ("nimi",$nimi,time()+1000000);
MBnetissä toimii hyvin.
lainaus:
Tälläsel: setcookie ("nimi",$nimi,time()+1000000);
MBnetissä toimii hyvin.
Ihan oikein tuo setcookie on. Jos tuo kerran MBnet:ssä toimii niin kyllä sen pitäisi omalla serverilläsikin toimia. Tuleeko tuosta jokin virheilmoitus vai eikö "nimi" evästeeseen tallennu $nimi muuttujan sisältöä?
Olisiko mahdollista saada hieman laajempaa listausta koodista, jolla tuon evästeen asetuksen teet? Ja vielä, että onko käytössäsi nyt sitten Apache v1.2.22 ja PHP-tulkin versio on mikä?
Koko evästettä ei edes luoda.
Apache v. 1.3.22, PHP 4.2.3
Kun en jaksa kirjoittaa uudestaan:
lainaus:
Olisiko mahdollista saada hieman laajempaa listausta koodista, jolla tuon evästeen asetuksen teet?
Kokeile nyt tehdä tämä listaus joka löytyy Ohjelmointiputkan PHP FAQ:sta ja kerro mitä se tulostaa sivulle:
<?php $nimi = "TestiEvaste"; $sisalto = "Tämä teksti tallennetaan evästeeseen"; $voimassa = 3600; // Asetetaan eväste joka on voimassa tästä hetkestä // lähtien 3600 sekuntia = 1 tunti setcookie ($nimi, $sisalto, time() + $voimassa); echo "Evästeen sisältö: " . $_COOKIE['TestiEvaste']; ?>
Nyt se valittaa:
Warning: Cannot add header information - headers already sent by (output started at c:\palvelin\evaste.php:5) in c:\palvelin\evaste.php on line 12
Evästeen sisältö:
lainaus:
Warning: Cannot add header information - headers already sent by (output started at c:\palvelin\evaste.php:5) in c:\palvelin\evaste.php on line 12
No joo, tuli aikamoinen ajatuskatkos esimerkkiä kirjoittaessani näköjään. Eli teekin kaksi php-tiedostoa vaikka evaste1.php ja evaste2.php joista evaste1.php laitat:
<?php $nimi = "TestiEvaste"; $sisalto = "Tämä teksti tallennetaan evästeeseen"; $voimassa = 3600; // Asetetaan eväste joka on voimassa tästä hetkestä // lähtien 3600 sekuntia = 1 tunti setcookie ($nimi, $sisalto, time() + $voimassa); header("Location: evaste2.php"); ?>
ja evaste2.php:
<?php echo "Evästeen sisältö: " . $_COOKIE['TestiEvaste']; ?>
Mikäli nyt evästeen sisältö on tyhjä eikä setcookie() funktiosta tule mitään virheilmoitusta tai muuta niin sitten on jotain pahasti vialla.
Warning: Cannot add header information - headers already sent by (output started at c:\palvelin\evaste1.php:3) in c:\palvelin\evaste1.php on line 10
Warning: Cannot add header information - headers already sent by (output started at c:\palvelin\evaste1.php:3) in c:\palvelin\evaste1.php on line 12
Jahas, nyt en osaa enää sanoa mikä on vialla. Minulla nuo evaste1.php ja evaste2.php toimivat ihan hyvin eikä virheilmoituksia tule (evaste2.php tulostaa oikein tekstin "Evästeen sisältö: Tämä teksti tallennetaan evästeeseen").
Käytössäni on siis Abyss Web Server v1.1 beta 2 ja PHP 4.2.1
Saisitko sen listauksen kokonaan tänne joka toimii MBnet:ssä mutta ei sinulla omalla palvelimellasi?
Tumpi: tallensitko nuo trinitin antamat tiedostot tuollaisenaan, vai laitoitko jotain roskaa(html..) niiden alkuun/loppuun?
Tarkemman tutkiskelun jälkeen: Minulla nuo toimii ihan hyvin, mutta jos lisään evaste1.php-tiedostoon html-tageja, saan täsmälleen samat virheilmoitukset kuin Tumpi.
lainaus:
Tarkemman tutkiskelun jälkeen: Minulla nuo toimii ihan hyvin, mutta jos lisään evaste1.php-tiedostoon html-tageja, saan täsmälleen samat virheilmoitukset kuin Tumpi.
Aivan, setcookie() funktiota ennen ei saa olla mitään tageja tai tekstiä tulostettuna sivulle. Tumpi, tiedostoissa EI saa olla mitään muuta tekstiä kuin nuo <?php ja ?> tagien välissä olevat rivit. Muuten tulee tuo "Cannot add header information" varoitus.
Nyt se kyllä tallensi evästeen. Voisko aiempaan vaikuttaa se ettei siinä ollu mitään header("Location: evaste2.php"); -hommaa?
header("Location: ...") vain ohjaa jollekin sivulle, sen ei pitäisi aiheuttaa noita varoituksia. Lisäinfoa tuosta löytyy PHP Manualista ja FAQ:sta kun ehdin kirjoittamaan siitä sinne ;)
Kuitenkin, jätit siis header():n pois evaste1.php:sta vaikka se esimerkissäni siellä oli? Esimerkit piti testata niin, että ajamalla evaste1.php:n se asettaa evästeen ja header():lla siirtyy automaattisesti evaste2.php:hen joka näyttää mitä sinne evästeeseen tallennettiin. Eniten vain ihmetyttää nuo varoitukset joita sait. Eli kirjoititko niihin .php tiedostoihin jotain muutakin kuin pelkästään nuo rivit mitä olin kirjoittanut?
Ainakin "(output started at c:\palvelin\evaste1.php:3)" viittaisi siihen että ennen <?php tagia on jotain muutakuin PHP-koodia. Olinko oikeassa?
lainaus:
Olinko oikeassa?
Juuh olit, tarkoitin "aiemmalla" sitä "Tälläsel: setcookie ("nimi",$nimi,time()+1000000);".
Nyt kun keksit varmaan toimii, ois vielä yksi ongelma.
Kun koitan apachella esim. sivujeni ( http://koti.mbnet.fi/tumpi ) peelokääntäjää niin se ei toimi. Mikä vois olla vialla?
Vika on sinussa. Ja apua on täältä turha odotella kun kysymys on tuota luokkaa. Hieman selitystä, kiitos.
Ja muutenkin peelokääntäjä on turha kuin mikä :x
lainaus:
Kun koitan apachella esim. sivujeni ( http://koti.mbnet.fi/tumpi ) peelokääntäjää niin se ei toimi. Mikä vois olla vialla?
Jaa, se vika voisi olla vaikka siinä rivillä 12 olevassa if-lauseessa...
Ei, ei tällaisia kysymyksiä enää. Miten tuosta voi kukaan antaa neuvoja kun on noin laaja "Mikä vois olla vialla?" kysymys. Jos Antti L. lukee tätä, niin Ohjelmointiputkan FAQ-osioon voisi pistää kohdan "Miten kysyn apua keskustelualueelta?" tjsp.
1. Oletko kokeillut Apachea ja PHP:n toimintaa jollain testi-skriptillä jotta tiedät että ne toimivat?
2. Peelokääntäjän lähdekoodi olisi hyvä nähdä jotta tietäisi miten se on loppujen lopuksi on tehty
3. Tuleeko jotain PHP-tulkin ilmoituksia kenties, vai tapahtuuko jotain muuta?
4. Kopioi PHP Manual omalle koneellesi opettelua varten
5. Seuraavan kerran kun kysyt jotain, kirjoita mahdollisimman tarkasti kaikki asiat.
lainaus:
Jos Antti L. lukee tätä, niin Ohjelmointiputkan FAQ-osioon voisi pistää kohdan "Miten kysyn apua keskustelualueelta?" tjsp.
Nyt FAQ-listassa on kohta "Miten kysyn keskustelussa?", https://www.ohjelmointiputka.net/faq.php#20
Siis ongelma peelokääntäjässä on lähinnä ettei muuttujien arvot säily kun ne lähetetään lomakkeella toiselle sivulle.
Sinulla on varmaan omalla koneellasi uusi PHP, jossa lomakkeen arvot eivät ole suoraan muuttujina, vaan ne löytyvät $_GET- ja $_POST-taulukoista. Esimerkiksi POST:illa lähetetty muuttuja testi löytyisi taulukosta näin:
$_POST["testi"]
Pistinpä noista superglobaaleista taulukoistakin FAQ:hun yhden kysymys/vastaus parin: https://www.ohjelmointiputka.net/faq.php?sivu=3
Aihe on jo aika vanha, joten et voi enää vastata siihen.