UBB parser invoegen in weblog
luchtpost - 10/11/2007 19:24 (laatste wijziging 10/11/2007 20:16)
PHP interesse
Beste sitemasters,
Is het mogelijk in het volgende script een UBB parser te verwerekn?
index.php
<?php mysql_connect("localhost","","");
mysql_select_db("");
$query ="SELECT entrytitle, entrytext,";
$query.=" DATE_FORMAT(entrydate, '%M %d, %Y') AS date";
$query.=" FROM weblog ORDER BY entrydate DESC LIMIT 10";
$result=mysql_query($query);
while (list($entrytitle,$entrytext,$entrydate) = mysql_fetch_row($result)) {
echo "<dt>$entrytitle</b></dt>"; echo "<dt>$entrydate</b></dt>";
echo "<dd>$entrytext</dd><br>";
}
?>
$query = "SELECT entrytitle, entrytext," ;
$query .= " DATE_FORMAT(entrydate, '%M %d , %Y') AS date" ;
$query .= " FROM weblog ORDER BY entrydate DESC LIMIT 10" ;
echo "<dt>$entrytitle </b></dt>" ; echo "<dt>$entrydate </b></dt>" ; echo "<dd>$entrytext </dd><br>" ; }
?>
Graag zou ik deze parser gebruiken:
ubb.php
<?php function parseubb($bericht,$quote_color){
$bericht = str_replace ("[br]","\n",$bericht);
$bericht = str_replace ("\n","<br>",$bericht);
$bericht = str_replace ("","<b>Code:</b><br><table bgcolor=\"#000000\" cellspacing=\"1\" width=\"90%\"><tr><td><table cellpadding=2 cellspacing=\"0\" bgcolor=\"#FFFFFF\" width=\"100%\"><tr><td><font face=Courier size=\"1\" color=\"#000000\">", $bericht);
$bericht = str_replace ("", "</font></td></tr></table></td></tr></table>", $bericht);
$bericht = str_replace ("[b ]", "<b>", $bericht); // [b ] zonder spatie
$bericht = str_replace ("[i ]", "<i>", $bericht); // [i ] zonder spatie
$bericht = str_replace ("[u ]", "<u>", $bericht); // [u ] zonder spatie
$bericht = str_replace ("[s]", "<s>", $bericht);
$bericht = str_replace ("[/b ]", "</b>", $bericht); // [/b ] zonder spatie
$bericht = str_replace ("[/i ]", "</i>", $bericht); // [/i ] zonder spatie
$bericht = str_replace ("[/u ]", "</u>", $bericht); // [/u ] zonder spatie
$bericht = str_replace ("[/s]", "</s>", $bericht);
$bericht = str_replace ("[move]", "<div align=\"center\"><marquee width=\"90%\">", $bericht);
$bericht = str_replace ("[/move]", "</marquee></div>", $bericht);
$bericht = preg_replace ("#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si", "<font color=\"\\1\">\\2</font>", $bericht);
$bericht = preg_replace ("/\[font=(.*)\](.*)\[\/font\]/", "<font face=\"$1\">$2</font>", $bericht);
$bericht = preg_replace ("/\[size=(.*)\](.*)\[\/size\]/", "<font size=\"$1\">$2</font>", $bericht);
$bericht = preg_replace("/\[img\](.*?)\[\/img\]/si", "<img src=\"\\1\" border=\"0\">",$bericht);
$bericht = str_replace ("[tt]", "<tt>", $bericht);
$bericht = str_replace ("[/tt]", "</tt>", $bericht);
$bericht = str_replace ("[q]", "<q>", $bericht);
$bericht = str_replace ("[/q]", "</q>", $bericht);
$bericht = str_replace ("[p]", "<p>", $bericht);
$bericht = str_replace ("[/p]", "</p>", $bericht);
$bericht = str_replace ("[blockquote]", "<blockquote>", $bericht);
$bericht = str_replace ("[/blockquote]", "</blockquote>", $bericht);
$bericht = str_replace ("[h1]", "<h1>", $bericht);
$bericht = str_replace ("[/h1]", "</h1>", $bericht);
$bericht = str_replace ("[left]", "<div align=left>", $bericht);
$bericht = str_replace ("[/left]", "</div>", $bericht);
$bericht = str_replace ("[center]", "<div align=\"center\">", $bericht);
$bericht = str_replace ("[/center]", "</div>", $bericht);
$bericht = str_replace ("[right]", "<div align=\"right\">", $bericht);
$bericht = str_replace ("[/right]", "</div>", $bericht);
$bericht = str_replace ("[sub]", "<sub>", $bericht);
$bericht = str_replace ("[/sub]", "</sub>", $bericht);
$bericht = str_replace ("[sup]", "<sup>", $bericht);
$bericht = str_replace ("[/sup]", "</sup>", $bericht);
$bericht = str_replace ("[[","{",$bericht);
$bericht = str_replace ("]]","}",$bericht);
$bericht = str_replace ("|","|",$bericht);
$bericht = str_replace ("{{","[",$bericht);
$bericht = str_replace ("}}","]",$bericht);
$bericht = str_replace ("[hr]","<hr color=\"#FFFFFF\" noshade />",$bericht);
$bericht = eregi_replace("\\[email=([^\\[]*)\\]([^\\[]*)\\[/email\\]", "<a href=\"mailto:\\1\">\\2</a>",$bericht); $bericht = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>\\2</a>",$bericht);
$bericht = preg_replace("/\[url\](.*?)\[\/url\]/si", "<a href=\"\\1\" target=_blank>\\1</a>",$bericht);
$bericht = preg_replace("/\[email\](.*?)\[\/email\]/si", "<a href=\"mailto:\\1\">\\1</a>",$bericht);
$bericht = preg_replace ("#\[ftp\]([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\[/ftp\]#", "<a href=\"ftp://\\1\\2\" target=\"_blank\">\\2</a>", $bericht);
$bericht = preg_replace ("#\[ftp\]([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\[/ftp\]#", "<a href=\"ftp://\\1\" target=\"_blank\">\\1</a>", $bericht);
$bericht = preg_replace ("#\[ftp=([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/ftp\]#", "<a href=\"ftp://\\1\\2\" target=\"_blank\">\\2</a>", $bericht);
$bericht = preg_replace ("#\[ftp=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/ftp\]#", "<a href=\"ftp://\\1\" target=\"_blank\">\\2</a>", $bericht); $bericht = preg_replace("/\[quote=(.+?)\](.+?)\[\/quote\]/is", '<br><table width="100%" cellspacing="0" cellpadding="0"><tr><td width="5%"> </td><td>Quote:</td></tr><tr><td width="5%"> </td><td bgcolor=".$quote_color." class="border">$1<br>$2</td></tr></table><br>', $bericht); $bericht = str_replace ("[list]","<ul>",$bericht);
$bericht = str_replace ("[*]","<li>",$bericht);
$bericht = str_replace ("[/list]","</li></ul>",$bericht);
return $bericht;
}
?>
<?php function parseubb( $bericht , $quote_color ) {
$bericht = str_replace ( "" , "<b>Code:</b><br><table bgcolor=\" #000000\" cellspacing=\" 1\" width=\" 90%\" ><tr><td><table cellpadding=2 cellspacing=\" 0\" bgcolor=\" #FFFFFF\" width=\" 100%\" ><tr><td><font face=Courier size=\" 1\" color=\" #000000\" >" , $bericht ) ; $bericht = str_replace ( "" , "</font></td></tr></table></td></tr></table>" , $bericht ) ; $bericht = str_replace ( "[b ]" , "<b>" , $bericht ) ; // [b ] zonder spatie $bericht = str_replace ( "[i ]" , "<i>" , $bericht ) ; // [i ] zonder spatie $bericht = str_replace ( "[u ]" , "<u>" , $bericht ) ; // [u ] zonder spatie $bericht = str_replace ( "[/b ]" , "</b>" , $bericht ) ; // [/b ] zonder spatie $bericht = str_replace ( "[/i ]" , "</i>" , $bericht ) ; // [/i ] zonder spatie $bericht = str_replace ( "[/u ]" , "</u>" , $bericht ) ; // [/u ] zonder spatie $bericht = str_replace ( "[move]" , "<div align=\" center\" ><marquee width=\" 90%\" >" , $bericht ) ; $bericht = str_replace ( "[/move]" , "</marquee></div>" , $bericht ) ; $bericht = preg_replace ( "#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si" , "<font color=\" \\1 \" >\\2 </font>" , $bericht ) ; $bericht = preg_replace ( "/\[font=(.*)\](.*)\[\/font\]/" , "<font face=\" $1 \" >$2 </font>" , $bericht ) ; $bericht = preg_replace ( "/\[size=(.*)\](.*)\[\/size\]/" , "<font size=\" $1 \" >$2 </font>" , $bericht ) ; $bericht = preg_replace ( "/\[img\](.*?)\[\/img\]/si" , "<img src=\" \\1 \" border=\" 0\" >" , $bericht ) ; $bericht = str_replace ( "[blockquote]" , "<blockquote>" , $bericht ) ; $bericht = str_replace ( "[/blockquote]" , "</blockquote>" , $bericht ) ; $bericht = str_replace ( "[left]" , "<div align=left>" , $bericht ) ; $bericht = str_replace ( "[/left]" , "</div>" , $bericht ) ; $bericht = str_replace ( "[center]" , "<div align=\" center\" >" , $bericht ) ; $bericht = str_replace ( "[/center]" , "</div>" , $bericht ) ; $bericht = str_replace ( "[right]" , "<div align=\" right\" >" , $bericht ) ; $bericht = str_replace ( "[/right]" , "</div>" , $bericht ) ; $bericht = str_replace ( "[hr]" , "<hr color=\" #FFFFFF\" noshade />" , $bericht ) ; $bericht = eregi_replace ( "\\[email=([^\\[]*)\\]([^\\[]*)\\[/email\\]" , "<a href=\" mailto:\\1 \" >\\2 </a>" , $bericht ) ; $bericht = eregi_replace ( "\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]" , "<a href=\" \\1 \" target=_blank>\\2 </a>" , $bericht ) ; $bericht = preg_replace ( "/\[url\](.*?)\[\/url\]/si" , "<a href=\" \\1 \" target=_blank>\\1 </a>" , $bericht ) ; $bericht = preg_replace ( "/\[email\](.*?)\[\/email\]/si" , "<a href=\" mailto:\\1 \" >\\1 </a>" , $bericht ) ; $bericht = preg_replace ( "#\[ftp\]([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\[/ftp\]#" , "<a href=\" ftp://\\1 \\2 \" target=\" _blank\" >\\2 </a>" , $bericht ) ; $bericht = preg_replace ( "#\[ftp\]([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\[/ftp\]#" , "<a href=\" ftp://\\1 \" target=\" _blank\" >\\1 </a>" , $bericht ) ; $bericht = preg_replace ( "#\[ftp=([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/ftp\]#" , "<a href=\" ftp://\\1 \\2 \" target=\" _blank\" >\\2 </a>" , $bericht ) ; $bericht = preg_replace ( "#\[ftp=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/ftp\]#" , "<a href=\" ftp://\\1 \" target=\" _blank\" >\\2 </a>" , $bericht ) ; $bericht = preg_replace ( "/\[quote=(.+?)\](.+?)\[\/quote\]/is" , '<br><table width="100%" cellspacing="0" cellpadding="0"><tr><td width="5%"> </td><td>Quote:</td></tr><tr><td width="5%"> </td><td bgcolor=".$quote_color." class="border">$1<br>$2</td></tr></table><br>' , $bericht ) ; $bericht = str_replace ( "[list]" , "<ul>" , $bericht ) ; $bericht = str_replace ( "[/list]" , "</li></ul>" , $bericht ) ; return $bericht ;
}
?>
Normaal gezien moet ge dan ubb.php includen in index.php maar dat is niet voldoende. Wat moet ik nog aanpassen?
19 antwoorden
Gesponsorde links
ranco - 10/11/2007 19:31 (laatste wijziging 10/11/2007 19:33)
PHP gevorderde
Alleen includen is niet genoeg. in ubb.php staat de functie die alles moet verwerken. Maar deze moet je in index.php wel aanroepen. Dit doet je door:
in je index.php je in dit aan te passen:
echo "<dd>parseubb($entrytext)</dd><br>";
echo "<dd>parseubb($entrytext )</dd><br>" ;
Voordat je code op het scherm komt doorloopt hij dan de ubbfunctie.
Ik merk uit je vraag op dat je nog niet, of nauwelijks verstand hebt van functies. Misschien is het wel handig om je hier wat meer in te gaan verdiepen?
EDIT: GEK! haal je inlogcodes weg uit je code..... dit hoeft niemand te weten....
Zo kan iedereen in je database gaan liggen rommelen! NOOOOOIIIT doen!
luchtpost - 10/11/2007 20:25
PHP interesse
Oh, inlogcodes verwijderd!
Als ik dat stukje code vervang werkt de parser nog steeds niet...
ranco - 11/11/2007 02:56
PHP gevorderde
Verander deze regel code:
while (list($entrytitle,$entrytext,$entrydate) = mysql_fetch_row($result)) {
Naar deze regel code:
While($arr = mysql_fetch_assoc($result)){
echo ($arr["entrytitle"]."<br />");
echo ($arr["entrydate"]. "</b>);
echo ($arr["entrytext"]);
}
echo ( $arr [ "entrytitle" ] . "<br />" ) ; echo ( $arr [ "entrydate" ] . "</b>); echo ($arr [" entrytext"]);
}
Giant - 11/11/2007 12:50
PHP beginner
While($arr = mysql_fetch_assoc($result)){
echo ($arr["entrytitle"]."<br />");
echo ($arr["entrydate"]. "</b>");
echo ($arr["entrytext"]);
}
echo ( $arr [ "entrytitle" ] . "<br />" ) ; echo ( $arr [ "entrydate" ] . "</b>" ) ; echo ( $arr [ "entrytext" ] ) ; }
is de code van ranco maar even een foutje er uit gehaald
ranco - 11/11/2007 16:06 (laatste wijziging 11/11/2007 16:08)
PHP gevorderde
Inderdaad, een aanhalingsteken vergeten.... schoonheidsfoutjes
Edit:
Meteen even iets vollediger gemaakt:
While($arr = mysql_fetch_assoc($result)){
echo (parseubb($arr["entrytitle"])."<br />");
echo (parseubb($arr["entrydate"]). "</b>");
echo (parseubb($arr["entrytext"]));
}
echo ( parseubb
( $arr [ "entrytitle" ] ) . "<br />" ) ; echo ( parseubb
( $arr [ "entrydate" ] ) . "</b>" ) ; echo ( parseubb
( $arr [ "entrytext" ] ) ) ; }
luchtpost - 11/11/2007 17:25 (laatste wijziging 28/06/2008 21:49)
PHP interesse
Mmm, ik krijg deze error:
Parse error: syntax error, unexpected '}' in /customers/mijnsite.be/mijnsite.be/httpd.www/index.php on line 30
luchtpost - 11/11/2007 18:28 (laatste wijziging 11/11/2007 18:49)
PHP interesse
Dit is de code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="author" content="" />
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1" />
<link rel="stylesheet" href="style.css"
type="text/css" />
<title>luchtpost</title>
</head>
<body>
<div id="container"><?php include('ubb.php');?>
<?php mysql_connect("localhost","","");
mysql_select_db("");
$query ="SELECT entrytitle, entrytext,";
$query.=" DATE_FORMAT(entrydate, '%M %d, %Y') AS date";
$query.=" FROM weblog ORDER BY entrydate DESC LIMIT 10";
$result=mysql_query($query);
While($arr = mysql_fetch_assoc($result)){
echo ($arr["entrytitle"]."<br />");
echo ($arr["entrydate"]. "</b>");
echo ($arr["entrytext"]);
}
echo "<dt>$entrytitle</b></dt>";
echo "<dt>$entrydate</b></dt>";
echo "<dd>$entrytext</dd><br>";
}
?></div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="author" content="" />
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1" />
<link rel="stylesheet" href="style.css"
type="text/css" />
<title>luchtpost</title>
</head>
<body>
<div id="container"><?php include ( 'ubb.php' ) ; ?>
$query = "SELECT entrytitle, entrytext," ;
$query .= " DATE_FORMAT(entrydate, '%M %d , %Y') AS date" ;
$query .= " FROM weblog ORDER BY entrydate DESC LIMIT 10" ;
echo ( $arr [ "entrytitle" ] . "<br />" ) ; echo ( $arr [ "entrydate" ] . "</b>" ) ; echo ( $arr [ "entrytext" ] ) ; }
echo "<dt>$entrytitle </b></dt>" ; echo "<dt>$entrydate </b></dt>" ; echo "<dd>$entrytext </dd><br>" ; }
?> </div>
</body>
</html>
Godlord - 11/11/2007 18:34 (laatste wijziging 11/11/2007 18:41)
PHP gevorderde
Ik zie 2 maal } en maar 1 maal {. Dat klopt niet echt. Ik heb het over Lijn: 19, 23 en 27 als je de accolades zoekt.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="author" content="" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" type="text/css" />
<title>luchtpost</title>
</head>
<body>
<div id="container">
<?php
include('ubb.php');
mysql_connect("localhost","xxx","xxx");
mysql_select_db("luchtpost_be");
$query = "SELECT entrytitle, entrytext,";
$query .= " DATE_FORMAT(entrydate, '%M %d, %Y') AS date";
$query .= " FROM weblog ORDER BY entrydate DESC LIMIT 10";
$result = mysql_query($query);
while ($arr = mysql_fetch_assoc($result)) {
echo ($arr["entrytitle"]."<br />");
echo ($arr["entrydate"]. "</b>");
echo ($arr["entrytext"]);
}
/* echo "<dt>$entrytitle</b></dt>";
echo "<dt>$entrydate</b></dt>";
echo "<dd>$entrytext</dd><br>";
} */
?>
</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="author" content="" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" type="text/css" />
<title>luchtpost</title>
</head>
<body>
<div id="container">
<?php
include ( 'ubb.php' ) ;
$query = "SELECT entrytitle, entrytext," ;
$query .= " DATE_FORMAT(entrydate, '%M %d , %Y') AS date" ;
$query .= " FROM weblog ORDER BY entrydate DESC LIMIT 10" ;
echo ( $arr [ "entrytitle" ] . "<br />" ) ; echo ( $arr [ "entrydate" ] . "</b>" ) ; echo ( $arr [ "entrytext" ] ) ; }
/* echo "<dt>$entrytitle</b></dt>";
echo "<dt>$entrydate</b></dt>";
echo "<dd>$entrytext</dd><br>";
} */
?>
</div>
</body>
</html>
Note: niet je MySQL gebruikersnaam en wachtwoord opgeven!
luchtpost - 11/11/2007 18:54
PHP interesse
De ubb parser doet nog steeds niets...
Godlord - 11/11/2007 18:57
PHP gevorderde
Vind ik niet zo vreemd eigenlijk, er wordt nergens parseubb() gebruikt.
Gerard - 11/11/2007 18:58
Ouwe rakker
Ik wil je nog even een paar kleine dingen als tip meegeven die wat off-topic zijn. Je maakt gebruik van de volgende constructie om de query op te bouwen:
<?php
$query ="SELECT entrytitle, entrytext,";
$query.=" DATE_FORMAT(entrydate, '%M %d, %Y') AS date";
$query.=" FROM weblog ORDER BY entrydate DESC LIMIT 10";
<?php
$query = "SELECT entrytitle, entrytext," ;
$query .= " DATE_FORMAT(entrydate, '%M %d , %Y') AS date" ;
$query .= " FROM weblog ORDER BY entrydate DESC LIMIT 10" ;
Veel coding standards houden echter de volgende notatie aan:
<?php
$query = "SELECT entrytitle, entrytext,
DATE_FORMAT(entrydate, '%M %d, %Y') AS date
FROM weblog
ORDER BY entrydate DESC
LIMIT 10";
<?php
$query = "SELECT entrytitle, entrytext,
DATE_FORMAT(entrydate, '%M %d , %Y') AS date
FROM weblog
ORDER BY entrydate DESC
LIMIT 10" ;
Mocht je dat toch niet zo aanstaan dan wil je alsnog adviseren om je query als volgt te schrijven:
<?php
$query = "SELECT entrytitle, entrytext,"
. "DATE_FORMAT(entrydate, '%M %d, %Y') AS date"
. "FROM weblog"
. "ORDER BY entrydate DESC"
. "LIMIT 10";
<?php
$query = "SELECT entrytitle, entrytext,"
. "DATE_FORMAT(entrydate, '%M %d , %Y') AS date"
. "FROM weblog"
. "ORDER BY entrydate DESC"
. "LIMIT 10" ;
Dat leest sowieso wat prettiger en je zet de text maar één keer weg in de variabele in plaats van 3 keer. Miliseconden, maar toch.
@Godlord
Wanneer je gegevens naar het beeld wegzet met PHP.net: echo dien je géén gebruik te maken van de (). Dit heeft er mee te maken dat echo géén functie is maar een language construct.
@Topic-Start
Variabelen moet je buiten de quotes halen. Wanneer je toch gebruik wil maken van variabelen binnen de quotes heeft de volgende setup de voorkeur:
<?php
echo "Dit is een {$variabele} binnen quotes";
<?php
echo "Dit is een {$variabele} binnen quotes" ;
Verder dien je alle gegevens die je wegzet naar het scherm even de eventuele slashes te verwijderen (PHP.net: stripslashes ) en daarnaast moet je het even beveiligen met PHP.net: htmlentities of PHP.net: htmlspecialchars om gekke dingen te voorkomen.
Ik wil je daarnaast ook adviseren om gebruik te maken van betere variabelenamen binnen je applicatie. Ik gebruik eerst jouw voorbeeld en geef dan één van mij.
<?php
mysql_connect("localhost","luchtpost_be","HIERSTONDJEPASS");
mysql_select_db("luchtpost_be");
$query ="SELECT entrytitle, entrytext,";
$query.=" DATE_FORMAT(entrydate, '%M %d, %Y') AS date";
$query.=" FROM weblog ORDER BY entrydate DESC LIMIT 10";
$result=mysql_query($query);
While($arr = mysql_fetch_assoc($result)){
echo ($arr["entrytitle"]."<br />");
echo ($arr["entrydate"]. "</b>");
echo ($arr["entrytext"]);
}
?>
<?php
$query = "SELECT entrytitle, entrytext," ;
$query .= " DATE_FORMAT(entrydate, '%M %d , %Y') AS date" ;
$query .= " FROM weblog ORDER BY entrydate DESC LIMIT 10" ;
echo ( $arr [ "entrytitle" ] . "<br />" ) ; echo ( $arr [ "entrydate" ] . "</b>" ) ; echo ( $arr [ "entrytext" ] ) ; }
?>
<?php
$databaseConnection = mysql_connect('localhost', 'username', 'password');
$databaseSelect = mysql_select_db('database', $databaseConnection);
$weblogEntries = mysql_query("SELECT entrytitle, entrytext,
DATE_FORMAT(entrydate, '%M %d, %Y') AS date
FROM weblog
ORDER BY entrydate DESC
LIMIT 10");
while ($weblogEntry = mysql_fetch_assoc($weblogEntries)) {
echo htmlspecialchars(stripslashes($weblogEntry['entrytitle'])) . '<br />'
. htmlspecialchars(stripslashes($weblogEntry['entrydate'])) . '<br />'
. htmlspecialchars(stripslashes($weblogEntry['entrytext']));
}
?>
<?php
$databaseConnection = mysql_connect ( 'localhost' , 'username' , 'password' ) ;
$weblogEntries = mysql_query ( "SELECT entrytitle, entrytext, DATE_FORMAT(entrydate, '%M %d , %Y') AS date
FROM weblog
ORDER BY entrydate DESC
LIMIT 10" ) ;
}
?>
Ik heb in mijn voorbeeld geen gebruik gemaakt van error controle middels PHP.net: mysql_error . Maar dat kan je er zelf wel ingooien. Ik probeer je met dit bericht niet om te scholen naar 'mijn' systeem, maar wil je er gewoon op wijzen dat je het jezelf wat makkelijker kan maken. En wat veiliger.
Godlord - 11/11/2007 19:04
PHP gevorderde
@Proximus: ik heb enkel de code aangepast om het duidelijk te maken qua lezen, zelf gebruik ik ook echo zonder de ().
ranco - 11/11/2007 20:02 (laatste wijziging 11/11/2007 20:03)
PHP gevorderde
Je bent de parseubb functie er weer vergeten in te zetten. Dit moet werken:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="author" content="" />
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1" />
<link rel="stylesheet" href="style.css"
type="text/css" />
<title>luchtpost</title>
</head>
<body>
<div id="container"><?php include('ubb.php');?>
<?php mysql_connect("localhost","","");
mysql_select_db("");
$query ="SELECT entrytitle, entrytext,";
$query.=" DATE_FORMAT(entrydate, '%M %d, %Y') AS date";
$query.=" FROM weblog ORDER BY entrydate DESC LIMIT 10";
$result=mysql_query($query);
While($arr = mysql_fetch_assoc($result)){
echo ($arr["entrytitle"]."<br />");
echo ($arr["entrydate"]. "</b>");
echo (parseubb($arr["entrytext"]));
}
?></div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="author" content="" />
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1" />
<link rel="stylesheet" href="style.css"
type="text/css" />
<title>luchtpost</title>
</head>
<body>
<div id="container"><?php include ( 'ubb.php' ) ; ?>
$query = "SELECT entrytitle, entrytext," ;
$query .= " DATE_FORMAT(entrydate, '%M %d , %Y') AS date" ;
$query .= " FROM weblog ORDER BY entrydate DESC LIMIT 10" ;
echo ( $arr [ "entrytitle" ] . "<br />" ) ; echo ( $arr [ "entrydate" ] . "</b>" ) ; echo ( parseubb
( $arr [ "entrytext" ] ) ) ; }
?> </div>
</body>
</html>
luchtpost - 12/11/2007 19:36 (laatste wijziging 12/11/2007 19:38)
PHP interesse
Dankuwel iedereen!
Dit werkt zeer goed.
Maar ik zie geen datum meer? (in het script van Ranco)
Godlord - 12/11/2007 19:58 (laatste wijziging 12/11/2007 20:01)
PHP gevorderde
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="author" content="" />
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1" />
<link rel="stylesheet" href="style.css"
type="text/css" />
<title>luchtpost</title>
</head>
<body>
<div id="container">
<?php
include('ubb.php');
mysql_connect("localhost","","");
mysql_select_db("");
$query = "SELECT entrytitle, entrytext,";
$query .= "DATE_FORMAT(entrydate, '%M %d, %Y') AS date";
$query .= "FROM weblog";
$query .= "ORDER BY entrydate DESC";
$query .= "LIMIT 10";
$result = mysql_query($query);
while ($arr = mysql_fetch_assoc($result)){
echo $arr["entrytitle"]."<br />";
echo $arr["date"]. "</b>";
echo parseubb($arr["entrytext"]);
}
?>
</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="author" content="" />
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1" />
<link rel="stylesheet" href="style.css"
type="text/css" />
<title>luchtpost</title>
</head>
<body>
<div id="container">
<?php
include ( 'ubb.php' ) ;
$query = "SELECT entrytitle, entrytext," ;
$query .= "DATE_FORMAT(entrydate, '%M %d , %Y') AS date" ;
$query .= "FROM weblog" ;
$query .= "ORDER BY entrydate DESC" ;
$query .= "LIMIT 10" ;
echo $arr [ "entrytitle" ] . "<br />" ; echo $arr [ "date" ] . "</b>" ; echo parseubb
( $arr [ "entrytext" ] ) ; }
?>
</div>
</body>
</html>
AS date in de MySQL query, dat betekent dat je "date" moet gebruiken i.p.v. entrydate.
TotempaaltJ - 12/11/2007 21:23 (laatste wijziging 12/11/2007 21:23)
PHP interesse
Waarom staat daar een </b>, ik zie nergens een <b> staan!
Regel 26
Gerard - 12/11/2007 21:51
Ouwe rakker
Omdat dit script ondertussen door 4 verschillende personen onder de loep is genomen, veranderd is en ge-copy/paste is. Dat heeft ervoor gezorgd dat het niet echt meer werkt.
Zal ook wel de reden zijn dat luchtpost nu voor een poep en een scheet weer post dat iets niet werkt. Het opmerken dat een veld met AS een andere naam krijgt en dan dus ook op een andere naam beschikbaar is in het resultaat is basic debugging. Een PHP.net: var_export , PHP.net: var_dump of PHP.net: print_r had dit meer dan duidelijk gemaakt.
jc2 - 29/06/2008 12:26 (laatste wijziging 29/06/2008 12:27)
PHP interesse
Nog wat offtopic, maar wel iets om over na te denken:
Ik weet niet of de UBB-parser van jezelf is of van een ander, maar er is iets wat ik heel vreemd vind:
Citaat:
$bericht = str_replace ("[[","{",$bericht);
$bericht = str_replace ("]]","}",$bericht);
$bericht = str_replace ("|","|",$bericht);
$bericht = str_replace ("{{","[",$bericht);
$bericht = str_replace ("}}","]",$bericht);
Het is dan misschien maar een kleinigheidje, maar waarom wordt
[[tekst]] vervangen door {tekst}
en
{{tekst}} door [tekst] ?
Dit is toch heel verwarrend?
Waarom niet gewoon zo:
$bericht = str_replace ("[[","[",$bericht);
$bericht = str_replace ("]]","]",$bericht);
$bericht = str_replace ("|","|",$bericht);
$bericht = str_replace ("{{","{",$bericht);
$bericht = str_replace ("}}","}",$bericht);
Gesponsorde links
Dit onderwerp is gesloten .