Tein tälläsen kalenterin kotisivuille
<?php setlocale(LC_TIME, "fi_FI"); setlocale(LC_TIME, "fin"); if (!isset($_POST['kuukausi']) && !isset($_POST['vuosi'])) { $tamapaiva = getdate(); $kuukausi = $tamapaiva[mon]; $vuosi =$tamapaiva[year]; }else{ $kuukausi = $_POST['kuukausi']; $vuosi = $_POST['vuosi']; } $eka_paiva = mktime ( 0, 0, 0, $kuukausi, 1, $vuosi ); $kuukaudet = getdate($eka_paiva); ?> <html> <head> <title><?php echo strftime("%B",strtotime("$kuukausi/1"))."$vuosi"; ?></title> </head> <body> <form action = "<? echo $PHP_SELF ?>" method="post"> <select name="kuukausi"> <?php for ( $x=1; $x <= 12; $x++ ) { echo "\t<option value=\"$x\""; echo ($x == $kuukausi)?" SELECTED":""; echo ">".strftime("%B",strtotime("$x/1"))."\n"; } ?> </select> <select name="vuosi"> <?php for ( $u=2007; $u<2014; $u++ ) { echo "\t<option"; echo ($u == $vuosi)?" SELECTED":""; echo ">$u\n"; } ?> </select> <input type="submit" value="Ok"> </form> <p> <?php echo "<TABLE width='100' border='1' cellpadding='1' cellspacing='1'>\n"; echo "<th bgcolor='23238E' colspan='8' align='center'><font color='ADD8E6'>".strftime("%B",strtotime("$kuukausi/1"))."</font></th>\n"; echo "<tr>\n\t<td>vk</td>\n\t<td>ma</td>\n\t<td>ti</td>\n\t<td>ke</td>\n\t<td>to</td>\n\t<td>pe</td>\n\t<td>la</td>\n\t<td>su</td>\n</tr>\n"; for ($laskuri_viikot = 0; $laskuri_viikot < 6; $laskuri_viikot++) { $paiva = getdate($eka_paiva); $aika = strtotime("$paiva[mon]/$paiva[mday]/$paiva[year]"); if ($paiva[mon] != $kuukausi) break; echo "<tr>\n\t<td>".strftime("%V",$aika)."</td>\n"; for ($laskuri_paivat = 1; $laskuri_paivat < 8; $laskuri_paivat++) { $paiva = getdate($eka_paiva); $aika = strtotime("$paiva[mon]/$paiva[mday]/$paiva[year]"); if ($laskuri_paivat < strftime("%u",$aika) || $paiva[mon] != $kuukausi) echo "\t<td> </td>\n"; else { if ($paiva[mday] == date("j") && $kuukausi == date("n") && $vuosi == date("Y")) echo "\t<td bgcolor = '843243'>$paiva[mday]</td>\n"; else echo "\t<td>$paiva[mday]</td>\n"; $eka_paiva += (60*60*24); } } echo "</tr>\n"; } echo "</table>\n"; ?> </body> </html>
Kun avaan sivun omilla sivuilla tulee erroria jokaisesta mday, mon, year kohdasta. Taas kun koitin yhellä toisella sivuilla nii toimi ihan hyvin. Onko mulla PHP:s joku asetus väärin vai mistä johtuu noi errorit?
Taulukon indeksin pitäisi olla lainaus- tai heittomerkeissä: $paiva['mday']. Tekstin seassa lisäksi kannattaa virheiden välttämiseksi kirjoittaa muuttujat aaltosilkuihin: "<td>{$paiva['mday']}</td>". Jos esittämäsi koodi pääsee ilman virheitä läpi, palvelimella on luultavasti PHP:stä niin vanha versio, ettei se ymmärrä huomauttaa tuosta vaan korjaa ilman heittomerkkejä kirjoitetut tekstit automaattisesti.
Ensi kerralla voisit heti kättelyssä kertoa, millaisia virheitä aiheutuu, ettei tarvitse ruveta kaivamaan koodista. Tällä kertaa se tosin oli onneksi triviaalia.
no nyt toimii. Kiitoksia
Tuli täs kalenteris uus ongelma. Eli viikot ei tulostu ollenkaan, tulee vain tyhjä paikka niiden paikalle. Mistähän tää voi johtua? Ja miten sais korjattua?
Äkkiseltään tulisi mieleen, että se ei tykkäisi tästä
$aika = strtotime("$paiva[mon]/$paiva[mday]/$paiva[year]");
Eikä sen vuoksi osaisi tulostaa strftime("%V",$aika)
Tää juttu toimi tuol toisella serverillä täysin mut koitan muokata tota tosta kohtaa jotenkin.
Edit: Tutkin tota strftime-funktiota vähä ku ei muistanu enää miten se meni nii se päivämäärähän pitää antaa sille tos muodos. Päivätkää ei muute mee suomen-ajan mukaan vaan keskiviikko on jotain varte viikon ensimmäinen päivä mutta taas kuukaudet on aivan suomenkieliset.
No lähinnä epäilin samaa ongelmaa kuin jo korjasit toisaalta, eli ilman noita kaarisulkuja se ei välttämättä toimi. Voit toki tulostaa $aika -muuttujan sisällön, että näyttääkö se järkevältä.
$aika-muuttuja tulostaa aikaleiman. En tiedä kuuluuko tulostaa sitä??
Edit: Koitin laittaa tohon tilalle suoraan php:n sivuilta tän
poistin vain noi %G ja %Y mut ei tulosta mitään. Huomasin lisäksi viel et kun lähetän lomakkeella ton kuukauden ja vuoden nii se lähtee aivan jonnekin muualle kun tohon samaan osoitteeseen. Tos ei kai $PHP_SELF toimi? Ja onks tos toiseski ongelmas mulla joku vika php:n asetuksis?
Aihe on jo aika vanha, joten et voi enää vastata siihen.