(23 replies, posted in General discussion)

To be honest, PHPBB 3.1 has extension system.


Extensions are the natural successor to modifications (sometimes known as MODs), the development and support of which have defined the community's involvement in the phpBB project for over a decade. Unlike modifications, the extensions system for edit-less changes in phpBB 3.1 makes customising phpBB easier than ever.

Since MySQL 5.6 there is no variable `have_innodb`.
So, you cannot use install option "MySQL Improved (InnoDB)" or 'MySQL Standard (InnoDB)'.

Because of
https://github.com/punbb/punbb/blob/mas … l.php#L483

            $result = $forum_db->query('SHOW VARIABLES LIKE \'have_innodb\'');
            $row = $forum_db->fetch_assoc($result);
            if (!$row || !isset($row['Value']) || strtolower($row['Value']) != 'yes')
                error($lang_install['MySQL InnoDB Not Supported']);

You can adopt workaround from FluxBB ticket http://fluxbb.org/development/core/tickets/1078/


(0 replies, posted in General discussion)

Can somebody explain what this line does in constructor method:

        return $this->link_id;


it is just garbage that have forgotten to throw away, isn't it?

You can check (but not change) current PHP settings in PunBB Administration panel / Index / "Show info" link.

rosebar wrote:

Interestingly this message only seems to come up with an rtf file. If I try to attach a pdf or jpg I don't get an error message but the new post doesn't show the attachments so it isn't working with these either.

It may sounds boring, but check your "Max filesize" setting for attachment mod, please. Try to upload tiny files.
A.f.a.i.k. too big files doesn't attached without any error messages.

rosebar, what is your hoster? Some free hostings has odd limitations.
Perhabs the source file in tmp folder was absent? Try to check it.

Currently i’m trying to integrate punbb 1.2.6 and wordpress 2.3.3, i’m using Rickards excellent Jl-punbb user registration plugin that merges the user databases all that is working fine.

can you give the link to this plugin, please!


(70 replies, posted in News)

as for me, let punbb differ from fluxbb. cloning hasn't meaning.


(70 replies, posted in News)



(20 replies, posted in PunBB 1.2 troubleshooting)

I hope so. Thank you!


(20 replies, posted in PunBB 1.2 troubleshooting)

a lot of software uses mbstring or it is not php
and (i think) they uses international testers in development stage

Compare to latest PHPBB:

B.T.W. phpbb3 engine tests presence of mbstring extension and if it not found emulates them.
also, phpbb3 give the choice how to search: by default it NOT uses mysql fulltext. and it care about non-latin languages


phpbb tables for searching is very similar to punbb 1.2 : there are wordlist, wordmatch and searchresult tables

My Request:
Dear PunBB developers!
- Next PunBB should have administrative option to choose between mysql fulltext and native (like in 1.2) search engines.
- As general all string functions should be multibyte. If mbstring extension is not available, punbb shoud use its own workaround.


(20 replies, posted in PunBB 1.2 troubleshooting)

I don't know how about others. Is it UTF-8 ? Is it care about multibyte?

Look at PunBB, search.php:

        $keywords = (isset($_GET['keywords'])) ? strtolower(trim($_GET['keywords'])) : null;

In UTF-8 version strtolower brakes cyrillic text BEFORE real search.

I've made some test script with this fragment for illustration. testmb.php


    $keywords = (isset($_GET['keywords'])) ? strtolower(trim($_GET['keywords'])) : null;
    $keywords_len = strlen($keywords);
    $author = (isset($_GET['author'])) ? strtolower(trim($_GET['author'])) : null;

        $keywords_mb = (isset($_GET['keywords'])) ? mb_strtolower(trim($_GET['keywords'])) : null;
    $keywords_len_mb = mb_strlen($keywords_mb);
    $author_mb = (isset($_GET['author'])) ? mb_strtolower(trim($_GET['author'])) : null;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>UTF-8 text transformation test</title>
FORM {padding: 0; margin: 0; float: left; overflow: hidden; width: auto;}
FIELDSET, DIV, P {padding: 0; margin: 0; overflow: hidden; width: auto; clear: both;}
SPAN.lbl {position: absolute; left: 10px;}
P {padding: 10px; position: relative;}
INPUT {float: left; margin-left: 10em;}
SPAN {font-weight: bold;}
    <form action="testmb.php" method="get">
        <p><label><span class="lbl">Keywords:</span> <input name="keywords" type="text" value="<?php echo htmlspecialchars(isset($_GET['keywords']) ? $_GET['keywords'] : '') ?>" /></label></p>
        <p><label><span class="lbl">Author:</span> <input name="author" type="text" value="<?php echo htmlspecialchars(isset($_GET['keywords']) ? $_GET['author'] : '') ?>" /></label></p>
        <input type="submit" value="OK" />

        <h3>Like in PunBB (non-multibyte):</strong></h3>
        <p><span>keywords:</span> <?php echo $keywords ?></p>
        <p><span>keywords len:</span> <?php echo $keywords_len ?></p>
        <p><span>author:</span> <?php echo $author ?></p>

        <p><span>keywords(mb):</span> <?php echo $keywords_mb ?></p>
        <p><span>keywords len(mb):</span> <?php echo $keywords_len_mb ?></p>
        <p><span>author(mb):</span> <?php echo $author_mb ?></p>


Screenshot 1 (Windows): broken characters

