Esmu beidzot saņēmies (un dažās lapās jau veiksmīgi izdarijis) uzrakstīt valīdu HTML.
http://46.109.34.200
S J miniblogs
- +1
S J 11.12.2012. 18:00
- +1
S J 11.12.2012. 18:04
index fails iepriekš
<html>
<head>
<?php
include '/.http/etc/include/header.php';
function is_admin($auth) {
return ($auth->class == 'Administrators');
}
?>
<title>ieraksti kautko</title>
</head>
<body>
<?php
include '/.http/etc/include/include.php';
?>
<div id="text">
<?php
$ip = $_SERVER["REMOTE_ADDR"];
$utf8 = $db->query("SET NAMES utf8");
$message = $db->query("SELECT
`ieraksti`.`title`,
`ieraksti`.`author_id`,
`ieraksti`.`created`,
`ieraksti`.`content`,
`ieraksti`.`id`,
`users`.`class`,
`users`.`username`,
`users`.`banned`
FROM
`ieraksti`,
`users`
WHERE
`ieraksti`.`author_id` = `users`.`id`
ORDER BY
`ieraksti`.`created` DESC");
while ($new = $message->fetch_object()) {
$id = $new->id;
$com = $db->query("SELECT COUNT(*) FROM `komenti` WHERE `text_id` = '$id'");
$count = $com->fetch_row();
if ($new->author_id == $auth->id
|| is_admin($auth) ) {
echo '<div id="readbox"><div id="title"><a href="/read?id=' . $new-> id .'">' . $new->title . '</a></div><div id="small"><a id="edit" href=/editread?id=' . $new->id . '>[labot]</a> <b>Autors: </b><a class="' . $new->class .' ' . $new->banned . '" href="/user?id=' . $new-> author_id . '"> ' . $new->username . '</a> <b>Pievienots: </b>' . $new->created . '<b> Komentāri: </b>' . $count[0] . '</div>' . $new->content . '</div>';
}
else {
echo '<div id="readbox"><div id="title"><a href="/read?id=' . $new-> id .'">' . $new->title . '</a></div><div id="small"><b>Autors: </b><a class="' . $new->class .' ' . $new->banned . '" href="/user?id=' . $new-> author_id . '"> ' . $new->username . '</a> <b>Pievienots: </b>' . $new->created . '<b> Komentāri: </b>' . $count[0] . '</div>' . $new->content . '</div>';
}
}
echo '<div id="readbox"><center>';
$total_com = $db->query("SELECT COUNT(*) FROM `komenti`");
$com_count = $total_com->fetch_row();
$total_page = $db->query("SELECT COUNT(*) FROM `ieraksti`");
$page_count = $total_page->fetch_row();
$total_users = $db->query("SELECT COUNT(*) FROM `users`");
$user_count = $total_users->fetch_row();
echo 'Kopā komentāri lapā: ' . $com_count[0] . '<br />Kopā ieraksti lapā: ' . $page_count[0] . '<br />Kopā lietotāji lapā: ' . $user_count[0] . '';
echo '</div></center>';
?>
<div id="readbox"><center>© Svens, 2012</center></div>
<div id="center_orange"><a href="#">[uz augšu]</a></div>
un tagad<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<?php
include '/.http/etc/include/header.php';
?>
<title>ieraksti kautko</title>
</head>
<body>
<?php
include '/.http/etc/include/include.php';
?>
<div id="text">
<?php
$ip = $_SERVER["REMOTE_ADDR"];
$utf8 = $db->query("SET NAMES utf8");
$message = $db->query("SELECT
`ieraksti`.`title`,
`ieraksti`.`author_id`,
`ieraksti`.`created`,
`ieraksti`.`content`,
`ieraksti`.`id`,
`users`.`class`,
`users`.`username`,
`users`.`banned`
FROM
`ieraksti`,
`users`
WHERE
`ieraksti`.`author_id` = `users`.`id`
ORDER BY
`ieraksti`.`created` DESC");
while ($new = $message->fetch_object()) {
$id = $new->id;
$com = $db->query("SELECT COUNT(*) FROM `komenti` WHERE `text_id` = '$id'");
$count = $com->fetch_row();
if ($new->author_id == $auth->id || is_admin($auth) ) {
echo '<div class="readbox"><a class="title" href="/read?id=' . $new-> id .'">' . $new->title . '</a><div class="small"><a class="edit" href=/editread?id=' . $new->id . '>[labot]</a> <b>Autors: </b><a class="' . $new->class .' ' . $new->banned . '" href="/user?id=' . $new-> author_id . '"> ' . $new->username . '</a> <b>Pievienots: </b>' . $new->created . '<b> Komentāri: </b>' . $count[0] . '</div>' . $new->content . '</div>';
}
else {
echo '<div class="readbox"><a class="title" href="/read?id=' . $new-> id .'">' . $new->title . '</a><div class="small"><b>Autors: </b><a class="' . $new->class .' ' . $new->banned . '" href="/user?id=' . $new-> author_id . '"> ' . $new->username . '</a> <b>Pievienots: </b>' . $new->created . '<b> Komentāri: </b>' . $count[0] . '</div>' . $new->content . '</div>';
}
}
echo '<div class="readbox"><center>';
$total_com = $db->query("SELECT COUNT(*) FROM `komenti`");
$com_count = $total_com->fetch_row();
$total_page = $db->query("SELECT COUNT(*) FROM `ieraksti`");
$page_count = $total_page->fetch_row();
$total_users = $db->query("SELECT COUNT(*) FROM `users`");
$user_count = $total_users->fetch_row();
echo 'Kopā komentāri lapā: ' . $com_count[0] . '<br />Kopā ieraksti lapā: ' . $page_count[0] . '<br />Kopā lietotāji lapā: ' . $user_count[0] . '<br />© Svens, 2012</center></div>';
?>
</body>
</html>EDIT: tā paskatoties, jaunais jau uzreiz pēc skata izskatās labāk. :D
- 0
S J 09.12.2012. 22:54
http://46.109.34.200
Kā lai panāk, lai poga [labot] rādās tikai raksta autoram un adminiem? - 0
S J 09.12.2012. 00:37
Kā panākt, ka linki veidojas nevis /user?id=1, bet gan /user/1 ?
Un vai ir prāta darbs komentāru skaitu attēlot arSELECT * FROM `komenti` WHERE `read_id` = '$read->id'
un tad izvelkot num_rows?- 0
S J 09.12.2012. 00:45
Pirmo atradu, iekopēšu, gadijumā, ja kādu citu šis interesē.
http://www.9lessons.info/2009/11/pretty-urls-with-htaccess-file.html - 0
mad 09.12.2012. 10:27
Par otro - ja tu tos komentārus arī rādi no tā paša kverija, tad jā. Bet ja vajag tikai skaitu, tad tas ir ļoti neefektīvi, jo ielasa atmiņā visu komentāru saturu.
Pareizāk būtuSELECT count(*) FROM `komenti` WHERE `read_id` = '$read->id'
- 0
mad 09.12.2012. 14:09
BTW, ja runa ir par relatīvi lieliem datu apjomiem, tad vēl efektīvāk būtu uztaisīt "counter cache", tas ir - glabāt komentāru skaita ailīti pie katra raksta un updatot kad tiek pievienots/dzēsts komentārs. Tad nevajag tramdīt komentāru tabulu rādot rakstu sarakstu, un pat atverot rakstu var iztikt bez kverija uz komentāru tabulu, ja jau ir zināms, ka komentāru nav. To gan tev šobrīd nevajag, bet nu tā, zināšanai
Piemēram exa miniblogos tā ir uztaisīts.
- +1
S J 12.11.2012. 20:58
http://46.109.34.200
Kā patīk? (Varat pamēģināt arī kautko salauzt). To, ka pēc ielogošanās jārefrešo lapa, es zinu.
Paldies @Maadinsh par login skriptu. - 0
S J 13.11.2012. 18:56
...un atkal es ar savu php. :crazy:
Esmu uztaisijis, lai nevar pievienot komentārus neesi stējošiem rakstiem, bet ņemot vērā, ka komentu pievienošana ir kopā ar autorizāciju, man nesanāk uztaisīt atsevišķus paziņojumus.if ($auth->id && '' . $dbf . '' == $dbid) {
echo '<center><b>Pievienot komentāru:</b>
<form action="" method="post"><center><textarea name="content" id="" rows="6" cols="80"></textarea><br />
<input type="submit" value="Pievienot" class="button1"/></center>
</form>
</div>';
}
else {
echo '<div id="red">Vai nu tu neesi ielogojies, vai raksts neeksistē.</div><br />';
}'' . $dbf . '' == $dbid
Pārbauda, vai $_GET sakrīt ar datubāzē doto `id`, tas strādā.
Kā uztaisīt atsevišķus paziņojumus? Nu, piemēram, es gribu, lai ja nesakrīt id, parāda, ka raksts neeksistē un ja neesi ielogojies, parāda, ka neesi ielogojies. Nu, ir otrs variants, atstāt tikai if ('' . $dbf . '' == $dbid), un gadijumā, ja nav ielogojies, redirektot uz sākumu (if ($auth->id) { echo ''; } else { header('Location: sākums');} , bet man tas kautkā nepatīk.- 0
S J 13.11.2012. 19:04
Ā', varbūt strādātu variants, ja $_GET sakrīt, tad turpina ar $auth, un ja ar to arī viss ir ok, tad tiek pie komenta ievades paneļa. brb
- 0
S J 13.11.2012. 19:06
Ā, un troļļi var nemaz nemēģināt ar firebug ielikt šo pašu paneli lapā, es id pārbaudi ieliku arī pārbaudē pirms kverija.
- 0
S J 12.11.2012. 16:55
Tātad, atkal es ar savu php.
$loggedin = $auth->id;
if ($loggedin) {
echo '<div id="small"><center>Čau, <a href="/blog/user?id=' . $auth->id .'">' . $auth->username . '</a>!<br />';
echo 'Pēdējo reizi manīts: <br />' . $auth->accessed . '!<br />';
echo '<a href="?logout">Izlogoties?</a><br />';
echo '<a href="/blog/me/edit">Labot profilu?</a><br />';
echo '</center></div>';
$ip = $_SERVER["REMOTE_ADDR"];
$id = $auth->id;
$db = new mysqli('');
$setip = $db->query("UPDATE users SET ip = '$ip' WHERE id = '$id'");
}
else {
if (isset($_POST['username']) && isset($_POST['password']))
$auth->login($_POST['username'], $_POST['password']);
?>
<center><form action="" method="post">
<?php
if ($auth->error == 1) {
echo '<p>Nepareizs lietotājvārds un/vai parole!</p>';
}
?>
Lietotājvārds:<br /><input type="text" name="username" /><br />
Parole:<br /> <input type="password" name="password" />
<input type="submit" value="Ielogoties" /><br /><div id="small"><a href="/blog/register">Reģistrēties?</a></div></center>
</form>
<?php
}
Auto-logout es tā kā salaboju, bet tagad ir jauna problēma. Lai ielogotos, poga "Ielogoties" ir jāspiež divreiz. How to fix?- +1
mad 12.11.2012. 21:05
$auth->login() tiek izsaukts pēc tu veic pābraudi, vai $auth->ok ir true.
Tajā brīdī lietotājs nav ielogojies.
Vai nu pārbaudi ieliec pēc logina, vai arī aiz logina redirektē lietotāju uz sākumu. - +1
mad 12.11.2012. 21:05
$loggedin = $auth->id; ir lieks. $auth->id ir tāds pats mainīgais un to var likt uzreiz iekš if()