News Tool

empty 03.12.02 18:22

Scripta uutisten lukemiseen/kirjoittamiseen/poistoon/muokkaukseen. Vaatii MySQL

 Tekstiversio  Arvo: 0 (6 ääntä)  Äänestä: +  -
News Tool By. Evolius
Eli siis koodi jolla voi lukea/kirjoittaa/muokata/poistaa uutisia.
Jos haluat voit tehdä "suojauksen" ettei kuka tahansa pääse säätää uutisia.
Vaatii MySQL tietokannan =)

aluksi:

CREATE TABLE news (
  aika VARCHAR(25),
  sender VARCHAR(150),
  topic VARCHAR(50),
  txt TEXT,
  id INT(5) AUTO_INCREMENT,
  PRIMARY KEY(id)
);

Sitten koodiin..

----------[news.php]----------
<?php
/*
  Uutiset sivu
  Copyright Jouni kuusisto
  muokkaus sallittu
*/

$mysql_server = ""; // MySQL Serverin osoite
$mysql_user = ""; // MySQL tunnus
$mysql_pass = ""; // MySQL Passu
$mysql_db = ""; // MySQL Tietokanta
mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_selectdb($mysql_db);

// Yhdistetty tietokantaan ja sitten haetaan uutiset.

$query = "SELECT * FROM news ORDER BY id";
$result = mysql_query($query);

for($i = mysql_numrows($result); $i > 0; $i--) {
  $ii = $i;
  $ii--;
  echo "<p><b><font class=\"f2\">";
  echo mysql_result($result,$ii,"topic");
  echo "</b> <i><font class=\"f1\">";
  echo mysql_result($result,$ii,"sender");
  echo " @ ";
  echo mysql_result($result,$ii,"aika");
  echo "</i><table class=\"uutisikkuna\"><tr><td>";
  echo mysql_result($result,$ii,"txt");
  echo "</td></tr></table>";
}

mysql_close();
?>

----------[lisays.php]----------
<?php
/*
  Uutisten lisäys sivu
  Copyright Jouni kuusisto
  muokkaus sallittu
*/

$mysql_server = ""; // MySQL Serverin osoite
$mysql_user = ""; // MySQL tunnus
$mysql_pass = ""; // MySQL Passu
$mysql_db = ""; // MySQL Tietokanta

if(isset($_POST['topic'])) {
  mysql_connect($mysql_server,$mysql_user,$mysql_pass);
  mysql_selectdb($mysql_db);

  $sender = "Evolius";
  $lisays = "INSERT INTO news (aika, sender, topic, txt) VALUES(\"" . date("d.m.Y H:i") . "\", \"" . $sender . "\", \"" . $_POST['topic'] . "\", \"" . $_POST['txt'] . "\");";
  mysql_query($lisays)
  mysql_close();
  echo "<table><tr><td><b>";
  echo $_POST['topic'];
  echo "</b> <i>";
  echo $sender . " @ " . date("d.m.Y H:i") . "</i><hr>";
  echo $_POST['txt'];
  echo "</td></tr></table>";
}
?>
<FORM ACTION="lisays.php" METHOD="POST">
<font class="f1">
<b>Topic</b><br><INPUT TYPE=TEXT NAME="topic" maxlength="50"><br>
<b>Uutinen</b><br><textarea rows=12 cols=60 NAME="txt"></textarea><br>

<INPUT TYPE="SUBMIT" VALUE="Lähetä"><br></FORM></center>

----------[muokkaa.php]----------
<?php
/*
  Uutisten listaus muokkaukseen
  Copyright Jouni kuusisto
  muokkaus sallittu
*/

$mysql_server = ""; // MySQL Serverin osoite
$mysql_user = ""; // MySQL tunnus
$mysql_pass = ""; // MySQL Passu
$mysql_db = ""; // MySQL Tietokanta
mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_selectdb($mysql_db);

$query = "SELECT * FROM news ORDER BY id";
$result = mysql_query($query);

for($i = mysql_numrows($result); $i > 0; $i--) {
  $ii = $i;
  $ii--;
  echo "<p><b><font class=\"f2\">";
  echo mysql_result($result,$ii,"topic");
  echo "</b> <i><font class=\"f1\">";
  echo mysql_result($result,$ii,"sender");
  echo " @ ";
  echo mysql_result($result,$ii,"aika");
  echo " <b><a href=\"muokkaus.php?muokkaa=";
  echo mysql_result($result,$ii,"id");
  echo "\"><font class=\"fred\">MUOKKAA</font></a></b></i><table class=\"uutisikkuna\"><tr><td>";
  echo mysql_result($result,$ii,"txt");
  echo "</td></tr></table>";
}

mysql_close();
?>

----------[muokkaus.php]----------
<?php
/*
  Uutisten muokkaus
  Copyright Jouni kuusisto
  muokkaus sallittu
*/

$mysql_server = ""; // MySQL Serverin osoite
$mysql_user = ""; // MySQL tunnus
$mysql_pass = ""; // MySQL Passu
$mysql_db = ""; // MySQL Tietokanta

if(isset($_GET['muokkaa'])) {
  mysql_connect($mysql_server,$mysql_user,$mysql_pass);
  mysql_selectdb($mysql_db);

  $query = "SELECT txt FROM news WHERE id = \"" . $_GET['muokkaa'] . "\";";
  $result = mysql_query($query);

  $query2 = "SELECT topic FROM jee WHERE id = \"" . $_GET['muokkaa'] . "\";";
  $result2 = mysql_query($query2);

  $filu = fopen("uutis.id","w");
  fwrite($filu,$_GET['muokkaa']);
  fclose($filu);

  echo "<FORM ACTION=\"muokkaus.php\" METHOD=\"POST\">
<font class=\"f1\">
<b>Topic</b><br><INPUT value=\""
. mysql_result($result2, "topic") . "\" TYPE=TEXT NAME=\"topic\" maxlength=\"50\" class=\"otsikko\"><br>
<b>Uutinen</b><br><textarea rows=\"12\" cols=\"60\" NAME=\"txt\" class=\"uutinen\">"
;
  echo mysql_result($result, "txt");
  echo "</textarea><br>
<INPUT TYPE=\"SUBMIT\" VALUE=\"Muokkaa\" class=\"nappula\"><br></FORM>"
;

}
if(isset($_POST['topic'])) {
  mysql_connect($mysql_server,$mysql_user,$mysql_pass);
  mysql_selectdb($mysql_db);

  $id = file("uutis.id");
  $lisays = "UPDATE news SET topic = \"" . $_POST['topic'] . "\", txt = \"" . $_POST['txt'] . "\" WHERE id = \"" . $id[0] . "\";";
  mysql_query($lisays) or die("Ööksistä! Tietokanta vittuilee:". mysql_error())
  mysql_close();
  echo "Muokattu (Luultavasti)";
}
else { echo "Öö???"; }

?>

----------[poista.php]----------
<?php
/*
  Uutisten muokkaus
  Copyright Jouni kuusisto
  muokkaus sallittu
*/

$mysql_server = ""; // MySQL Serverin osoite
$mysql_user = ""; // MySQL tunnus
$mysql_pass = ""; // MySQL Passu
$mysql_db = ""; // MySQL Tietokanta
mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_selectdb($mysql_db);

if(isset($_GET['poista'])) {
  $lisays = "DELETE FROM jee WHERE id = \"" . $_GET['poista'] . "\";";
  mysql_query($lisays) or die("Ööksistä! Tietokanta vittuilee:". mysql_error());
}

$query = "SELECT * FROM jee ORDER BY id";
$result = mysql_query($query);

for($i = mysql_numrows($result); $i > 0; $i--) {
  $ii = $i;
  $ii--;
  echo "<p><b><font class=\"f2\">";
  echo mysql_result($result,$ii,"topic");
  echo "</b> <i><font class=\"f1\">";
  echo mysql_result($result,$ii,"sender");
  echo " @ ";
  echo mysql_result($result,$ii,"aika");
  echo " <b><a href=\"poisto.php?poista=";
  echo mysql_result($result,$ii,"id");
  echo "\"><font class=\"fred\">POISTA</font></a></b></i><table><tr><td>";
  echo mysql_result($result,$ii,"txt");
  echo "</td></tr></table>";
}

mysql_close();
?>

empty 18:24 3.12.02 
Eli joo.. ois tietty voinu laittaa muokkauksen ehelle sivulle mut ei jaksanu alkaa säätää.. ja sitten ois tietty voinu tehä MySQL avaukselle "oman tiedoston".
empty 18:25 3.12.02 
Vähän tuli sekavaa koodia ku muokkailin ton eriksee tänne mut iha sama =)
empty 17:32 4.12.02 
no oisit pistäny ees norm. tagit et ois ollu värikäs!
empty 20:17 4.12.02 
No prkl!
nikopa 22:09 5.12.02 
Evo: kokeile muuttaa <? -> <?php niin toimii kai :)
empty 10:47 7.12.02 
Kyllähän sitä muokkais sillee mutta kun ei voi. se alkaa bugittaa siinä missä pitäs muokkaa..
Sillee tyhmästi et se koodi niiku ei oo kokonaa siin muokkaus ikkunas vaa osa menee sen ulkopuolelle ja sit se vsata bukaaki koko muokkaus sivu mureassa :D
Aku 11:11 8.12.02 
2 muokkaus.php tiedostoa?
Pitäiskö tuo viimeinen olla joku muu?
empty 12:18 14.12.02 
Juu siinä on 2 tiedostoa syystä että en jaksanut alkaa taiteilla niitä yhdelle sivulle... ja tuon ensimmäisen tiedoston pitäisi olla jotain muuta kun muokkaus.php.. esim. muokkaa.php, sillä sivulla on se muokkaus formi.. toisella taas muokkaus koodi.. =)
empty 12:20 14.12.02 
Kun ei voi muokata tota.. :|
Lehmis 10:32 16.1.03 
Mitäköhän olen kämmännyt kun saan tälläisen yrittäessäni muokata lähetettyä viestiä? :o

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/foo/public_html/nyz/muokkaus.php on line 19
OzKu1 20:09 19.1.03 
evo saisko ton valmiina pakettina (esim. .zip)
ajv 11:32 8.3.04 
"SELECT * FROM jee ORDER BY id"; Öööö...
LeperMessiah 13:52 5.4.04 
Todella mukava :)
Korko 11:45 14.4.04 
Tota joo. Hetken aikaa pähkäilin ja tulin tälläseen tulokseen koodin kanssa:

-----[ mysql.php ]-----

<?php
$mysql_server = ""; // MySQL Serverin osoite
$mysql_user = ""; // MySQL tunnus
$mysql_pass = ""; // MySQL Passu
$mysql_db = ""; // MySQL Tietokanta
?>


-----[ lisays.php ]-----

<?php
include("mysql.php");

if(isset($_POST['topic'])) {
mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_selectdb($mysql_db);

$sender = "Evolius";
$lisays = "INSERT INTO news (aika, sender, topic, txt) VALUES(\"" . date("d.m.Y H:i") . "\", \"" . $sender . "\", \"" . $_POST['topic'] . "\", \"" . $_POST['txt'] . "\");";
mysql_query($lisays);
mysql_close();
echo "<table><tr><td><b>";
echo $_POST['topic'];
echo "</b> <i>";
echo $sender . " " . date("d.m.Y H:i") . "</i><hr>";
echo $_POST['txt'];
echo "</td></tr></table>";
}
?>
<FORM ACTION="lisays.php" METHOD="POST">
<font class="f1">
<b>Topic</b><br><INPUT TYPE=TEXT NAME="topic" maxlength="50"><br>
<b>Uutinen</b><br><textarea rows=12 cols=60 NAME="txt"></textarea><br>

<INPUT TYPE="SUBMIT" VALUE="Lähetä"><br></FORM></center>

-----[ muokkaa.php ]-----

<?php
include("mysql.php");

mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_selectdb($mysql_db);

$query = "SELECT * FROM news ORDER BY id";
$result = mysql_query($query);

for($i = mysql_numrows($result); $i > 0; $i--) {
$ii = $i;
$ii--;
echo "<p><b><font class=\"f2\">";
echo mysql_result($result,$ii,"topic");
echo "</b> <i><font class=\"f1\">";
echo mysql_result($result,$ii,"sender");
echo " ";
echo mysql_result($result,$ii,"aika");
echo " <b><a href=\"muokkaus.php?muokkaa=";
echo mysql_result($result,$ii,"id");
echo "\"><font class=\"fred\">MUOKKAA</font></a></b></i><table class=\"uutisikkuna\"><tr><td>";
echo mysql_result($result,$ii,"txt");
echo "</td></tr></table>";
}

mysql_close();
?>

-----[ muokkaus.php ]-----

<?php
include("mysql.php");

if(isset($_GET['muokkaa'])) {
mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_selectdb($mysql_db);

$hiddenid = $_GET['muokkaa'];

$query = "SELECT txt FROM news WHERE id = \"" . $_GET['muokkaa'] . "\";";
$result = mysql_query($query);

$query2 = "SELECT topic FROM news WHERE id = \"" . $_GET['muokkaa'] . "\";";
$result2 = mysql_query($query2);

echo "<FORM ACTION=\"muokkaus.php\" METHOD=\"POST\">
<font class=\"f1\">
<INPUT value=\"" . $hiddenid . "\" TYPE=\"HIDDEN\" NAME=\"id\" maxlength=\"5\" class=\"id\"><br>
<b>Topic </b><br><INPUT value=\"" . mysql_result($result2, "topic") . "\" TYPE=TEXT NAME=\"topic\" maxlength=\"50\" class=\"otsikko\"><br>
<b>Uutinen</b><br><textarea rows=\"12\" cols=\"60\" NAME=\"txt\" class=\"uutinen\">";
echo mysql_result($result, "txt");
echo "</textarea><br>
<INPUT TYPE=\"SUBMIT\" VALUE=\"Muokkaa\" class=\"nappula\"><br></FORM>";
mysql_close();
}
if(isset($_POST['topic'])) {
mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_selectdb($mysql_db);

$iidee = $_POST['id'];
$lisays = "UPDATE news SET topic = \"" . $_POST['topic'] . "\", txt = \"" . $_POST['txt'] . "\" WHERE id = \"" . $iidee . "\";";
mysql_query($lisays) or die("Ööksistä! Tietokanta vittuilee:". mysql_error());

mysql_close();
echo "Muokattu";
}

?>

-----[ news.php ]-----

<?php
include("mysql.php");

mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_selectdb($mysql_db);

// Yhdistetty tietokantaan ja sitten haetaan uutiset.

$query = "SELECT * FROM news ORDER BY id";
$result = mysql_query($query);

for($i = mysql_numrows($result); $i > 0; $i--) {
$ii = $i;
$ii--;
echo "<p><b><font class=\"f2\">";
echo mysql_result($result,$ii,"topic");
echo "</b> <i><font class=\"f1\">";
echo mysql_result($result,$ii,"sender");
echo " @ ";
echo mysql_result($result,$ii,"aika");
echo "</i><table class=\"uutisikkuna\"><tr><td>";
echo mysql_result($result,$ii,"txt");
echo "</td></tr></table>";
}

mysql_close();
?>

-----[ poista.php ]-----

<?php
include("mysql.php");

mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_selectdb($mysql_db);

if(isset($_GET['poista'])) {
$lisays = "DELETE FROM news WHERE id = \"" . $_GET['poista'] . "\";";
mysql_query($lisays) or die("Ööksistä! Tietokanta vittuilee:". mysql_error());
}

$query = "SELECT * FROM news ORDER BY id";
$result = mysql_query($query);

for($i = mysql_numrows($result); $i > 0; $i--) {
$ii = $i;
$ii--;
echo "<p><b><font class=\"f2\">";
echo mysql_result($result,$ii,"topic");
echo "</b> <i><font class=\"f1\">";
echo mysql_result($result,$ii,"sender");
echo " @ ";
echo mysql_result($result,$ii,"aika");
echo " <b><a href=\"poista.php?poista=";
echo mysql_result($result,$ii,"id");
echo "\"><font class=\"fred\">POISTA</font></a></b></i><table><tr><td>";
echo mysql_result($result,$ii,"txt");
echo "</td></tr></table>";
}

mysql_close();
?>



---------------------------------------------------------

Noin tehtynä toimii mulla ainakin useimmilla palvelimilla ihan hyvin.
Sinun versiossasi uutisen id ei ollut mennyt enää submit nappulaa painettaessa päivitysvaiheeseen. Ja toi update on muutenkin kinkkinen juttu eikä sitä aina saa toimimaan ensimmäisellä eikä toisella yrityksellä.

Itse olen newbie php:n kanssa ja tämä koodi oli ensimmäinen koskemani php koodi ikinä mut sain onneks toimimaa ettei tarvinu polttaa hihoja ja paiskata konetta seinää.

