Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: PHP-haaste, 1. tehtävä!

Sivun loppuun

fontaine [01.04.2012 20:16:29]

#

Mikähän ihme tässä nyt on, kun en saa tätä läpi?

Edes vinkistä kopioidulla skriptillä ei mene. Kun syötän parametrit osoiteriville, tulostus on mitä pitääkin. Silti tämmöistä pukkaa tarkistuksessa:

TESTI 1 ... VÄÄRIN

Syöte

a=1&b=1

Sinun ratkaisusi

0

Oikea ratkaisu

2

Teuro [01.04.2012 20:58:25]

#

Minkälaisella scriptillä yrität ratkaista haasteen tehtävää?

fontaine [01.04.2012 21:04:35]

#

No tämähän se.

<?php
$a = $_REQUEST['a'];
$b = $_REQUEST['b'];

echo $a + $b;
?>

Grez [01.04.2012 21:11:27]

#

Oletko kopioinut sen ihan tuollaisenaan, eli esim. kaikki pienet kirjaimet on pieniä myös siellä missä ratkaisusi pyörii.

Itsellä sanoi

PHP-haaste tarkistin kirjoitti:

Tarkistetaan tehtävä 1: Tervetuloa!

TESTI 1 ... OIKEIN
TESTI 2 ... OIKEIN
TESTI 3 ... OIKEIN
TESTI 4 ... OIKEIN
TESTI 5 ... OIKEIN
TESTI 6 ... OIKEIN
TESTI 7 ... OIKEIN
ONNITTELUT! Ratkaisusi hyväksyttiin!

Missä osoitteessa skriptisi on?

tla123 [01.04.2012 21:21:43]

#

.. e. ei mit.

jukkah [01.04.2012 21:23:41]

#

Oletko varma, että ratkaisun polku tarkistimessa on sama kuin skriptin osoite osoiterivillä ilman ?a=1&b=1-osaa, kun saat tulokseksi 2?

Grez [01.04.2012 21:24:26]

#

Sanoit, että syöttämällä parametrit osoiteriville toimii. Eli jos laitat tarkistimeen osoitteeksi {jotain} niin osoitteeseen {jotain}?a=7&b=8 menemällä saat selaimeen sivun jossa lukee 15 ?

fontaine [01.04.2012 21:30:19]

#

jukkah kirjoitti:

Oletko varma, että ratkaisun polku tarkistimessa on sama kuin skriptin osoite osoiterivillä ilman ?a=1&b=1-osaa, kun saat tulokseksi 2?

Tästä olikin kiinni. Olin käyttänyt polkuna http://palvelin.fi/ratk.php. Lisäsin www:n tuohon osoitteeseen.

Kiitos kaikille vastanneille.

Metabolix [01.04.2012 21:30:51]

#

Millähän ihmeen kikkailulla tuolla on toteutettu ohjaus osoitteesta ilman www:tä osoitteeseen www:n kanssa, jos kerran parametrit putoavat matkalla? O_o

fontaine [01.04.2012 21:32:57]

#

Metabolix kirjoitti:

Testasin syöttämääsi osoitetta sekä omalta koneeltani että Ohjelmointiputkan palvelimelta wgetillä, ja se näyttää toimivan oikein. Ajoin myös tarkistuskoodin palvelimella käsin, ja sekin toimi. En nyt keksi mitään syytä, miksi oikealla tarkistimella tulokseksi tulee "0". Keksiikö joku muu?

Juu, polku oli väärin. Osaatko sinä tai joku muu kertoa, miksi se ei toiminut ilman www:tä? :)

Metabolix [01.04.2012 21:54:46]

#

Muokkasinkin jo viestiäni, kun huomasin mokani. Poimin vain testeihini osoitteen www:n kanssa, kuten olit sen jossain vaiheessa kirjoittanut, mutta PHP-haasteen puolella taas satuin käyttämään osoitetta ilman www:tä.

Jos nyt on pakko veikata ongelman perimmäistä syytä, olettaisin, että uudelleenohjaus www-alkuiseen osoitteeseen on toteutettu käyttämälläsi palvelimella hieman väärin niin, että palvelin tekee sisäisesti GET-pyynnön oikeaan paikkaan eli POST-parametrit häviävät matkalla. Tämänhän voit tarkistaa helposti kokeilemalla seuraavaa skriptiä:

<?php
foreach (array("_GET", "_POST", "_SERVER") as $i) {
	echo $i, " = ", var_export($$i, 1), "\n";
}

jukkah [01.04.2012 22:09:49]

#

Metabolix kirjoitti:

palvelin tekee sisäisesti GET-pyynnön oikeaan paikkaan eli POST-parametrit häviävät matkalla.

Ei kai sen pitäisi vaikuttaa mitenkään GET-pyyntöön (vai käyttääkö tarkistin POSTia)? Erikoinen säätö kuitenkin, kun jotain jää välille. :)

Metabolix [01.04.2012 22:14:29]

#

jukkah kirjoitti:

Ei kai sen pitäisi vaikuttaa mitenkään GET-pyyntöön (vai käyttääkö tarkistin POSTia)?

Kyllä, tarkistin käyttää POSTia. Lukisit edes vähän rivien välistä.

Mutta taas kerran unohtui, että Putkassa on niin vanha PHP:n versio, ettei se tue follow_location-määrettä. >_> Uudelleenohjaus toimii siis aivan oikein. Myös PHP toimii yleisen tavan mukaisesti eli niin, että 302-vastauksen jälkeen uuteen osoitteeseen tehdään GET-pyyntö. Vanhentunut PHP ei vain kerro menneensä uudelleenohjauksen mukaan, joten tarkistin ei pysty näyttämään oikeaa virheilmoitusta. Pitäisiköhän tuohon kuitenkin tehdä oma socket-viritelmä...

Huh huh. Kyllä se ajantasainen palvelin säästäisi aika paljon vaivaa. :)

Grez [01.04.2012 22:45:43]

#

No mitä, eikö ne Louhella laita teille käyttöön uusimman PHP-version kun vaan pyytää? Ainakin kaikissa web-hotelleissa mitä itse olen käyttänyt on tarjolla ollut uusin (stable) PHP-versio, mutta sitä ei välttämättä oteta asiakkaille automaagisesti käyttöön, kun huonot koodit voi mennä rikki päivitettäessä.

jukkah [01.04.2012 22:55:14]

#

Metabolix kirjoitti:

Lukisit edes vähän rivien välistä.

Siitä on huonoja kokemuksia... Putkassa. ;)

Grez kirjoitti:

No mitä, eikö ne Louhella laita teille käyttöön uusimman PHP-version kun vaan pyytää?

Aika useasti on kuulunut kitinää hammasrattaasta.

[offtopic]Ettei vain asia ole (rivien välistä luettuna) niin, että Antin serkku on Louhella töissä (sitä varten ei voi vaihtaa muualle)?[/offtopic]


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta