Eli, olen tehnyt admin-osion, josta voi lisätä, muokata, poistaa tai tyhjentää uutisia. Mutta kun sivun avaa, tulee tällanen ilmotus:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/orjantap/public_html/thugeweb/images/
Parse error: parse error, unexpected T_STRING in /home/orjantap/public_html/thugeweb/images/
Eli mikä neuvoksi? Tota ei löydy edes Blazen "Liian usein kysytyistä kysymyksistäkään"..
Aloita vaikka kopioimalla koodisi tänne, niin virheen etsiminen helpoittuu.
sieltä jostain puuttuu joitain merkkejä. tai sitten niitä on liikaa. katso itse
Veikkaisin, että sieltä puuttuu {tai}(aaltosulku) riviltä 34, tai sitten sieltä puuttuu ;
Mutta laita se koodi, niin voimme auttaa paremmin...
Rivillä 34 on tällanen koodi:
$line = "$paivamaara|$uutinen\n";
Pistä se koodi tänne niin helpompi katsoa. Virhe voi olla myös 33 rivillä.
33-rivi on tyhjä.
Laitahan nyt jo se koodi, se virhe voi olla vaikka rivillä 3 jos sulla on siinä välissä tyhjää.
OK.
<html> <head> <title>tNews 1.0 admin area</title> </head> <body> <br><br> <br><?php @session_start(); $passwordi = "admin"; // SALASANA // ÄLÄ koske loppuosaan! if(isset($password)) { session_register('passu'); $_SESSION['passu'] = $password; session_register('ip'); $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; @header("Location: $PHP_SELF"); } if($_SESSION['passu'] == $passwordi) { ?> <html> <head> <title>tNews 1.0 Admin area</title> </head> <body> <br><br>| tNews Admin area |<br><br>Lisää uutinen:<br><?php $paivamaara = $_POST['paivamaara']; $uutinen = $_POST['uutinen']; $paivamaara = date("d.m.Y"); $uutinen = stripslashes($uutinen); $uutinen = htmlspecialchars($uutinen); $uutinen = str_replace("\n", "<br>", $uutinen); $line = "$paivamaara|$uutinen\n"; $f = fopen("news.txt", "a"); fwrite($f, $line); fclose($f); ?> <br><form action="admin.php" method="post"><br><input type=hidden name="paivamaara" value="<?php print($paivamaara); ?>"><br><br> <b>Uutinen</b><br><input type=text name="uutinen"><br><input type=submit value="Tallenna"></form><br><hr><br>Uutisten muokkaus / tyhjennys<br><br><?php $filu = file("news.txt", "a"); $filu = array_reverse($filu); for($i = 0; $i < count($filu); $i++) { $tet2 = explode("|", $filu[$i], 2; $paivamaara = $det2[0]; $uutinen = $det2[1]; echo "<b>$paivamaara<br>$uutinen<br><br><a href='edit.php'>Muokkaa uutista / tyhjennä uutinen</a><hr><br> \n"; ?><br><br><a href="clear.php">Tyhjennä uutiset</a><br><a href="http://tjaa.no-ip.org/tscripts">Apu ja päivitykset</a><br><a href="news.php">Poistu adminpaneelista</a><br></body></html> <?php }else { print ' <form method="post" action="admin.php"> <b>Salasana</b><br> <input type="password" name="password" size="20"> <input type="submit" value="Kirjaudu"></form> '; } ?>
Eli tässä tämä koodi...
Virhe löytyy kylläkin riviltä 44:
$tet2 = explode("|", $filu[$i], 2;
Ja riviltä 52, joka valittaa kaarisulkeesta, eli laita tuon rivin 48 tulostuksen jälkeen yksi kaarisulje: }
Kiitos. Nyt tuo warning selvisi, mutta..Mitä mun pitäs ajatella explodesta? Musta se koodi näyttäis ihan oikealta..vai..?
Ota joku editori millä näet eri sulkeiden väliin jäävät alueet (haulla löytyy sen sata keskustelua), tuosta puuttuu funktiokutsun lopettava sulku.
thuge94 kirjoitti:
Mitä mun pitäs ajatella explodesta? Musta se koodi näyttäis ihan oikealta..vai..?
No huh-huh, olet tehnyt admin paneelin, muttet tiedä miten funktioita käytetään, vaikka olet käyttänyt niitä jo monessa eri kohtaa sinun koodissasi.
Ei kannata sanoa että "olen tehnyt", jos oikeasti olet vain kopioinut koodit ja liittänyt ne yhteen :)
Siis kuinka monta kertaa toi pitää sanoa, että en ole kopioinut mitään mistään!!!!
.. oisko tohon nyt uskomista :)
S.E.L.I.T.Ä!
Niin mikä tässä nyt oikein oli ongelma? Yhden omituisuuden ainakin huomasin, vaikken tajua ollenkaan, mitä tuon koodin pitäisi tehdä. Yrität nimittäin lukea tietoja det2-nimisestä taulukosta, vaikkei sen nimiseen taulukkoon ole laitettu aikaisemmin mitään. Tämä ei oikein tunnu järkevältä missään tapauksessa. Olet varmaan sekoittanut det2:n ja tet2:n.
>> $tet2 = explode("|", $filu[$i], 2; // ei sulkumerkkiä
>> $paivamaara = $det2[0]; // tet2 -> det2, wtf?
Jos tuossa ei mielestäsi ole mitään vikaa, suosittelen lukemaan sen php:n alkeet -oppaan uudestaan ennen kuin alat täällä kyselemään yhtään mitään.
$tet2=explode("|", $filu[$i], 2);
noin se menee, minuakin vähän kummastuttaa että miten et huomannut tuota erroria jos kerran itse olet osannut kirjoittaa koko jutun ;)
Huomasin sen jo..en ole sitä tänne kerennyt kirjoittamaan.. Sitä paitsi, eihän noihin warning ja parse error-ilmotuksiin voi luottaa, kun virhe on rivillä 34 ja väitetään mokan olleen 44. Okei.nyt sain tuon loppusulun ja korjasin pari muutakin pikkubugia, mutta eipähän muuttuneet miksikään noi ilmotukset.
Kokeiles muuttaa tuo rivin 34 rimpsu
$line = "$paivamaara|$uutinen\n";
muotoon
$line = $paivamaara . "|" . $uutinen . "\n";
Eipä auttanut tuokaan.
Googletin hieman ja ongelma saattaa olla siinä että esimerkiksi käyttämäsi FTP-softa muuttaa merkkejä matkalla. Katsele ohjelman asetuksista josko siellä olisi valinta tiedostojen siirtoon ASCII-moodissa. Itselläni tuo pätkä kun toimii moitteetta.
Siistin koodiasi:
<?php @session_start(); $passwordi = "admin"; // SALASANA //Elä koske loppuosaan! if(isset($password)) { session_register('passu'); $_SESSION['passu'] = $password; session_register('ip'); $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; } ?> <html> <head> <title>tNews 1.0 Admin area</title> </head> <body> <?php if($_SESSION['passu'] == $passwordi) { ?> <br><br>| tNews Admin area |<br><br>Lisää uutinen:<br> <?php $paivamaara = $_POST['paivamaara']; $uutinen = $_POST['uutinen']; $paivamaara = date("d.m.Y"); $uutinen = stripslashes($uutinen); $uutinen = htmlspecialchars($uutinen); $uutinen = str_replace("\n", "<br>", $uutinen); $line = "$paivamaara|$uutinen\n"; $f = fopen("news.txt", "a"); fwrite($f, $line); fclose($f); ?> <br> <form action="admin.php" method="post"><br> <input type="hidden" name="paivamaara" value="<?php print($paivamaara); ?>"><br><br> <b>Uutinen</b><br> <input type="text" name="uutinen"><br><input type="submit" value="Tallenna"> </form> <br><hr><br>Uutisten muokkaus / tyhjennys<br><br> <?php $filu = file("news.txt", "a"); $filu = array_reverse($filu); for($i = 0; $i < count($filu); $i++) { $tet2 = explode("|", $filu[$i], 2); $paivamaara = $det2[0]; $uutinen = $det2[1]; echo '<b>{$paivamaara}<br>{$uutinen}<br><br><a href="edit.php">Muokkaa uutista / tyhjennä uutinen</a><hr><br>'; ?> <br><br> <a href="clear.php">Tyhjennä uutiset</a><br> <a href="http://tjaa.no-ip.org/tscripts">Apu ja päivitykset</a><br> <a href="news.php">Poistu adminpaneelista</a><br> <?php } } else { ?> <form method="post" action="admin.php"> <b>Salasana</b><br> <input type="password" name="password" size="20"> <input type="submit" value="Kirjaudu"> </form> <?php } ?> </body></html>
Aihe on jo aika vanha, joten et voi enää vastata siihen.