Ja uutena käyttäjänä ja php:n oppipoikana sanon että mua tullaan sitte näkemään täällä useammin. Alan kehitellä kunnon uutisjärjestelmää missä käyttäjän ei tarvitse osata edes <br> tageja laittaa jotta osaisi lisätä kuvia ja tekstiä ja nappuloita yms kotisivuilleen ja jossa on sivujen tyylinen käyttöliittymä josta näkee heti muutokset.

Kovat on tavoitteet ensikoodille mutta kyllä se siitä lähtee.
Korko 11:52 14.4.04 
Nyt kun kattelin eroavaisuuksia koodiin niin huomasin että käytit tiedostoa uutis.id id:n tallentamiseen. en muuten tajunnut kokeilla tomiiko se. luulin sitä vaan joksikin keskeneräiseksi koodiksi ja aloin korvaamaan sitä id hommeleilla :D no mulla on sitte ilman tiedostoa toimiva systeemi ja sulla tiedostojuttu :D
ZeiP 23:00 6.6.04 
Muuten hyvä, mutta tuolla oli pari virhettä... Poistosivulla linkit ovat poisto.php:hen mutta tuossa koodilistauksessa koodin tiedoston nimeksi mainitaan poista.php. Joissain paikoissa oli väärä taulukon nimi. Uutisten lisääjäksi on muuttujassa asetettu Evolius, tuon olisi voinut vaikka laittaa siihen lisäysformiin. Tai edes laittaa jotain tyyliin "Lisääjä" siihen kohtaan. Voisi olla ihan hyvä idea jos nuo mysql-asetukset olisivat erillisessä tiedostossa. Ei ollut edes kovin vaikea säätää. Jäiköhän tuosta vielä jotain muuta hampaankoloon... Ainakin se että tuossa ei mainita uutis.id:in luomisen tarpeesta, mutta minulla se ainakin piti itse luoda ennenkuin sitä käyttävä osuus toimi. Noiden lisäksi tuli vielä säädeltyä rivinvaihtojen muokkaus br-tageiksi vanhasta uutisskriptasta. Hyvä skripta silti, kiitos siitä!
Submin 17:11 19.9.04 
Tämähän on oikein kätsy skripti :)

Kiitokset Evoliukselle sekä Korolle.
editoitu: 01:24 6.11.04
Kaichu 01:23 6.11.04 
Mulla toimii ainakin hyvin KIITOS Evolius :o)
editoitu: 09:36 7.12.04
naapoika 10:37 30.11.04 
sen kun keksisi vielä että miten saisi skriptissä kuvan lisätty käyttäen [img][/img] -tageja
Maxfacus 14:48 5.4.05 
Tämä oli hyvä koodi ja vielä toimiva. Onko jollakin tietoa, kuinka uutisten määrän voi rajata esim. neljään uutiseen kerralla. Ajatus on että viimeisin uutinen olisi ylinnä?
editoitu: 15:44 6.4.05
Maxfacus 14:55 5.4.05 
Maxfacus 15:43 6.4.05 
Miten tuosta "topic":sta saa tehtyä linkin? Ajatuksena on, että sivuilla olisi uutispalkki topic:n mukaan ja sitä klikkaamalla saa näkyviin koko jutun.
editoitu: 16:25 6.4.05
Kape 16:25 6.4.05 
naapoika kirjoitti:
sen kun keksisi vielä että miten saisi skriptissä kuvan lisätty käyttäen [img][/img] -tageja

$txt = str_replace ("[img]", "<img src=\"", "$txt");
$txt = str_replace ("[/img]", "\">", "$txt");

tolleen vaikka
editoitu: 12:56 10.4.05
hobzu 12:55 10.4.05 
Kape kirjoitti:
naapoika kirjoitti:
sen kun keksisi vielä että miten saisi skriptissä kuvan lisätty käyttäen [img][/img] -tageja

$txt = str_replace ("[img]", "<img src=\"", "$txt");
$txt = str_replace ("[/img]", "\">", "$txt");

tolleen vaikka


Mihinkäs tuo laitetaan?
mamba 17:17 20.9.06 
Mitä uutis.id:n pitäisi pitää sisällään?

CREATE TABLE uutis (
aika VARCHAR(25),
sender VARCHAR(150),
topic VARCHAR(50),
txt TEXT,
id INT(5) AUTO_INCREMENT,
PRIMARY KEY(id)
);


Tuskin noin?