Mitä eroa on Kympin ja koti.mbnetin kotisivutiloissa? Toimiiko samat soodit molemmissa?
cookies
Rane
15411
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 15
Vanhimmat
En tiedä kympin asetuksista, mutta oikein tehty koodi, toimii missä tahansa palvelimella. Katsoppas phpinfo(); se kertoo mitkä asetukset palvelimella on.
Oletkos muuten katsonut koodista, onko siinä käytetty vanhaa tapaa viitata evästeisiin ja muihikin muuttujiin, jos on, niin register_globall = off tekee scriptistä toimimattoman. Tämä asetus on suositus nykyään. Toi asetus voi aiheuttaa sinun ongelmasi.
ennen
if ($keksi == 'juu') ....
nykyään
if ($_COOKIE['keksi'] == 'juu')
Jos koodissa vanha tapa, niin $keksi muuttuja ei saa ikinä arvoa, jolloin keksin tarkistus ei onnistu.
Laiska ihminen korjaa ton
$keksi = $_COOKIE['keksi'];
Tässä cookiesiin liittyvät koodipätkät:
.
.
.
if($_COOKIE[galluppi] == "voted"){
$size = "9"; // jos ollaan äänestetty, eli katsotaan vastauksia
}else{
$size = "12"; // jos taas ollaan klikkaamassa äänestyslinkkiä...
}
.
.
.
if($_COOKIE[galluppi] == "voted"){ // jos ollaan äänestetty, tulostetaan gallupin vastaukset
$colspan = " colspan='2'";
.
.
.
if($k != "" && $v != "" && $_COOKIE[galluppi] != "voted"){
$vasa = explode("~¦~", $filu[$k]);
.
.
.
setcookie("galluppi", "voted", time() 604800, "/"); // keksi jottei voi äänestää uudestaan aivan heti...
header("location: galmo.php"); // mennään katsomaan tulokset!
}
ob_end_flush();
?>
Äkkivilkaisulla noi näyttäisi ihan hyviltä, joskin se kuuluisi $_COOKIE['galluppi'] tosin scriptin toimintaan tolla ei ole vaikutusta, mutta saat huomautuksen asiasta, mikäli ne ei ole PHP:n asetuksissa estetty.
Tutkailin tota koodia ohjelmistoputkassa, niin näyttäisi olevan tehty aikaan jolloin oletuksena register_global=on
Oletko ihan varma, että ääni tallentuu?
Oma arvaukseni on, ettei tallennu, etkä edes saa keksiäkään.
echo "";
print_r($_COOKIE);
echo "";
Kirjoitappas noin tiedoston alkuun, niin saat selville mitä kaikkea keksissä on, jos on mitään.
Kokeile myös kirjoittaa alkuun
$k = $_GET['k'];
$v = $_GET['v'];
$PHP_SELF = $_SERVER['PHP_SELF'];
Sillä jos k ja v muuttuja ei saa arvoja johtuen tosta register asetuksesta, niin ikinä alla oleva ehtolause ei toteudu joten et saa keksiäkään
if($k != "" && $v != "" && $_COOKIE[galluppi] !=.....
Noi lisäykset kirjoitetaan tagien sisään
-Täällä voi äänestää:
http://users.kymp.net/p407445a/galmo.php
-Ja admin osioon tulee ääni
http://users.kymp.net/p407445a/galmo-admin.php
-Mutta äänestyt palkit jää tulematta
--------80%
--20%
Täällä siis äänestät ja saat palkit eteen
-http://mbnet.fi/winuus/galmo.php
Tänne ääni tulee
-http://mbnet.fi/winuus/galmo-admin.php
Näyttäisi siltä, että koodi toimisi, mutta jostain syystä ei lähetä keksiä. Taas mbnetillä tulee keksi kun on äänestänyt.
Kokeileppas ihan näin
testi.php
Kun päivität sivua (selaimen päivitä napilla), niin pitäisi saada keksille arvo, jos ei toimi niin kokeileppas
testi.php
Tässä on tämä:
http://users.kymp.net/p407445a/testi.php
Tässä on taas tämä:
Hyvin noista esimerkeistä ylin ja alin toimii. Esimerkkin jälkeen kokeilin käydä tolla galluppi sivulla, niin se näytti tuloksen kuten kuuluukin, joten scriptissä on jotain vikaa.
Koitas korvata scriptin setcookie..... tolla ylimmällä (siinä on pieni ero scriptissä olevaan), ja kokeile sitten. Katso myös ettei rivin alussa ole // merkkiä, se tekee rivistä kommentin, jolloin ei tietenkään lähetetä keksiä. Sekä se setcookie on omalla rivillä.
Ei toimi!
Voisiko hakemistorakenne vaikuttaa? Kuten tämä kohta:
header("location: galmo.php");
Entä tämä kohta koodissa, voiko siinä olla mitään ihmeellistä?:
.
.
.
else{
$va = $s;
$ky = $date;
$vastaus = "$osa[0]"; // jos ei olla äänestetty, tulostetaan vastaus-vaihtoehdot
}
.
.
.
Ei voi, jos hakemisto rakenne olisi väärä, niin saisit joko virheilmoituksia tai pelkkää valkoista tai sivua ei löydy ilmoitukset.
Eipä tuossa alemmassakaan mitään ihmeellistä ole mikä pitäisi toimintaa haitata, vaikka onkin käytetty vanhaa tapaa.....
testi.php
Vaikka eihän ton ob.... jutun pitäisi mitään vaikuttaa lähetetäänkö keksejä vai ei.
Jotenkin tuntuu, että ratkaisua etitään liian kaukaanta, ja vika on pienenpieni moka jossain.
Tarjoaakos toi galluppi jotain erikois ominaisuuksia? vai löytyiskös toimiva vaikkapa http://hotscripts.com/PHP/Scripts_and_Programs/Polls_and_Voting/index.html
Alkuperäinen koodi näyttää toimivan, joten oon kai jotenkin hölmöily sinne nykyiseen (ei toimivaan koodiin) jotakin ylinmääräistä. Pitää viel jaksaa verrata joskus et mitä ylinmääräistä oon laittanut siihen nykyiseen koodiin. Ilmoittelen sit tänne et mikä oli lopullinen virhe. Ainakin tuli opeteltuu jotakin kekseihin liittyvää.
Sain rajattua viallisen koodin pätkän mut en vielläkään tajua mikä on vialla?
Tässä viallinen koodi:
IMG#p {background:#44a044}
IMG#n {background:#000000}
IMG#p {background:#33CCFF}
IMG#n {background:#336699}
Vika on siinä, kun tulostat ennen bufferin (ob_start) aloitusta jotain.
Keksit lähetetään sivun headerin mukana joten niitten täytyy olla koodissa ihan ensinmäisenä, ennen mitään tulostusta. Tai sitten käytetään tota PHP:n buffer ominaisuutta, jolloin PHP-tulkki suorittaa koodin ja sitten lisää headerit ja keksien lähetyksen ensinmäiseksi. Tämä ei onnistu, koska olet jo bufferin aloitusta ennen tulostanut jotain.
Laitappas ihan ensinmäiseksi.
sitten tarvittavat jutut.
Hyvä, ettet antanut periksi, noin sitä oppii.
Vielä pikkuinen huomautus, HTML-koodisi on virheellinen.
Puuttuu head osio
Suljet bodyn sivun alussa, tämä pitää tehdä sivun lopussa, samoin html suljetaan myös sivun lopussa. Joten laitappas ne PHP-koodin jälkeen. Eipä mikään selain kai tohon sekoaisi, mutta koodin on hyvä olla standartien mukaan, koska selaimet on tehty tulkkaamaan standartien mukaista koodia.
Tämä auttoi:
Laitappas ihan ensinmäiseksi.
sitten tarvittavat jutut.
Kumma kun koti.mbnetissä toimii, vaikka alussa onkin jotakin "sitten tarvittavat jutut" koodia?
No nyt ainakin vika saatii selvitettyä, et kiitoksia paljon.
Ilmeisesti Kympin asetuksissa jotain toisin, kyllä se näyttäisi noin toimivan testipalvelimellanikin.
Tosin sivun alkuun toi kannattanee silti laittaa jos sitä koodissaan tarttee. Mbnetissä toi ilmeisesti toimisi sitten ilman tota bufferiakin, jolloin saataisiin nopeutta muutama nanosekuntti lisää :)