Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: Marbo - 03.05.07 - klo:21.53
-
Elikkäs olen tässä koodaillu vähän ja yrittäny saada puoliksi omatekemää shutboxia toimimaan. Mutta ei toimi. Valittaa alla olevaa.
Warning: fopen(viestit/viestit.dat) [function.fopen]: failed to open stream: No such file or directory in /var/www/kirjaudu/admin_etu.php on line 108
Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/kirjaudu/admin_etu.php on line 108
Olen yrittäny kattoo et missä vika mut en löydä, osaiskos joku fiksumpi auttaa?
Ja koodi pätkä on seuraavanlainen:
if($_GET['sivu'] == "viesti" && $nu)
{
// Jos luo-nappia on painettu...
if($_POST['nu'])
{
$error_desc = "";
$nimi = $_POST['username'];
$viestit = $_POST['viestit'];
$add_to_nu = $_POST['nu'];
$tiedosto = "viestit/viestit.dat";
// Virheentarkistusta
if(empty($viestit))
$error_desc = "Kirjota nyt jotain!";
else
{
$nufile = "$tiedosto";
$error_desc = "Viesti lähetetty!";
if($add_to_nu)
{
$superuserfile = "$tiedosto";
if(fwrite(fopen($nufile,"+x"),"<b>$_POST[username]</b>: $_POST[viestit]<br> "))
$error_desc .= "Viesti lähetetty!";
else
$error_desc .= "Lähetys epäonnistui!";
}
}
}
$output .='<b>EI TOIMI VIELÄ!</b><br><br>';
$output .='<b>Lähetä viesti!</b><br><br>';
$output .= '<form action="index.php?sivu=viesti" method="post">
<table width="100px" cellpadding="2" border="0" class="v11">
<b>'.$error_desc.'</b>
<tr><td>Nimi:</td>
<td>'.$_SESSION['username'].'</td>
</tr><td>Viesti:</td>
<td><textarea name="viestit" rows="3" cols="24"></td>
</tr><td></td><td>
<input class="v11" name="nu" type="submit" value="Lähetä">
<input class="v11" name="reset" type="reset" value="Tyhjennä"></td></tr></table>
</form>';
}
Niin ja kyseessä on PHP..
-
Joo no sain sen sit heti toimimaan.. :p
Mutta olis vielä ongelma, että tuohon koodiin ei voi laittaa <?php include("viestit/viestit.dat") ?>
koska se ei sitten näytä sitä. :( Miten sen saisi näkymään tuohon sivuun, että saisin näkyviin mitä viestejä on kirjoiteltu. :)
-
<?php
$f=fopen("viestit/viestit.dat","r");
print fread($f,sizeof("viestit/viestit.dat"));
fclose($f);
?>
Noin pokkana heitän lukematta ohjeita, joten jos ei toimi, niin kysyppäs uudelleen, niin lukaisen vähän ohjeitakin.
Ehjeista kannattaa lukea seuraavat:
fopen
fread
fclose
-
Eipäs tulostanu tolla.. :( Ei näy mitään.
-
<?php
$f=fopen("viestit/viestit.dat","r");
print fread($f,sizeof("viestit/viestit.dat"));
fclose($f);
?>
Tuon sizeof() funktion tilalle voisi laittaa strlen(), itsellä se toimi paremmin.
Kyllä itse kun phpllä testasin niin tuon pitäisi toimia.
-
Tuolla PHP:n manuskassa on yllättäen käytännössä suoraan hyödynnettävissä oleva esimerkki:
http://fi.php.net/manual/en/function.fread.php (http://fi.php.net/manual/en/function.fread.php)
Tuon sizeof() funktion tilalle voisi laittaa strlen(), itsellä se toimi paremmin.
Kyllä itse kun phpllä testasin niin tuon pitäisi toimia.
Minkähän mittaista tiedostoa olet lukenut, strlen-funktio kun palauttaa parametrina annetun merkkijonon pituuden, eikä siis tiedoston kokoa. Oikea funktio tuohon on siis filesize, sizeof vastaavasti on funktion count alias...
RTFM ;)
-
No niimpäs näyttää.. :-[
Sattui juuri tiedoston nimi olemaan saman pituinen kuin teksti sisällä niin näkyi samana..