Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Shoutboxiin aika ja päivämäärä?

Sivun loppuun

TeroSte [16.07.2008 13:18:32]

#

Tarkoituksena olisi ottaa tämä php "shoutboxi" käyttöön...
Ainoa huonopuoli on vain se, että tuo ei lisää minkäänlaista aikaa / päivämäärää milloin viesti on boxiin lähetetty...

joten voisiko joku iskeä mahdollisesti tähän koodiin jonkun koodinpätkän että saisin ajan ja päivämäärän viestin yhteyteen...

koodi löytyy täältä:
http://ts-sivut.com/tagger.txt

KIITOS! :)

Mod. edit: siirretty oikealle alueelle

vidar [16.07.2008 13:30:58]

#

Tossa tallennettaessa viestiä ja muita tietoja tiedostoon, tallenna mukaan myös timestamppi, jonka saa time():lla. Lukuvaiheessa sitä voi sitten muotoilla date():n kanssa.

TeroSte [16.07.2008 19:38:11]

#

...
Sori mutta et viitsisi vielä pistää vähän neuvoa (ehkä valmiin koodin), että mihin kohtaan pitää mitäkin laittaa...
Halusin sen saada jotenkin näyttämään:

Nimi 16.7. 13:30:
Viesti tähän alapuolelle.


- En tosiaankaan osaa PHP:tä...

punppis [17.07.2008 01:12:28]

#

Koitappa tätä koodia:

<?php
function getip(){
if($_SERVER){
  if($_SERVER["HTTP_X_FORWARDED_FOR"]){
    $rip = $_SERVER["HTTP_X_FORWARDED_FOR"];
  }elseif($_SERVER["HTTP_CLIENT_IP"]){
    $rip = $_SERVER["HTTP_CLIENT_IP"];
  }else{
    $rip = $_SERVER["REMOTE_ADDR"];
  }
}else{
  if(getenv("HTTP_X_FORWARDED_FOR")){
    $rip = getenv("HTTP_X_FORWARDED_FOR");
  }elseif (getenv("HTTP_CLIENT_IP")){
    $rip = getenv("HTTP_CLIENT_IP");
  }else {
    $rip = getenv("REMOTE_ADDR");
  }
}
return $rip;
}
$save = $_GET["save"];
if ($save) {
  $nimi = stripslashes(htmlspecialchars($_POST["nimi"], ENT_QUOTES));
  $viesti = stripslashes(htmlspecialchars($_POST["viesti"], ENT_QUOTES));
  $nimi = str_replace("|", "l", $nimi);
  $viesti = str_replace("|", "l", $viesti);
  $ip = getip();
  if ($nimi && $viesti) {
    $file = fopen ("tagger.dat", "aw");
    flock ($file,2);
	$time = time();
    fwrite ($file, "$ip|$nimi|$viesti|$time\n");
    flock ($file,3);
    fclose($file);
   }
  header("Location: tagger.php");
}

?>

<html>
<head>
<title>Coffeehouse</title>
<style type="text/css">
body {
  margin: 2px;
  scrollbar-face-color: #E6E6DF;
  scrollbar-shadow-color: #C2BBBF;
  scrollbar-highlight-color: #F9F9F3;
  scrollbar-3dlight-color: #FFFFFF;
  scrollbar-darkshadow-color: #747477;
  scrollbar-track-color: #F0F0F0;
  scrollbar-arrow-color: #000000;
}

a {
  color: #0000FF;
  text-decoration: none;
  font-family: verdana;
  font-size: 10px;
  font-weight: bold;
}

a:visited {
  color: #0000FF;
  text-decoration: none;
  font-family: verdana;
  font-size: 10px;
  font-weight: bold;
}

a:hover {
  text-decoration: underline;
}

input,textarea {
  font-family: verdana;
  font-size: 11px;
  color: #000000;
  background: #F0F0F0;
}