Screenshot 2 (Unix): case not changed

may be it depends on locale or PHP version... but in both cases it wrong because PHP is not multibyte in core. it should use mbstring extension!

Edited: I've add  strlen/mb_strlen into example code
Live example with russian text: http://tlogr.com/testmb.php?keywords=%D … 0%B0%D0%BD

P.S. I found why and when Windows default behaviour is deffer then Unix. In phpbb3 :

// Enforce ASCII only string handling
setlocale(LC_CTYPE, 'C');

when I copy this part into test script both installatons do the same (as in Unix screenshot)


(20 replies, posted in PunBB 1.2 troubleshooting)


First of all, UTF-8 is still one-byte encoding while all your text is latin. This is why you and other developers and testers can't here me.
But there are millions and millions of users uses non-latin languages (multibyte in UTF-8).

1. Fulltext search is not relevant enough for Russian languages (and very probably for others).
The solution is giving the OPTION Fulltext|Legacy search for board admin.

2. punbb 1.3 uses neither mbstring extension nor "workarounds". PHP itself IS NOT unicode-compatible. All of string function such as strtolower strlen etc. will produce WRONG UNPREDICTABLE RESULTS for multibyte strings. This trouble IS NOT cureable by extensions, as general. There are too many string functions in code...
The (undescribed) solution might be function overloading. Unfortunatelly it is not possible on most hostings.

The worst thing is forum owner forced to change base engine code. I hope you'll understand me at last.

Best regards!


(20 replies, posted in PunBB 1.2 troubleshooting)

Smartys, you're happy 8bit human. big_smile

I'm needy Russian and my bitter experience is: fulltext gives the strange results, sometimes.
It's usual that US and other latin-alphabet people cannot understand a problem.

B.T.W. You think 1.3 is unicode ready? I don't think so...

So, I have to "reinvent the wheel".


(20 replies, posted in PunBB 1.2 troubleshooting)

Smartys wrote:

...but I doubt anyone is going to devote the time and effort at this point to completely rewriting 1.2's search to use a new system.

Not all punbb webmasters is in ecstasy over 1.3 and it's fulltext search. As for me, fulltext has critical disadvantages.
I'm working on some 1.2 search improvements.


(40 replies, posted in Programming)

MattF, what did you say? Is it "take it easy" or "there is a place for recast"?


(40 replies, posted in Programming)

elbeko wrote:

When searching for '*????*' it worked.

oh, jesus! strange solution, isn't it?

why it doean't find "????"? it's normal 4-character length word.

imho, fulltext search isn't an "absolute weapon". i know how to mod the old word-table-based search. but fulltext search is blackbox with it's own rules that i cannot moderate. most of forum owners cannot modify mysql settings on hosting and, of course, they didn't know what they have to do.

so, [i think] it's better to leave both options for mysql: the traditional and the new one.


(3 replies, posted in PunBB 1.2 discussion)

It is an error on Opera browser with Administration tabbed menu (submenu). IE6 & IE7 are ok!


Opera 8.54
PunBB 1.3 rev.1262


(40 replies, posted in Programming)

At this moment PunBB 1.3 search cannot find really UTF-8 words. It's ok with 8bit only sad
I've test Russian: http://www.pundemo.org/post67.html

ok, MAttf. I was think so already, but you resolve my doubts smile

Thank you Smartys! I have another Q:
My I DO NOT copy copiright to NEW files?

If I have my own fork with a lot of totally new php files, what I have to do with Rikard copiright?


(0 replies, posted in PunBB 1.2 bug reports)

In both PunBB 1.2.14 and 1.3 I found such expressions:

    $email = strtolower(trim($_POST['req_email']));

It is incorrect! In general, local part (before "@" symbol) of email address is case-sensitive.
dArt@somesite.com and dart@somesite.com is different, as a rule.
Exception is Postmaster@... only
This drawback can follow errors. For example some user cannot restore they password.

Look at this please: http://en.wikipedia.org/wiki/E-mail_address
"the local-part "MUST BE treated as case sensitive"
"In particular, for some hosts the user "smith" is different from the user "Smith". "

If remote URL includes were disabled on your server but your frontpage and forum on the same site, you can include extern directly without 'http://...':

in FRONTPAGE script:

$_GET['action'] = 'active';
$_GET['show'] = '10';
include PUN_ROOT.'extern.php';

If PUN_ROOT constant is not defined on your frontpage script, modify last line to './forum/extern.php' or './extern.php' as you need.

But, If PUN_ROOT constant is already defined, there is an error "Constant PUN_ROOT already defined in ...extern.php ..."

To fix it open EXTERN.PHP, find this

define('PUN_ROOT', './');

and add BEFORE it

if (!defined('PUN_ROOT'))

then find

    require PUN_ROOT.'cache/cache_config.php';

and add AFTER it


Now your extern.php will work as standalone script and as included script!


(20 replies, posted in PunBB 1.2 troubleshooting)

Solution for error Unable to insert search index words:
word varchar(40) or
word varbinary(40)

for non-8bit UTF-8 words when PHP mb_strlen($word) == 20 the MySQL length(word) == 40

Russian-reading users may look this: http://punbb.ru/viewtopic.php?id=1222

May be the good way is to extend report system?
Now there are only two kind of report: "complaint" from post and "new user" report. Let the new "admin note" report.