Seitentitel festlegen mit PHP
Möchte ich den Titel meiner Webseite zu Ultan.mich, Was die post-Titel. Ich möchte es zur Anzeige der post-Titel. Die Beiträge sind eingereicht, um eine MySQL-Datenbank und der Titel-Zeile wird als "Titel". Jede Hilfe ist willkommen mit dieser kleinen Frage.
Update:
Hier ist die Seite an sich jetzt aber nicht die Anzeige des Titels. Sollte ich öffnen Sie das php-Dokument und eine Verbindung zu meiner Datenbank irgendwo anders aktuelle Standorte?
Den Code (nur notwendig Stück ist der Anfang):
<html>
<head>
<meta name="keywords" content="Mac user Ultan Casey TheCompuGeeks UltanKC">
<title>Ultan.me - <?echo $title;?></title>
<link rel="stylesheet" href="css/styles.css" type="text/css" />
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript"
src="js/jquery.labelify.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(":text").labelify();
});
</script>
<style>
a {text-decoration:none}
</style>
</head>
<body>
<div id="main">
<!-- Menu Start -->
<div id="menu">
<ul>
<li><a href="index.php">home</a></li>
<li><a href="index.php">about me</a></li>
<li><a href="index.php">archives</a></li>
<li><a href="index.php">contact</a></li>
<li><a href="index.php">gallery</a></li>
</ul>
</div>
<!-- Menu End -->
<img src="images/banner.png" />
<div id="content">
<div id="posts">
<?php
mysql_connect ('localhost', 'root', 'root') ;
mysql_select_db ('ultankc');
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
die("Invalid ID specified.");
}
$id = (int)$_GET['id'];
$sql = "SELECT * FROM php_blog WHERE id='$id' LIMIT 1";
$result = mysql_query($sql) or print ("Can't select entry from table php_blog.<br />" . $sql . "<br />" . mysql_error());
while($row = mysql_fetch_array($result)) {
$date = date("l F d Y", $row['timestamp']);
$title = stripslashes($row['title']);
$entry = stripslashes($row['entry']);
$get_categories = mysql_query("SELECT * FROM php_blog_categories WHERE `category_id` = $row[category]");
$category = mysql_fetch_array($get_categories);
?>
<p><?php echo "<p id='post-title'><strong><a href=\"post.php?id=". $id . "\">" . $title . "</a></strong></p>"; ?><br /><br />
<div id="entry"><?php echo $entry; ?>
</div><br /><br />
<p id="date">Posted in <a href="category.php?category=<?php echo $row['category']; ?>"><?php echo $category['category_name']; ?></a> on <?php echo $date; ?></p>
</p>
<h2 id="share-title">Share This Post</h2>
<div id="social-share">
<li id="link-right"><a href="http://twitter.com/home?status=
I just read <?php echo $title; ?> at http://ultan.me/post.php?id=<?php echo $id; ?>"><center>Twitter</center></a></li>
<li id="link-left"><a href="http://digg.com/submit?url=http://ultan.me/post.php?id=<?php echo $id; ?>"><center>Digg</center></a></li>
<br>
<li id="link-right"><a href="http://www.facebook.com/sharer.php?u=http://ultan.me/post.php?id=<?php echo $id; ?>&t=<?php echo $title; ?>"><center>Facebook</center></a></li>
<li id="link-left"><a href="http://www.google.com/buzz/post?url=http://ultan.me/post.php?id=<?php echo $id; ?>
"><center>Google Buzz</center></a></li>
<div class="clr"></div>
</div>
<h2 id="comments-title">Comments</h2>
<div id="comment-list">
<?php
}
$commenttimestamp = strtotime("now");
$sql = "SELECT * FROM php_blog_comments WHERE entry='$id' ORDER BY timestamp";
$result = mysql_query ($sql) or print ("Can't select comments from table php_blog_comments.<br />" . $sql . "<br />" . mysql_error());
while($row = mysql_fetch_array($result)) {
$timestamp = date("l F d Y", $row['timestamp']);
printf("<div class='comment-ind'><p id='comments'><a id='username' href=\"%s\">%s</a> %s</p>", stripslashes($row['url']), stripslashes($row['name']), $timestamp);
print("<p class='comments'>" . stripslashes($row['comment']) . "</p><div class='clr'><br></div></div>");
}
?>
<div class="clr"></div>
<form id="commentform" method="post" action="process.php">
<p><input type="hidden" name="entry" id="entry" value="<?php echo $id; ?>" />
<input type="hidden" name="timestamp" id="timestamp" value="<?php echo $commenttimestamp; ?>">
<input type="text" name="name" id="name" title="Name (required)" /><br />
<input type="text" name="email" id="email" title="Mail (will not be published) (required)" /><br />
<input type="text" name="url" id="url" title="Website" value="http://" /><br />
<br />
<textarea title="Your Comment Goes Here" name="comment" id="comment"></textarea></p>
<p><input type="submit" name="submit_comment" id="submit_comment" value="Add Comment" /></p>
</form>
</div>
<div id="pages">
<?php
$total_results = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS num FROM php_blog"));
$total_pages = ceil($total_results['num'] / $blog_postnumber);
if ($page > 1) {
$prev = ($page - 1);
echo "<a href=\"?page=$prev\"><< Newer</a> ";
}
for($i = 1; $i <= $total_pages; $i++) {
if ($page == $i) {
echo "$i ";
}
else {
echo "<a href=\"?page=$i\">$i</a> ";
}
}
if ($page < $total_pages) {
$next = ($page + 1);
echo "<a href=\"?page=$next\">Older >></a>";
}
?>
</div>
</div>
</div>
<!-- Sidebar Start -->
<div class="sidebar">
<!-- Item 1 -->
<div id="side-item">
<h2>
<a href="http://www.dailybooth.com/UltanCasey">
<img src="images/db-icon.jpg">Dailybooth
</a></h2>
<div id="side-item-content">
<center>
<img src="http://dailybooth.com/UltanCasey/latest/medium.jpg" />
</center>
</div>
</div>
<!-- Item 2 -->
<div id="side-item">
<h2><img src="images/connect.jpg" />Connect</h2>
</div>
<div id="side-item-content">
<div class="tweet-title"><p><a href="http://www.twitter.com/UltanKc">Latest Tweet:</a></p></div>
<div id="tweet">
<?php
function getTwitterStatus($userid){
$url = "http://twitter.com/statuses/user_timeline/$userid.xml?count=1";
function auto_link_twitter ($text)
{
//properly formatted URLs
$urls = "/(((http[s]?:\/\/)|(www\.))?(([a-z][-a-z0-9]+\.)?[a-z][-a-z0-9]+\.[a-z]+(\.[a-z]{2,2})?)\/?[a-z0-9._\/~#&=;%+?-]+[a-z0-9\/#=?]{1,1})/is";
$text = preg_replace($urls, " <a href='$1'>$1</a>", $text);
//URLs without protocols
$text = preg_replace("/href=\"www/", "href=\"http://www", $text);
//Twitter usernames
$twitter = "/@([A-Za-z0-9_]+)/is";
$text = preg_replace ($twitter, " <a href='http://twitter.com/$1'>@$1</a>", $text);
//Twitter hashtags
$hashtag = "/#([A-Aa-z0-9_-]+)/is";
$text = preg_replace ($hashtag, " <a href='http://hashtags.org/$1'>#$1</a>", $text);
return $text;
}
$xml = simplexml_load_file($url) or die("could not connect");
foreach($xml->status as $status){
$text = $status->text;
}
echo auto_link_twitter ($text);
}
getTwitterStatus("UltanKC");
?>
</div>
<br>
<ul>
<li id="social"><a href="#">YouTube</a></li>
<li id="social"><a href="#">Twitter</a></li>
<li id="social"><a href="#">LastFM</a></li>
<li id="social"><a href="#">Email</a></li>
</ul>
</div>
<!-- Item 2 End-->
<div id="side-item">
<h2><img src="images/archive.jpg" />Archives</h2>
</div>
<div id="archive-side">
<?php
mysql_connect ('localhost', 'root', 'root') ;
mysql_select_db ('ultankc');
$result = mysql_query("SELECT FROM_UNIXTIME(timestamp, '%Y') AS get_year, COUNT(*) AS entries FROM php_blog GROUP BY get_year");
while ($row = mysql_fetch_array($result)) {
$get_year = $row['get_year'];
$entries = $row['entries'];
echo "<li id='tag'><a href=\"archives.php?year=" . $get_year . "\">Entries from " . $get_year . " (" . $entries . ")<br /></a></li>";
}
$result1 = mysql_query("SELECT * FROM php_blog_categories ORDER BY category_name ASC");
while($row = mysql_fetch_array($result1)) {
$result2 = mysql_query("SELECT COUNT(`id`) AS entries FROM php_blog WHERE category = $row[category_id]");
$num_entries = mysql_fetch_array($result2);
echo '<li id="tag"><a href="category.php?category=' . $row['category_id'] . '">' . $row['category_name'] . ' (' . $num_entries['entries'] . ')</a></li>';
}
?>
</div>
</div>
<div class="clr" />
</div>
<!-- Sidebar End -->
<div id="footer">
<p> © Ultan Casey 2010</p>
<p style="margin-top: -18px; float:right"><a href="index.php">Home</a> | <a href="about.php">About Me</a> | <a href="mailto:[email protected]">Email Me</a></p>
</div>
</div>
</div>
</body>
</html>
?>
1 für trolling.
InformationsquelleAutor | 2010-08-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist die Methode, die ich verwenden (für ähnliche Dinge, nicht nur den Titel):
PHP funktioniert in der Regel ausgeführt werden, alle bits von code und Ausgabe aller output direkt an den browser. Wenn Sie sagen
"echo 'Some text here.';"
dieser string wird gesendet browser und entleert wird, aus dem Speicher.Was die Ausgabe-Pufferung tut, ist zu sagen "alle Drucken die Ausgabe in einen Puffer. Es festzuhalten. Nicht senden Sie ALLES an den browser, bis ich Ihnen sagen."
Also, was dies tut, ist es puffert alle Ihre Seiten " HTML-Code in den Puffer, dann ganz am Ende, nach dem tag, und es verwendet, ob_get_contents (), um den Inhalt des Puffers (in der Regel alle Ihre Seite den HTML-source-code, der gesendet worden wären die browser schon) und legt diesen in einen string.
ob_end_clean () leert den Puffer befreit und etwas Speicher. Wir benötigen nicht die source-code mehr, weil wir nur " gespeichert, in $pageContents.
Dann, endlich, ich tun einfach finden & ersetzen Sie auf Ihrer Seite den Quellcode ($pageContents) für alle Instanzen von ", und ersetzen Sie Sie, was die $pageTitle variable gesetzt war. Natürlich wird es dann ersetzen
<title><!--TITLE--></title>
mit Ihrer Seite Titel. Danach habe ich echo $pageContents, genau wie der browser hätte.Effektiv hält Sie auf Ausgang, so können Sie es verändern, bevor Sie an den browser.
Hoffentlich meine Ausführungen sind klar genug.
Look-up-ob_start () im php-Handbuch ( http://php.net/ob_start ), wenn Sie genau wissen wollen, wie das funktioniert (und man sollte) 🙂
Funktioniert wie ein Charme. Dank
InformationsquelleAutor Mayur Shah
Sie analysieren das Feld aus der Datenbank wie gewohnt.
Dann lassen Sie uns sagen, dass man es in einer variable namens
$title
Sie nurEDIT:
Ich sehe dein problem. Sie müssen
$title
BEVOR Sie es verwenden. Das heißt, sollten Sie die Datenbank Abfragen, bevor<title>...
short-tags ist seltsam Praxis
Was zerkms zu sagen versucht, ist, die Sie verwenden sollten <?php echo $meinevariable;?> statt <? echo....
Williamsonah, jetzt bekomme ich es. BTW wusste ich nicht.
InformationsquelleAutor Federico klez Culloca
Verschieben Sie die Daten-retrieval-am Anfang des Skripts, und nach, dass zu verwenden:
Wenn ich Versuch, dass der Bereich nach dem "Ultan.mich -" ist leer. Ich nicht geöffnet habe PHP ganz am Anfang des Dokuments. Sollte Ich?
so? wird er denken, bis diese sich selbst.
Sie müssen lernen, wie man Programm oder mieten jemand zu tun. keine alternativen.
Ihr Alter ist keine Rechtfertigung. Wenn Sie lernen möchten - dann versuchen zu lernen, auf eine einfache code-Beispiele, und wenn Sie arbeiten -, dann ist es ein Problem, dass Sie habe eine Arbeit, die Sie wissen nichts über
InformationsquelleAutor zerkms
Müssen Sie den Wert des
$title
bevor hallte es.Auch, sollten Sie wirklich desinfizieren Sie alle Daten vor der Verwendung in Abfragen, da dies ein Sicherheitsrisiko
InformationsquelleAutor Andres Lowrie
Was ist mit so etwas wie:
InformationsquelleAutor Hasan A Yousef
header.php hat das title-tag gesetzt
<title>%TITLE%</title>;
die "%" sind wichtig, da kaum jemand Typen " %TITLE%, so dass u verwenden können, die für str_replace() später. dann verwenden Sie die Ausgabe-Puffer-wie soWeitere Referenz, klicken Sie auf PHP - wie ändern Sie den Titel der Seite, NACHDEM Sie header.php?
InformationsquelleAutor Nana Partykar
Das problem ist, dass
$title
verwiesen wird auf Zeile 5, bevor es zugewiesen wird, in Zeile 58. Die Neuordnung Ihre code ist nicht einfach, da die Daten sowohl abgefragt und Ausgang zur gleichen Zeit. Nur um zu testen, wie funktioniert so etwas wie diese Arbeit?Weil Sie nur abrufen eine Zeile, die Sie nicht brauchen, um eine while-Schleife, aber ich habe es mit der Hoffnung, dass Sie machen es einfacher für Sie zu beziehen, um Ihren aktuellen code ein. Alles was ich getan habe, ist entfernt die aktuelle Ausgabe aus Ihre Daten abrufen und zusätzlichen Variablen für Kategorien und Kategorie-Namen, die dann bezeichnet wie üblich später. Auch habe ich noch nicht getestet. 🙂
InformationsquelleAutor nilved
Werde es schwierig sein, die Reihenfolge der code um diese Arbeit zu machen, aber ich werde es versuchen 🙂
Also, setzen Sie diese oben in deinem code:
Den Anfang der Datei sollte so Aussehen:
Erstellen Sie dann eine Datei namens mysql.php in das gleiche Verzeichnis, das die Datei enthält den code, den du zitiert hast.
Gesetzt dies ist mysql.php:
Gut, hoffe, dass hat geholfen 🙂
InformationsquelleAutor
Ich weiß, dies ist eine alte post, aber nach diesem ich denke, diese Lösung ist viel einfacher (obwohl es technisch löst das problem mit Javascript und nicht PHP).
InformationsquelleAutor Martin
sollte diese Arbeit gut für Sie
InformationsquelleAutor MaidBoggle
wenn Sie wollen aktuelle Skript mit dem Namen als Titel-tag
fügen Sie die Funktion in Ihrem Projekt
und in Ihre html beinhalten die Funktion Skript
und ersetzen Sie Ihre Titel-tag mit diesem
funktioniert es auf php7 und oben, aber ich habe keine Ahnung von php 5.*
Hoffe es hilft
InformationsquelleAutor Manojkiran.A