senaste inlägg på extern sida

Frågor kring MODdar (modifikationer) för phpBB 3 (3.0.0 eller senare).

Moderatorer: Moderatorgrupp, Supportgrupp

Skriv svar
Uffee
Aktiv medlem
Aktiv medlem
Inlägg: 53
Blev medlem: 2010-08-19 18:23
Svar: 0

senaste inlägg på extern sida

Inlägg av Uffee »

Hej alla

Jag har följande kod (se nedan) och jag skulle vilja få ut självaste inlägget som en användare har skrivit. Men jag behöver hjälp med kodsnutten.

Det som står längst till vänster om bilden är bara rubriken i forumet.
exempel.jpg
exempel.jpg (29.51 KiB) Visad 6659 gånger
Sen är jag lite fundersam varför jag får ut ? istället för å ä ö. I databasen så visar det åäö. Och .php filen är satt som utf-8? Förslag på vad som kan vara fel där?

Kod: Markera allt

<?php
    // How Many Topics you want to display?
    $topicnumber = 5;
    // Change this to your phpBB path
    $urlPath = "Forum";

    // Database Configuration (Where your phpBB config.php file is located)
    include 'Forum/config.php';

    $table_topics = $table_prefix. "topics";
    $table_forums = $table_prefix. "forums";
    $table_posts = $table_prefix. "posts";
    $table_users = $table_prefix. "users";
    $link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die("Could not connect");
    mysql_select_db("$dbname") or die("Could not select database");

    $query = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username
    FROM $table_topics t, $table_forums f, $table_posts p, $table_users u
    WHERE t.topic_id = p.topic_id AND
    f.forum_id = t.forum_id AND
    t.forum_id != 3 AND 
    t.forum_id != 5 AND
    t.forum_id != 7 AND
    t.forum_id != 7 AND
    t.forum_id != 8 AND
    t.forum_id != 9 AND
    t.forum_id != 11 AND
    t.forum_id != 12 AND
    t.forum_id != 13 AND
    t.forum_id != 14 AND
    t.forum_id != 16 AND
    t.forum_id != 18 AND
    t.forum_id != 20 AND
    t.forum_id != 21 AND
    t.forum_id != 22 AND
    t.forum_id != 23 AND
    t.forum_id != 26 AND
    t.forum_id != 27 AND
    t.forum_id != 28 AND
    t.forum_id != 29 AND
    t.forum_id != 30 AND
    t.forum_id != 31 AND
    t.forum_id != 34 AND
    t.forum_id != 35 AND
    t.forum_id != 17 AND
    t.forum_id != 38 AND
    t.forum_id != 40 AND
    t.forum_id != 39 AND
    t.forum_id != 37 AND
    t.forum_id != 36 AND
    t.forum_id != 41 AND
    t.forum_id != 43 AND
    t.forum_id != 44 AND
    t.forum_id != 45 AND
    t.forum_id != 46 AND
    t.forum_id != 53 AND
    t.forum_id != 49 AND
    t.forum_id != 50 AND
    t.forum_id != 51 AND
    t.forum_id != 52 AND
    t.forum_id != 55 AND
    t.forum_id != 56 AND
    t.forum_id != 57 AND
    t.forum_id != 47 AND
    t.forum_id != 60 AND
    t.topic_status <> 2 AND
    p.post_id = t.topic_last_post_id AND
    p.poster_id = u.user_id
    ORDER BY p.post_id DESC LIMIT $topicnumber";
    $result = mysql_query($query) or die("Query failed");                           

    print "<table cellpadding='3' cellSpacing='2' height='100%' width='70%'>";
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

    echo  "<tr valign='middle'>
	
	<td>
	
	<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><font color=\"#CCC\"><h2><b><a href=\"$urlPath/viewtopic.php?f=$row[forum_id]&t=$row[topic_id]&p=$row[post_id]#p$row[post_id]\">" .
    $row["topic_title"] .    "</a>
	
	</td>
	
		<td>
	
	<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><font color=\"#CCC\"><h2><b><a href=\"$urlPath/viewtopic.php?f=$row[forum_id]&t=$row[topic_id]&p=$row[post_id]#p$row[post_id]\">" .
    $row["post_text"] .    "</a>
	
	</td>
	
	
	
	
	<td>
	
	<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><font color=\"#C0C0C0\"> Av: <a href=\"$urlPath/memberlist.php?mode=viewprofile&u=$row[user_id]\">" .
    
	
	$row["username"] .
    "
	<td>
	<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><font color=\"#C0C0C0\">" .
    date('Y-M-d H:i', $row["post_time"]) .
    "</td>
	
	</tr></font>";
    }
    print "</table>";
    mysql_free_result($result);
    mysql_close($link);
    ?>
Mvh
Uffee 8)
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6554
Blev medlem: 2004-06-09 08:32
Svar: 1
Ort: Hannover/Tyskland
Kontakt:

Re: senaste inlägg på extern sida

Inlägg av Holger »

Det är definitivt koderingen som är fel.
Spara filen i ANSI istället för UTF-8
Holger Gremminger
Ingen support via PM!
Uffee
Aktiv medlem
Aktiv medlem
Inlägg: 53
Blev medlem: 2010-08-19 18:23
Svar: 0