.text {
  font-family: verdana;
  font-size: 10px;
  color: #000000;
}
</style>
</head>
<body bgcolor="#4E2714">
<form action="tagger.php?save=ok" method="post">
<font class="text">
<b>SHOUTBOX:</b><br>
<textarea cols="23" rows="10"><?php
$viestit = file("tagger.dat");
$maara = count($viestit)-1;

for ($i = $maara; $i >= 0; $i--)
{fwrite ($file, "$ip|$nimi|$viesti|$time\n");
  $aika = date("d.m. H:n", $osa[3]);
  $osa = explode("|", $viestit[$i]);
  echo "<b>{$osa[1]}</b> $aika<br/>:";
  echo  $osa[2];
}
?></textarea><br><br>
Name:<br><input type="text" maxlength="7"  name="nimi" size="20"><br><br>
Message:<br><input type="text" maxlength="100" name="viesti" size="20"><br><br>
<input type="submit" value="Shout!"><br><br>

</font>
</form>
</body>
</html>

En jaksanut testata, toivottavasti toimii.

TeroSte [17.07.2008 09:27:44]

#

Tuli tälläinen ilmoitus shoutboxiin kun pistin viestin sinne:

<br />
<b>Warning</b>: fwrite(): supplied argument is not a valid stream resource in <b>/home/coffeeho/public_html/tagger.php</b> on line <b>100</b><br />
<b>nimi</b> 01.01. 02:1<br/>:Hmm... Better now?

Blaze [17.07.2008 09:58:38]

#

$file on suljettu (fclose) jo tuolla ylempänä. Sulkemisen jälkeen siihen ei voi enää kirjottaa.

TeroSte [17.07.2008 10:33:51]

#

Voiko asian jotenkin helposti korjata?
Kuten jo sanoin, en todellakaan osaa php:tä...
pitääkö fclose siirtää johonkin toiseen paikkaan vai?

Blaze [17.07.2008 10:42:52]

#

Jooh, pane se sinne loppuun.

TeroSte [17.07.2008 12:23:03]

#

<br />
<b>Warning</b>: fwrite(): supplied argument is not a valid stream resource in <b>/home/coffeeho/public_html/tagger.php</b> on line <b>100</b><br />
<b>dude</b> 01.01. 02:1<br/>:testing<br />
<b>Warning</b>: fclose(): supplied argument is not a valid stream resource in <b>/home/coffeeho/public_html/tagger.php</b> on line <b>105</b><br />

ehh... hienoa! :D
vähän ny epäilyttää koko homma.. pistin siis vain tuon fclose jutun tuon echo $osa[2]; alapuolelle...

muutenkin vähän epäilyttää tämä, koska eikös tuon pitäisi tulostaa jotakin Warning eikä <b>warning</b>...?

haluaako joku yrittää vielä selvittää tätä, tai kertoa jonkun toisen shoutboxin (vaikka mysqlikin käy - jos sellaisia on olemassa)...
englannin kielisille sivuille menee, että olisi hyvä jos olisi valmiiksi english.

Blaze [17.07.2008 13:22:07]

#

TeroSte kirjoitti:

pistin siis vain tuon fclose jutun tuon echo $osa[2]; alapuolelle...

Ota se toki sieltä ylhäältä pois myös.

TeroSte [17.07.2008 13:53:31]

#

Blaze kirjoitti:

Ota se toki sieltä ylhäältä pois myös.

jepjep, otin sen pois, mutta antaa silti tollasta...

TsaTsaTsaa [17.07.2008 15:48:09]

#

Laita se vasta tuon forin jälkeen. Eli:

for (...diipadaa...)
{
   ...
   ...
}

fclose($file);

TeroSte [17.07.2008 17:26:00]

#

Kiitokset kaikille avusta,
mutta päätin ottaa toisen huutoboksin käyttöön kun ei tämä oikein toiminut haluamallani tavalla.
Kiitos kuitenkin.


Sivun alkuun

Vastaus

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

Tietoa sivustosta