db_connect.php
<?php
/***********************/
// Przykładowa tabela w bazie
/*
CREATE TABLE `news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`wpis` text NOT NULL,
`data_wpisu` datetime NOT NULL,
`uid` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
*/
$db_host = 'localhost'; // Host (np.localhost)
$db_name = 'test'; //Nazwa bazy
$db_user = 'root'; //db_user
$db_pass = ''; //db_password
$table_name = 'news';
//Połączenie z bazą
function dbInsertUpdate($dane)
{
}
function dbSelect($dane)
{
return $wynik;
}
?>
wpis.php
<?php
// Ścieżka do pliku odczyt.php np.
$path = 'http://moja-strona.pl/odczyt.php';
// lub do testów na localhoście
//$path = 'odczyt.php';
include_once 'db_connect.php';
// Sprawdzanie czy edytuj kliknięty
if (!empty($_POST['id']) && isset($_POST['edytuj'])) {
$akcja_1 = 'Edytuj wpis';
$akcja_2 = 'Dodaj poprawiony';
$id = (int)$_POST['id'];
$wynik = dbSelect("SELECT wpis FROM $table_name WHERE id = $id");
$input_id = '<input type="hidden" name = "id" value = "' . $id . '"/>';
} else
{
$akcja_1 = 'Nowy wpis';
$akcja_2 = 'Dodaj wpis';
// Dodanie nowego wpisu
if (!empty($_POST['wpis']) && $_POST['dodaj'] == 'Dodaj wpis') {
// Utworzenie unikalnego identyfikatora w linku do odczytu wpisu
// aby użytkownik nie mógł przeglądać po kolei wszystkich wpisów
// zmieniając cyferki w linku.
do
{
// Sprawdzanie czy nie ma już takiego w bazie, jeśli jest to jeszcze raz tworzymy inny
} while (mysql_query("SELECT uid FROM $table_name WHERE uid = $uid")); // Tu dodajemy wpis i inne dane do bazy
dbInsertUpdate("INSERT INTO $table_name VALUES(null,'$wpis',NOW(),'$uid')");
$wynik = dbSelect("SELECT wpis,uid FROM $table_name WHERE id = LAST_INSERT_ID()");
$dodano = '<h3 class = "p">DODANO WPIS</h3>';
}
// Dodanie poprawionego wpisu
if (!empty($_POST['wpis']) && $_POST['dodaj'] == 'Dodaj poprawiony') {
$id = (int)$_POST['id'];
// Dodajemy poprawiony wpis
dbInsertUpdate("UPDATE $table_name SET wpis = '$wpis' WHERE id = $id");
$wynik = dbSelect("SELECT wpis,uid FROM $table_name WHERE id = $id");
$dodano = '<h3 class = "p">DODANO POPRAWIONY WPIS</h3>';
}
{
// Tworzenie linku do odczytu wpisu
$link = '<p class = "p"><a href ="' . $path . '?uid=' . $wynik['uid'] . '">' . $path .
'?uid=' . $wynik['uid'] . '</a></p>';
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" charset="utf-8"/>
<style type="text/css">
<!--
#content{
margin: 0 auto;
height: auto;
width: auto;
}
.p{
text-align: center;
}
textarea {
margin: auto;
display: block;
height: 300px;
width: 600px;
}
-->
</style>
</head>
<body>
<div id="content">
<form name = "formularz" action = "wpis.php" method = "post">
<p class="p">ID wpisu: <input type="text" name="id" placeholder="ID" size="10" />
<input type="submit" name="edytuj" value="Edytuj" /></p>
<?=isset($input_id) ?
$input_id : ''?> <p class="p"><?=$akcja_1?>:</p>
<textarea name="wpis">
<?=isset($wynik['wpis']) ?
$wynik['wpis'] : ''?></textarea>
<p class="p"><input type="submit" name="dodaj" value="<?=$akcja_2?>" /></p>
</form>
<?=isset($dodano) ?
$dodano : ''?> <?=isset($link) ?
$link : ''?> </div>
</body>
</html>
<?php
?>
odczyt.php
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" charset="utf-8"/>
<style type="text/css">
<!--
#content{
margin: 0 auto;
text-align: center;
margin-top: 50px;
}
-->
</style>
</head>
<body>
<?php
// Sprawdzanie czy jest uid
if (!empty($_GET['uid'])) {
// Walidacja uid
preg_match('/^[0-9a-f]{32}$/', $_GET['uid'], $matches); include 'db_connect.php';
// Pobranie wpisu z bazy
$wynik = dbSelect("SELECT wpis FROM $table_name WHERE uid = '$matches[0]'");
// Zamiana \r\n na <br /> bo teraz będzie w divie wyświetlane a nie w textarea
$wynik = str_replace("\r\n", '<br />', $wynik['wpis']); echo '<div id = "content">' . $wynik . '</div>'; } else
{
echo '<div id = "content"><h3>BRAK WPISU</h3></div>'; }
?>
</body>
</html>