Re: senaste inlägg på extern sida

Inlägg av Uffee »

det tycks inte heller hjälpa. Jag har prövat att

koda det i ansi
koda i utf8
koda i utf8 (utan bom)

konvertera det till ansi
konvertera till utf8
konvertera till utf8 (utan bom)

med hjälp av notepad++

Det är bara den php filen som har bekymmer med åäö, alla andra fungerar fint? Har du fler förslag? :D
Några förslag över hur man skriver kodsnutten för att få ut post-inlägget?
Användarens profilbild
Marcus
Administratör
Administratör
Inlägg: 4321
Blev medlem: 2004-01-07 22:12
Svar: 0
Ort: Skövde

Re: senaste inlägg på extern sida

Inlägg av Marcus »

Hmmm... filen ska sparas som UTF-8 utan bom.

Men jag tror problemet är att du inte har UTF-8 som "tolkning" på din anslutning till databasen. Om kopplingen går via Latin så blir det galet. Få in detta direkt efter att du gjort anslutningen.

Kod: Markera allt

mysql_query(’SET CHARACTER SET utf8;’);
/marcus
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.

Webb- & Drupalutvecklare på Webbyrå Grebban.
Uffee
Aktiv medlem
Aktiv medlem
Inlägg: 53
Blev medlem: 2010-08-19 18:23
Svar: 0

Re: senaste inlägg på extern sida

Inlägg av Uffee »

Hej Marcus

jag ansluter till databasen via config.php som finns i forumet och alla inlägg i forumet får å ä ö
Var hade du tänkt att jag skulle skriva

Kod: Markera allt

mysql_query(’SET CHARACTER SET utf8;’);
lägger jag till den snutten i config.php så fungerar inte något sen :P

Kod: Markera allt

<?php
// phpBB 3.0.x auto-generated configuration file
// Do not change anything in this file!
$dbms = 'mysqli';
$dbhost = 'min_host';
$dbport = '';
$dbname = 'min_databas';
$dbuser = 'mitt_användarnamn';
$dbpasswd = 'mitt_lösenord';
$table_prefix = 'phpbb_';
$acm_type = 'file';
$load_extensions = '';

@define('PHPBB_INSTALLED', true);
// @define('DEBUG', true);
// @define('DEBUG_EXTRA', true);
?>
Användarens profilbild
Marcus
Administratör
Administratör
Inlägg: 4321
Blev medlem: 2004-01-07 22:12
Svar: 0
Ort: Skövde

Re: senaste inlägg på extern sida

Inlägg av Marcus »

Nej, det ska ligga i din kod, direkt efter du gör "anslutningen till databasen".

Dvs. efter denna raden:

Kod: Markera allt

$link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die("Could not connect");
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.

Webb- & Drupalutvecklare på Webbyrå Grebban.
Uffee
Aktiv medlem
Aktiv medlem
Inlägg: 53
Blev medlem: 2010-08-19 18:23
Svar: 0

Re: senaste inlägg på extern sida

Inlägg av Uffee »

Hej igen

jag prövade som Marcus sa:

Kod: Markera allt

    $link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die("Could not connect");
    mysql_query(’SET CHARACTER SET utf8;’);
	mysql_select_db("$dbname") or die("Could not select database");
Jag prövade detta alternativ med:

Kod: Markera allt

define ("DB_HOST", ""); // set database host
define ("DB_USER", ""); // set database user
define ("DB_PASS",""); // set database password
define ("DB_NAME",""); // set database name

$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("kan inte skapa en anslutning.");
mysql_query("SET CHARACTER SET utf8",$link);
mysql_query("SET NAMES 'utf8'",$link);
$db = mysql_select_db(DB_NAME, $link) or die("kan inte välja databas");
fick det inte att funka. Att det alltid ska krångla med åäö :( har ni fler förslag?
Uffee
Aktiv medlem
Aktiv medlem
Inlägg: 53
Blev medlem: 2010-08-19 18:23
Svar: 0

Re: senaste inlägg på extern sida

Inlägg av Uffee »

oj

nu ploppade å ä ö fram som det ska :D :D :D
Användarens profilbild
Marcus
Administratör
Administratör
Inlägg: 4321
Blev medlem: 2004-01-07 22:12
Svar: 0
Ort: Skövde

Re: senaste inlägg på extern sida

Inlägg av Marcus »

Sedan PHP5 kan man också göra så här:
mysql_set_charset ( string $charset [, resource $link_identifier ] )
Ex.

Kod: Markera allt

mysql_set_charset('utf8',$link); 
/marcus
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.

Webb- & Drupalutvecklare på Webbyrå Grebban.
Uffee
Aktiv medlem
Aktiv medlem
Inlägg: 53
Blev medlem: 2010-08-19 18:23
Svar: 0

Re: senaste inlägg på extern sida

Inlägg av Uffee »

Ok :D

Men bugar och tackar för hjälpen 8) 8)
Skriv svar

Vilka är online

Användare som besöker denna kategori: 6 och 0 gäster