Statistik |
Beiträge: 144.534 (Täglich: 19,19 )
Themen: 16.701
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 369%
Ausl. d. letzten 5 Minuten: 456%
Ausl. d. letzten 15 Minuten: 330%
Aktulle Uhrzeit: 07:07
Freier Webspace: 4.04 TB
PHP-Version: 7.4.33
|
|
|
WoltLab Burning Board Lite 1.0.2pl3: Update PHP-Version 7.x |
|
WoltLab Burning Board Lite 1.0.2pl3: Update PHP-Version 7.x |
|
Hallo,
Dieses Thema beschäftigt sich ausschließlich mit dem Update auf PHP 7.x und es folgt nun eine kurze Anleitung für ein Update auf PHP 7.x für das "WoltLab Burning Board Lite 1.0.2pl3".
Vorbereitungen:
Aktuelles Forum auf einem Server mit PHP 7.x spiegeln oder Sicherungskopien der Dateien erstellen.
Für ein unverändertes "WoltLab Burning Board Lite 1.0.2pl3" kann die "BugfixesPHP7.zip" aus diesem Beitrag verwendet werden: WoltLab Burning Board Lite 1.0.2pl3
Dies ist auch bei einer Neuninstallation des "WoltLab Burning Board Lite 1.0.2pl3" der empfohlene Weg!
Änderungen:
Die folgende Dateien sollten, in der Regel, ohne Probleme aus der "BugfixesPHP7.zip" für ein verändertes/erweitertes "WoltLab Burning Board Lite 1.0.2pl3" verwendet werden können:
- /acp/lib/class_db_mysql.php
- /acp/lib/class_options.php
- /acp/lib/class_query.php
Als nächstes sollte folgende Zeile aus der "/global.php" und "/acp/global.php" gelöscht werden, da die Funktion ab PHP 7 nicht mehr vorhanden ist:
php: |
1:
|
@set_magic_quotes_runtime(0); |
|
Das nächste Ziel ist die Anpassung folgender Dateien:
Diese Anpassungen beziehen sich auf den "e"-Modifier, der ab PHP 5.6 als "veraltet" eingestuft und ab der PHP 7 entfernt wurde.
- /acp/lib/class_parse.php
- /acp/lib/functions.php
suche in /acp/lib/class_parse.php nach:
php: |
1:
|
var $replace = array(); |
|
füge darunter ein:
php: |
1:
|
var $search_replace = array(); |
|
suche:
php: |
1:
|
var $tempsave = array(); |
|
füge darunter ein:
php: |
1:
2:
3:
|
function __construct($docensor=0,$wrapwidth=0,$getsmilies=0,$getbbcode=0,$showimages=0,$usecode=1,$cuturls=1) {
$this->parse($docensor,$wrapwidth,$getsmilies,$getbbcode,$showimages,$usecode,$cuturls);
} |
|
suche:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
$this->search[]="/\[list=(['\"]?)([^\"']*)\\1](.*)\[\/list((=\\1[^\"']*\\1])|(\]))/esiU";
$this->replace[]="\$this->formatlist('\\3', '\\2')";
$this->search[]="/\[list](.*)\[\/list\]/esiU";
$this->replace[]="\$this->formatlist('\\1')";
$this->search[]="/\[url=(['\"]?)([^\"']*)\\1](.*)\[\/url\]/esiU";
$this->replace[]="\$this->formaturl('\\2','\\3')";
$this->search[]="/\[url]([^\"]*)\[\/url\]/eiU";
$this->replace[]="\$this->formaturl('\\1')";
$this->search[]="/javascript:/i";
$this->replace[]="java script:";
$this->search[]="/vbscript:/i";
$this->replace[]="vb script:";
$this->search[]="/about:/i";
$this->replace[]="about :"; |
|
ersetze gegen:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
$this->search[]="/javascript:/i";
$this->replace[]="java script:";
$this->search[]="/vbscript:/i";
$this->replace[]="vb script:";
$this->search[]="/about:/i";
$this->replace[]="about :";
$this->search_replace['/\[list=([\'"]?)([^"\']*)\1](.*)\[\/list((=\1[^"\']*\1])|(\]))/siU']=function($matches) {return $this->formatlist($matches[3],$matches[2]);};
$this->search_replace['/\[list](.*)\[\/list\]/siU']=function($matches) {return $this->formatlist($matches[1]);};
$this->search_replace['/\[url=([\'"]?)([^"\']*)\1](.*)\[\/url\]/siU']=function($matches) {return $this->formaturl($matches[2],$matches[3]);};
$this->search_replace['/\[url]([^"]*)\[\/url\]/iU']=function($matches) {return $this->formaturl($matches[1]);}; |
|
suche:
php: |
1:
|
function convertHTML($post,$x=true) { |
|
ersetze gegen:
php: |
1:
|
static function convertHTML($post,$x=true) { |
|
suche:
php: |
1:
|
$post=preg_replace("/(\[(php|code)\])([^\\4\\1]*)(\[\/\\2\])/eiU","\$this->cachecode('\\3','\\2')",$post); |
|
ersetze gegen:
php: |
1:
|
$post=preg_replace_callback("/(\[(php|code)\])([^\\4\\1]*)(\[\/\\2\])/iU",function($matches) {return $this->cachecode($matches[3],$matches[2]);},$post); |
|
suche:
php: |
1:
|
$post=preg_replace("/(<table[^>]*>)([^\\3]*)(<\/table>)/eiU","\"\\1\".\$this->formatTableTR('\\2').\"\\3\"",$post); |
|
ersetze gegen:
php: |
1:
|
$post=preg_replace_callback("/(<table[^>]*>)([^\\3]*)(<\/table>)/iU",function($matches) {return $matches[1].$this->formatTableTR($matches[2]).$matches[3];},$post); |
|
suche:
php: |
1:
2:
|
if($allowbbcode==1) {
if($this->done['bbcode']!=1) $this->getbbcode(); |
|
füge darunter ein:
php: |
1:
|
$post = preg_replace_callback_array($this->search_replace, $post); |
|
suche:
php: |
1:
2:
|
$phptags=0;
$code = str_replace("\\\"","\"",$code); |
|
ersetze gegen:
php: |
1:
2:
|
$phptags=0;
//$code = str_replace("\\\"","\"",$code); |
|
suche:
php: |
1:
2:
|
else {
$code=str_replace("\\\"","\"",$code); |
|
ersetze gegen:
php: |
1:
2:
|
else {
//$code=str_replace("\\\"","\"",$code); |
|
suche:
php: |
1:
|
str_replace("\\\"", "\"", $title) |
|
ersetze gegen:
suche:
php: |
1:
|
$list = str_replace("\\\"","\"",$list); |
|
ersetze gegen:
php: |
1:
|
//$list = str_replace("\\\"","\"",$list); |
|
suche:
php: |
1:
2:
|
$text=preg_replace("/(<\/tr>)[^\\2]*(<tr[^>]*>)/iU","\\1\\2",stripslashes(trim($text)));
$text=preg_replace("/(<tr[^>]*>)([^\\3]*)(<\/tr>)/eiU","\"\\1\".\$this->formatTableTD('\\2').\"\\3\"",$text); |
|
ersetze gegen:
php: |
1:
2:
|
$text=preg_replace("/(<\/tr>)[^\\2]*(<tr[^>]*>)/iU","\\1\\2",trim($text));
$text=preg_replace_callback("/(<tr[^>]*>)([^\\3]*)(<\/tr>)/iU",function($matches) {return $matches[1].$this->formatTableTD($matches[2]).$matches[3];},$text); |
|
suche:
php: |
1:
|
$text=preg_replace("/(<\/td>)[^\\2]*(<td[^>]*>)/iU","\\1\\2",stripslashes(trim($text))); |
|
ersetze gegen:
php: |
1:
|
$text=preg_replace("/(<\/td>)[^\\2]*(<td[^>]*>)/iU","\\1\\2",trim($text)); |
|
suche in /acp/lib/functions.php nach:
php: |
1:
|
$post=preg_replace("/(&#)(\d+)(;)/e","chr(intval('\\2'))",$post); |
|
ersetze gegen:
php: |
1:
|
$post=preg_replace_callback("/(&#)(\d+)(;)/",function($matches) {return chr(intval($matches[2]));},$post); |
|
Der nächste Schritt dient zur Beseitigung einer "Konstruktor"-Meldung und einer "Non-static method"-Meldung.
Dies betrifft, sofern bisher alle Schritte erfolgreich durchgeführt wurden, folgende Dateien:
- /acp/lib/class_headers.php
- /acp/lib/class_tpl_file.php
suche in /acp/lib/class_headers.php nach:
php: |
1:
|
function send() { |
|
ersetze gegen:
php: |
1:
|
static function send() { |
|
suche:
php: |
1:
|
function compress() { |
|
ersetze gegen:
php: |
1:
|
static function compress() { |
|
suche in /acp/lib/class_tpl_file.php nach:
füge darunter ein:
php: |
1:
2:
3:
|
function __construct($templatepackid=0,$subvariablepackid=1,$prefix="") {
$this->tpl($templatepackid,$subvariablepackid,$prefix);
} |
|
Damit sollten alle nötigen Änderungen für PHP 7.x durchgeführt worden sein.
Sollten noch Fehlermeldungen erscheinen, sind jene, in der Regel, auf eine Erweiterung zurückzuführen und müssen daher separat behandelt werden.
Sollte irgendeine Änderung nicht funktionieren oder durchgeführt werden können, kann man sich gerne hier im Thema melden.
Ebenfalls bei anderen Problemen bezüglich PHP 7.x kann gerne dieses Thema verwendet werden.
__________________
|
|
20.03.2017 22:50 |
|
|
|
Zunächst einmal super beschrieben Schrimm.
Bevor ich jetzt mit den ganzen Änderungen, wollte ich nur sicherheitshalber nachfragen ob mein angehangener Fehler beim Forums Aufruf normal und mit diesen Änderungen behoben wird oder ob das was ganz anderes ist ? Danke schonmal.
Dateianhang: |
PHP 7.1.png (10 KB, 901 mal heruntergeladen)
|
|
|
22.03.2017 18:04 |
|
|
|
Hallo,
Der angezeigte Fehler verschwindet genau mit der aller ersten Änderung, die im ersten Beitrag beschrieben wurde.
__________________
|
|
22.03.2017 19:21 |
|
|
|
Hallo Schrimm,
ich war jetzt gerade die ganze Zeit dabei, die Sachen zu ändern. Der Fehler war weg. Da hattest du recht. Allerdings tauchten andere erhebliche Fehler sowohl bei PHP 5.6 als auch bei PHP 7.1 auf.
Ich musste alle Dateien von jeder Änderung hier wieder hochladen, damit ich das Forum wieder voll nutzen konnte.
Jetzt kann es natürlich durchaus sein, dass ich da Einbau Fehler drin habe. Wäre jemand so freundlich und schaut einmal über die Dateien rüber ? Ich habe die jetzt extra alle gespeichert, damit man mal sieht, wie ich das geändert habe. In der /acp/lib/class_tpl_file.php habe ich die unten genannte Zeile nicht genauso. Daher war ich da unsicher und habe erstmal nichts gemacht. Dazu habe ich dir auch einen Screenshot hochgeladen.
Nochmal zur Erklärung. Die im Anhang befindliche Zip Datei haben die Dateien, die bei mir die Probleme verursachen. Ich habe wirklich nur die Anleitungsschritte hier befolgt.
Zusätzlich ein paar Screenshots zu den Fehlern.
Erklärungen:
Einmal ein Screenshot vom Class TPL File. Da ist bei mir der Code anders. Deswegen nichts gemacht.
Index Fehler bei der Verwendung von PHP 5.6
Index Fehler bei der Verwendung von PHP 7.1
Egal ob ich PHP 5.6 oder PHP 7.1 einschalte, kann ich keinen Thread mehr öffnen. Da erscheint dann ein Fehler mit der Zeile, die ich ja geändert habe, aber ich sehe da nicht was da falsch ist ?
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von wilo: 22.03.2017 22:00.
|
|
22.03.2017 21:57 |
|
|
|
Hallo,
Die "BugfixesPHP7.zip" musst du nicht anhängen.
@/acp/lib/class_tpl_file.php
Du kannst auch diese Suchstelle verwenden:
Ob du es darunter oder darüber einfügst ist egal.
Es ist im Grunde völlig egal, wo genau du die Funktion in der Datei hingibst, so lange du sie nicht in eine andere Funktion hineinschiebst.
@Index-Fehler bei Verwendung von PHP 5.6 und PHP 7.1
Dieser Fehler ist ein klarer Fall.
Er wird verursacht durch einen Hack.
Hänge deine "index.php" bitte an.
@Letzter Screenshot
Dieser Fehler entsteht wahrscheinlich unter PHP 5.6.
Die Änderungen in diesem Thema und die Dateien in der "BugfixesPHP7.zip" sind nicht PHP 5.6 tauglich.
__________________
|
|
22.03.2017 23:33 |
|
|
|
Argh ich hatte gestern Abend die falsche Zip Datei angehangen. Sorry.
So nun ist es die richtige. Achtung: Das sind jetzt die Dateien, die ich gestern geändert habe, aber diese Fehler verursachen.
Zusätzlich habe ich auch die Index PHP angehangen.
|
|
23.03.2017 17:41 |
|
|
|
Hallo,
Bitte entferne oben die "BugfixesPHP7.zip" wieder.
Es könnte sonst jemand diese verwenden.
Wenn im original Thema dann ein "Update" kommt, ist diese nicht aktuell und könnte zu Verwirrungen führen.
Deine Dateien sind in Ordnung, wie ich bereits oben schrieb.
Führe die Änderung bezüglich der "/acp/lib/class_tpl_file.php" wie erwähnt durch.
@index.php
Ebenfalls wie erwähnt, handelt es sich dabei um einen Hack.
Genau genommen um einen "Erweiterte Statistik"-Hack.
Verstehe zwar nicht, warum der Coder auf die "glorreiche Idee" kam, dass er hier direkt auf "mysql_num_rows" zugreift und nicht auf die "WoltLab Burning Board Lite 1.0.2pl3"-Funktion "num_rows()"...
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
|
####Anfang Erweiterte Statistik####
$gespuserfrage = $db->query("SELECT blocked FROM bb".$n."_users WHERE blocked='1'");
$gespuser2=mysql_num_rows($gespuserfrage);
if($gespuser2==1) {
$gespuser="1 gesperrter";
}
else {
$gespuser="".$gespuser2." gesperrte";
}
$nafrage = $db->query("SELECT activation FROM bb".$n."_users WHERE activation='0'");
$na2=mysql_num_rows($nafrage);
if($na2==1) {
$na="1 nicht freigeschalteter";
}
else {
$na="".$na2." nicht freigeschaltete";
}
$gmfrage = $db->query("SELECT gender FROM bb".$n."_users WHERE gender='1'");
$gm=mysql_num_rows($gmfrage);
$gkafrage = $db->query("SELECT gender FROM bb".$n."_users WHERE gender='0'");
$gka=mysql_num_rows($gkafrage);
$gwfrage = $db->query("SELECT gender FROM bb".$n."_users WHERE gender='2'");
$gw=mysql_num_rows($gwfrage);
$posts2 = $db->query_first("SELECT COUNT(postid) AS posts FROM bb".$n."_posts");
$members2 = $db->query_first("SELECT COUNT(userid) AS members FROM bb".$n."_users ");
$anzahlposts = ($posts2['posts']);
$anzahluser = ($members2['members']);
$bu=sprintf("%.2f",$anzahlposts / $anzahluser);
####Ende Erweiterte Statistik#### |
|
Die Lösung ist relativ einfach:
- Umbau auf die "WoltLab Burning Board Lite 1.0.2pl3"-Funktion "num_rows()" (empfohlen)
- Direkter Umbau auf die "mysqli" oder "PDO"-Funktion
a.(num_rows)
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
|
####Anfang Erweiterte Statistik####
$gespuserfrage = $db->query("SELECT blocked FROM bb".$n."_users WHERE blocked='1'");
$gespuser2=$db->num_rows($gespuserfrage);
if($gespuser2==1) {
$gespuser="1 gesperrter";
}
else {
$gespuser="".$gespuser2." gesperrte";
}
$nafrage = $db->query("SELECT activation FROM bb".$n."_users WHERE activation='0'");
$na2=$db->num_rows($nafrage);
if($na2==1) {
$na="1 nicht freigeschalteter";
}
else {
$na="".$na2." nicht freigeschaltete";
}
$gmfrage = $db->query("SELECT gender FROM bb".$n."_users WHERE gender='1'");
$gm=$db->num_rows($gmfrage);
$gkafrage = $db->query("SELECT gender FROM bb".$n."_users WHERE gender='0'");
$gka=$db->num_rows($gkafrage);
$gwfrage = $db->query("SELECT gender FROM bb".$n."_users WHERE gender='2'");
$gw=$db->num_rows($gwfrage);
$posts2 = $db->query_first("SELECT COUNT(postid) AS posts FROM bb".$n."_posts");
$members2 = $db->query_first("SELECT COUNT(userid) AS members FROM bb".$n."_users ");
$anzahlposts = ($posts2['posts']);
$anzahluser = ($members2['members']);
$bu=sprintf("%.2f",$anzahlposts / $anzahluser);
####Ende Erweiterte Statistik#### |
|
b.(mysqli)
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
|
####Anfang Erweiterte Statistik####
$gespuserfrage = $db->query("SELECT blocked FROM bb".$n."_users WHERE blocked='1'");
$gespuser2=mysqli_num_rows($gespuserfrage);
if($gespuser2==1) {
$gespuser="1 gesperrter";
}
else {
$gespuser="".$gespuser2." gesperrte";
}
$nafrage = $db->query("SELECT activation FROM bb".$n."_users WHERE activation='0'");
$na2=mysqli_num_rows($nafrage);
if($na2==1) {
$na="1 nicht freigeschalteter";
}
else {
$na="".$na2." nicht freigeschaltete";
}
$gmfrage = $db->query("SELECT gender FROM bb".$n."_users WHERE gender='1'");
$gm=mysqli_num_rows($gmfrage);
$gkafrage = $db->query("SELECT gender FROM bb".$n."_users WHERE gender='0'");
$gka=mysqli_num_rows($gkafrage);
$gwfrage = $db->query("SELECT gender FROM bb".$n."_users WHERE gender='2'");
$gw=mysqli_num_rows($gwfrage);
$posts2 = $db->query_first("SELECT COUNT(postid) AS posts FROM bb".$n."_posts");
$members2 = $db->query_first("SELECT COUNT(userid) AS members FROM bb".$n."_users ");
$anzahlposts = ($posts2['posts']);
$anzahluser = ($members2['members']);
$bu=sprintf("%.2f",$anzahlposts / $anzahluser);
####Ende Erweiterte Statistik#### |
|
Abschließend sei noch erwähnt:
Vergiss PHP 5.6 und arbeite nur mit PHP 7.
Fehlermeldungen die bei PHP 5.6 erscheinen sind uninteressant und gewisse Änderungen für PHP 7 sind nicht abwärtskompatibel zu PHP 5.6 und werfen folglich unter PHP 5.6 eine Fehlermeldung aus.
edit:
Ich würde jedoch den Code sowieso "optimieren" und auf "num_rows" komplett verzichten und stattdessen Count verwenden.
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
|
####Anfang Erweiterte Statistik####
$gespuserfrage = $db->query_first("SELECT COUNT(*) as gespuserfrage FROM bb".$n."_users WHERE blocked='1'");
$gespuser2=$gespuserfrage['gespuserfrage'];
if($gespuser2==1) {
$gespuser="1 gesperrter";
}
else {
$gespuser="".$gespuser2." gesperrte";
}
$nafrage = $db->query_first("SELECT COUNT(*) as nafrage FROM bb".$n."_users WHERE activation='0'");
$na2=$nafrage['nafrage'];
if($na2==1) {
$na="1 nicht freigeschalteter";
}
else {
$na="".$na2." nicht freigeschaltete";
}
$gmfrage = $db->query_first("SELECT COUNT(*) as gmfrage FROM bb".$n."_users WHERE gender='1'");
$gm=$gmfrage['gmfrage'];
$gkafrage = $db->query_first("SELECT COUNT(*) as gkafrage FROM bb".$n."_users WHERE gender='0'");
$gka=$gkafrage['gkafrage'];
$gwfrage = $db->query_first("SELECT COUNT(*) as gwfrage FROM bb".$n."_users WHERE gender='2'");
$gw=$gwfrage['gwfrage'];
$posts2 = $db->query_first("SELECT COUNT(postid) AS posts FROM bb".$n."_posts");
$members2 = $db->query_first("SELECT COUNT(userid) AS members FROM bb".$n."_users ");
$anzahlposts = ($posts2['posts']);
$anzahluser = ($members2['members']);
$bu=sprintf("%.2f",$anzahlposts / $anzahluser);
####Ende Erweiterte Statistik#### |
|
__________________
Dieser Beitrag wurde 6 mal editiert, zum letzten Mal von Schrimm: 23.03.2017 20:21.
|
|
23.03.2017 19:34 |
|
|
|
Es geht wieder alles. Vielen Dank Schrimm. Die Zip darf ich leider nicht rausnehmen (kein nachträgliches bearbeiten möglich).
Das Forum läuft jetzt auf 7.1 und bis jetzt konnte ich keine Fehler finden außer einer Sache, aber das betrifft einen Hack von Viktor. Ich nehme mal an das sollte ich besser im Support Thread schreiben oder ?
Das coole ist auch, dass dadurch ein ungelöstes Problem plötzlich gelöst wurde, aber dazu mehr in einen anderen Thread.
Ich habe übrigens die Version B genommen für die Statistik.
Ich kann nur Leuten empfehlen PHP 7.1 zu nehmen, da vorallendingen der Geschwindigkeitsboost enorm ist.
|
|
23.03.2017 20:44 |
|
|
|
Hallo,
|
Zitat: Original von wilo
Das Forum läuft jetzt auf 7.1 und bis jetzt konnte ich keine Fehler finden außer einer Sache, aber das betrifft einen Hack von Viktor. Ich nehme mal an das sollte ich besser im Support Thread schreiben oder ? |
|
|
Wenn es PHP 7 betrifft, kann gerne dieses Thema benutzt werden.
Aber du kannst deine Frage auch im Support-Thema selbst stellen.
Aus meiner Sicht ist dies deine Wahl...
Ich rate übrigends zur Version "C", also den Code, den ich als "edit" eingefügt habe.
__________________
|
|
23.03.2017 20:47 |
|
|
|
Hallo,
Im Hack selbst wird wohl auf die "mysql_insert_id();" zugegriffen.
Dieses Problem lässt sich wieder sehr einfach lösen.
suche in /acp/lib/functions.php:
php: |
1:
|
mysql_insert_id(); |
|
ersetze gegen:
php: |
1:
|
$db->insert_id(); |
|
Das Problem beim "Löschen" hängt wohl direkt mit dieser Änderung zusammen.
Solltest du diese Zeile ändern, sollten also beide Probleme verschwinden.
__________________
|
|
26.03.2017 19:58 |
|
|
|
Verrückt was so eine kleine Änderung alles bewirken kann. Alle 3 Probleme wurden damit behoben.
Herzlichen Dank
|
|
26.03.2017 20:23 |
|
|
|
Hi,
ich habe mal mitgelesen und die ein oder andere Sache mit dem Code von weiter oben bei mir noch geändert.
|
Zitat: Original von Schrimm
suche in /acp/lib/functions.php:
php: |
1:
|
mysql_insert_id(); |
|
ersetze gegen:
php: |
1:
|
$db->insert_id(); |
|
|
|
|
Hierbei ist mir die Idee gekommen alle mysqli-Funktionen in die class_db_mysql.php zu verlagern. Dann hätte man alles zusammen und muss bei einer Änderung nicht wieder im ganzen Forum alles einzeln suchen und ändern. Kann ich das mit field_count, fetch_field_direct, tablename, fetch_assoc, fetch_object und escape_string einfach so machen oder reicht das nicht?
php: |
1:
2:
3:
|
function field_count() {
return mysqli_field_count($this->link_id);
} |
|
|
|
01.04.2017 00:07 |
|
|
|
Hallo,
Klar kannst du das so machen und sollte auch funktionieren.
Das ist auch der Sinn und Zweck einer solchen ausgelagerten Datei für Datenbankbefehle.
Das empfiehlt sich immer für solche Funktionen und auch für Funktionen die Zeichensätze als zusätzlichen Parameter empfangen und viele andere Funktionen, auf die man selbst keinen Einfluss hat, dass solche Funktionen stets ausgelagert werden und mittels einem "eigenen Namen" verwendet werden, auch wenn die Funktion später dasselbe macht.
Man könnte in dieser Art auch auf Prepared Statements, was in Verbindung zur Verhinderung von SQL-Injections, die wirkvollste Variante überhaupt ist, oder sogar direkt auf "PDO" um auch andere Datenbanken, außer "MySQL" zu erlauben.
Ob man beispielsweise im Forum selbst "$db->function()" verwendet, die aber dann PDO-Funktionen verwendet ist egal, sowie der Dateiname der Datei, in der sie sich befinden, auch wenn sie sich in der "class_db_mysql.php" befinden würde...
Bei "mysqli" ist es zwar weniger auffallend, als wenn man "PDO" verwenden würde, aber vom Prinzip her ist es komplett dasselbe.
__________________
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Schrimm: 01.04.2017 00:47.
|
|
01.04.2017 00:44 |
|
|
|
Hallo ihr lieben ^^
Ich hab alle änderungen vorgenommen und so weit Funktioniert wieder alles als USER das Problem was ich habe (nun bin ich mir aber nicht sicher ob es an php7 liegt) ist das wenn man als Gast Posten möchte eine Error meldung kommt:
code: |
1:
|
Folgende Fehler sind aufgetreten Der gewählte Benutzername ist ungültig. |
|
Kann doch aber gar nicht sein *Kopf kratz
Selbst wenn da nur guest steht kommt diese Meldung... Ich hab so gar die addreply.php und die newthread_username_input.tpl noch mal geprüft das ist alles wie es sein soll.
Kann mir vllt. einer von euch weiter helfen???
Lg Und Danke im voraus
|
|
10.04.2017 14:08 |
|
|
|
Hallo,
Dieses Problem hat sicherlich nichts mit diesen Änderungen hier zu tun und hat sicher auch schon vorher bestanden.
Erstelle für dieses Problem ein neues Thema und hänge dazu die addreply.php, addreply.tpl, sowie newthread_username_input.tpl an und beschreibe bitte möglichst genau, seit wann dieses Problem besteht, denn erst nach diesen Änderungen tritt dieser Fehler sicherlich nicht auf.
__________________
|
|
10.04.2017 14:13 |
|
|
|
Okay mache ich Danke für die fixe Antwort ^^
Lg
|
|
10.04.2017 14:18 |
|
|
Thx2
New Kids Junge
Dabei seit: 17.02.2010
Beiträge: 512
0 Filebase-Einträge
wBB-Version: wBBLite
Bewertung:
Level: 42 [?]
Erfahrungspunkte: 2.638.728
Nächster Level: 3.025.107
|
|
Weil ich der coolste bin
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
|
class_db_mysql.php
suche
-----
function db($server,$user,$password,$database,$phpversion=4) {
Füge darüber ein
----------------
function __construct($server,$user,$password,$database,$phpversion=4) {
$this->db($server,$user,$password,$database,$phpversion);
}
suche
-----
$this->link_id=mysql_connect($this->server,$this->user,$this->password);
ersetze mit:
------------
$this->link_id=mysqli_connect($this->server,$this->user,$this->password);
suche
-----
$this->error=mysql_error();
ersetze mit
-----------
$this->error=mysqli_error($this->link_id);
suche
-----
$this->errno=mysql_errno();
ersetze mit
-----------
$this->errno=mysqli_errno($this->link_id);
suche
-----
if(!@mysql_select_db($this->database, $this->link_id)) $this->error("cannot use database ".$this->database);
ersetze mit
-----------
if(!@mysqli_select_db($this->link_id, $this->database)) $this->error("cannot use database ".$this->database);
suche
-----
$this->query_id = mysql_query($query_string,$this->link_id);
ersetze mit
-----------
$this->query_id = mysqli_query($this->link_id,$query_string);
suche
-----
$this->query_id = mysql_unbuffered_query($query_string,$this->link_id);
ersetze mit:
------------
$this->query_id = mysqli_query($this->link_id,$query_string,MYSQLI_USE_RESULT);
suche
-----
function fetch_array($query_id=-1) {
if ($query_id!=-1) $this->query_id=$query_id;
$this->record = mysql_fetch_array($this->query_id);
ersetze mit
-----------
function fetch_array($query_id=false) {
if ($query_id!=false) $this->query_id=$query_id;
$this->record = mysqli_fetch_array($this->query_id);
suche
-----
function fetch_row($query_id=-1) {
if ($query_id!=-1) $this->query_id=$query_id;
$this->record = mysql_fetch_row($this->query_id);
ersetze mit
-----------
function fetch_row($query_id=false) {
if ($query_id!=false) $this->query_id=$query_id;
$this->record = mysqli_fetch_row($this->query_id);
suche
-----
function free_result($query_id=-1) {
if ($query_id!=-1) $this->query_id=$query_id;
return @mysql_free_result($this->query_id);
ersetze mit
-----------
function free_result($query_id=false) {
if ($query_id!=false) $this->query_id=$query_id;
return @mysqli_free_result($this->query_id);
suche
-----
function num_rows($query_id=-1) {
if ($query_id!=-1) $this->query_id=$query_id; //Diese zeile wird automatisch 4x ersetzt
return mysql_num_rows($this->query_id);
ersetze mit
-----------
function num_rows($query_id=false) {
if ($query_id!=false) $this->query_id=$query_id;
return mysqli_num_rows($this->query_id);
suche
-----
return mysql_affected_rows($this->link_id);
ersetze mit
-----------
return mysqli_affected_rows($this->link_id);
suche
-----
return mysql_insert_id($this->link_id);
ersetze mit
-----------
return mysqli_insert_id($this->link_id);
suche:
------
$this->errdesc=mysql_error();
$this->errno=mysql_errno();
ersetze mit
-----------
$this->errdesc=mysqli_error($this->link_id);
$this->errno=mysqli_errno($this->link_id);
###########################################################
class_options.php
suche
-----
function options($path2lib) {
füge darüber ein
----------------
function __construct($path2lib) {
$this->options($path2lib);
}
###########################################################
class_query.php
suche:
------
function query($query) {
füge darüber ein:
-----------------
function __construct($query) {
$this->query($query);
}
|
|
|
|
11.04.2017 01:33 |
|
|
|
|
|
|