Author Topic: Topics strict problem  (Read 8003 times)

Offline dbs

  • Betatester
  • **
  • Posts: 8819
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #25 on: June 05, 2019, 05:02:38 PM »
@Chio: Bist du Guru 139?
Der User sucht sich seine MySQL Version nicht aus. Wenn die nun strict ist, hilft es nicht weiter, dass du nur Kunden ohne strict hast und strict strikt ablehnst.

Code: [Select]
SELECT @@GLOBAL.sql_mode;zeigt mir:
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Da fehlt wohl einiges was bei Uwe oder Paulchen aktiv ist. Der Hoster hat es wohl etwas entschärft. Vielleicht sollte er noch STRICT_TRANS_TABLES rausnehmen. Aber ergibt der strict mode dann noch Sinn?

Offline DarkViper

  • Forum administrator
  • *****
  • Posts: 3085
  • Gender: Female
Re: Topics strict problem
« Reply #26 on: June 05, 2019, 05:28:45 PM »
SQL_MODE_STRICT  Ja oder Nein ist bei logischer Betrachtung eine völlig überflüssige Diskussion.
Wir ProgrammiererInnen haben keinen Einfluss darauf, was auf welcher Datenbank eingestellt ist.
Da jedoch ein Strict gecodetes Programm problemlos auf einer Nicht-Strict Datenbank läuft (was umgekehrt eben nicht der Fall ist), bleibt nur eine einzige logische Schlussfolgerung:

Wir coden grundsätzlich in Strict, alles funktioniert auf allen Datenbanken und wir freuen uns... 
Nicht-Strict Coder ärgern sich halt immer wieder aufs Neue über immer wieder das gleiche Problem.. (soll gegen Langeweile helfen)
« Last Edit: June 05, 2019, 05:34:00 PM by DarkViper »
Der blaue Planet - er ist nicht unser Eigentum - wir haben ihn nur von unseren Nachkommen geliehen

"You have to take the men as they are… but you can not leave them like that !" :-P
Das tägliche Stoßgebet: Oh Herr, wirf Hirn vom Himmel !

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #27 on: June 05, 2019, 05:56:47 PM »
Für mich ist eigentlich das ausschlaggebend, was Evaki oben schon schrieb - ab v5.7 ist strict per default active.
Neben ein paar ausländischen Kunden, deren Hoster bei den Softwareupdates nicht so fix sind wie z.b. unsere großen deutschen Provider, hab ich nur einen, der bei einem kleinen Anbieter ist und selbst der hat Strict. Bei den großen" Deutschen wie 1&1, Strato, Host Europe oder auch AllInkl ist es etwa 50/50, die meisten haben es mit den Updateorgien im letzten Herbst bekommen.

Solang ich den Code kenne, was nun mal Open Source mit sich bringt, ist es sicherheitstechnisc h kein Vorteil. Da sucht man sich die Felder halt im Script zusammen und gut ist.
Ist der DB-Aufbau aber nicht bekannt, dann kommt man mit z.b. einem einfachen Insert, wie ihn viele add.php älterer Module haben, nicht mehr weit

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #28 on: June 05, 2019, 06:01:19 PM »
Du meinst sicher die install.php.
Jepp

Aber richtig, darin ist nicht alles wie es sein sollte für strict.
Droplet eintragen bzw, wenn schon vorhanden, updaten hatte auch nicht funktioniert. Weiter bin ich noch nicht, kämpfe noch mit der Grafikkarte

Offline grindmobil

  • Posts: 56
Re: Topics strict problem
« Reply #29 on: June 05, 2019, 08:00:10 PM »
Der User sucht sich seine MySQL Version nicht aus. Wenn die nun strict ist, hilft es nicht weiter, dass du nur Kunden ohne strict hast und strict strikt ablehnst.

Der User = Kunde sucht sich sehr wohl seine SQL-Version aus. Genauso wie er sich aussucht, ob der SafeMode ON oder OFF ist (war)
Oder ob UploadMaxFilesize (fix und unveränderbar) auf 2 Mb gestellt ist, wie ich es unlängst erleben durfte.

Er sucht es sich aus, indem er den AuthCode verlangt und ab auf nimmer wiedersehen.

SQL Strict spielt nur dort eine Rolle, wo User und Hoster die selbe Person sind, und das wird auch so bleiben: SQL Strict gibt es seit 12 Jahren und die Verbreitung ist immer noch sehr speziell.

Aber das ist mir wurscht, das ist Sektenkram.

Ich will nur vermeiden, dass es plötzlich eine unkompatible und alte WB-Version von Topics gibt.
Man kann das Ding jederzeit umbenennen: Modulverzeichnis, info.php, search.php (der Function-Name) und die Tabellen-Namen: "topics" ersetzen durch DirName. Man kann nur nicht Dieses und Topics auf der gleichen Seite haben.


Offline evaki

  • Posts: 2810
Re: Topics strict problem
« Reply #30 on: June 05, 2019, 11:12:07 PM »
Schönen guten Abend.
Quote
Ich will nur vermeiden, dass es plötzlich eine unkompatible und alte WB-Version von Topics gibt.
Wie soll das gehen, wenn Dein Code unbehelligt bleibt, und nur die DB-strict-Regeln befolgt werden, die sich dann erst recht durch Kompatibilität auszeichnen.
Ich habe hier jaaaanz doll 'ne Ahnung, daß dieser Disput ausschließlich auf einem Mißverständnis beruht.

p.s. Am Wochenende gibt's mal wieder Kaiserschmarrn. Die Seele fühlt sich geschmeichelt. Mit wenigen Mitteln so etwas zu zaubern...  - Gut, können muß man's natürlich.
MfG. Evaki
« Last Edit: June 05, 2019, 11:19:11 PM by evaki »

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #31 on: June 06, 2019, 12:59:59 AM »
Dieser "Sektenkram" breitet sich aber überall aus, ob jetzt bei den Forks oder anderen Systemen, die Anfragen in den Supportforen häufen sich.

Ich hab auch nicht wenige Kunden, wo die Webspaceverwaltung ein Teil ihres Paketes ist, Telefon, Internet, IPTV, EMailpostfächer. Für Gewerbetreibende, die vielleicht auch noch Dienstleister beauftragen, soll deine AuthCode und Tschüss-Variante kein Thema sein, wohl aber auch nicht mehr unbedingt kostenlos.

Offline dbs

  • Betatester
  • **
  • Posts: 8819
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #32 on: June 06, 2019, 11:07:27 AM »
Ich wollte ja auch nur eine strict Variante der 0.9.4.1 zur Soforthilfe und zum Test für die 0.9.4.1 hier rein setzen.
Das hat sich erstmal erledigt, weil mein strict nur light war und niemandem anderen geholfen hätte.
Handwerkliche Fehler kämen noch dazu.

Bei CE erwarte ich keine Anpassungen für strict.

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #33 on: June 06, 2019, 11:42:23 AM »
Quote
Das hat sich erstmal erledigt, weil mein strict nur light war und niemandem anderen geholfen hätte.
Handwerkliche Fehler kämen noch dazu.

seh ich nicht so. Wie oben schon gesagt, ist es eher eine Frage der vorhandenen MySQL-Version.
In der Anlage die geänderte Datei install.php, gezippt, läuft unter MySQL-Strict und auch im non-strict-mode, sollte also für niemanden zum Schaden sein

geändert:
- die Feldtypen BLOB und TEXT haben kein DEFAULT VALUE, darum entfernt
- der Insert/Replace fürs Droplet war unvollständig bzw unsauber gecodet

Andere Sachen habe ich bisher nicht gefunden, das Anlegen von Seiten, Topics, Comments, oder Settings funktioniert, ich weiß aber nicht, wo da überall etwas geändert wurde

Offline dbs

  • Betatester
  • **
  • Posts: 8819
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #34 on: June 06, 2019, 12:12:13 PM »
In der save_settings hatte ich 2 werte aus dem darüberliegenden auskommentierten vergessen zu übernehmen.
Glaube topics_per_page und use_timebased_publi shing.

In deiner install sieht das DEFAULT NULL bei DATE ungewöhnlich aus. Sollte da nicht sowas wie '2000-01-01 00:00:00'  stehen?

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #35 on: June 06, 2019, 12:38:15 PM »
Code: [Select]
SELECT @@GLOBAL.sql_mode;zeigt mir:
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Da fehlt wohl einiges was bei Uwe oder Paulchen aktiv ist. Der Hoster hat es wohl etwas entschärft. Vielleicht sollte er noch STRICT_TRANS_TABLES rausnehmen. Aber ergibt der strict mode dann noch Sinn?

man schaue sich die unterschiedlichen DEFAULT VALUES in den Versionen 5.7.4 - 5.7.8 an, das wird mit jeder Version strenger -> https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_sql-mode
Unterschiede gibt es dann auch noch zwischen Windows und Linux. Das früher übliche  TEXT NOT NULL DEFAULT \'\' würde unter Windows einen error, unter Linux eine Warnung erzeugen

Quote
In deiner install sieht das DEFAULT NULL bei DATE ungewöhnlich aus. Sollte da nicht sowas wie '2000-01-01 00:00:00'  stehen?

 NULL oder '0' ist die Kurzform. (siehe Mysql - "You can also do this using the values '0' or 0, which are easier to write") PHPmyAdmin nutzt da z.b. die Wortform NULL

Offline dbs

  • Betatester
  • **
  • Posts: 8819
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #36 on: June 06, 2019, 01:19:55 PM »
Ok, verstanden, NULL ist auch besser als ein sinnloses Datum.

Schau mal in deine install.php z283 (ein Semikolon zu viel).
Werd es wohl nur lokal testen können mit stricterem Strict Mode.

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #37 on: June 06, 2019, 02:06:34 PM »
Quote
Schau mal in deine install.php z283 (ein Semikolon zu viel).
nicht gesehen   :oops: :oops:
die ganze Zeile 283 kann raus, die ID im Droplet kommt per Auto_Increment
genau wie diese Zeile 289, die ist nun überflüssig
Code: [Select]
$id = $found;

Offline dbs

  • Betatester
  • **
  • Posts: 8819
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #38 on: June 06, 2019, 05:10:11 PM »
Ok, entfernt.
Ein Test lokal mit mysql 5.7.11 und sql_mode=
Quote
ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
verlief fehlerlos.
Was hat Paulchen da alles in seinem mode?

Offline CodeALot

  • Posts: 538
  • Gender: Male
Re: Topics strict problem
« Reply #39 on: June 06, 2019, 08:03:55 PM »
Quote
save_item.php line 603 (Insert new row into database) are some values missing.

replace the originalcode

Excellent. I can confirm that this solves the problem with the duplicate-function in OFA using MySQLi in STRICT mode.

Offline evaki

  • Posts: 2810
Re: Topics strict problem
« Reply #40 on: June 07, 2019, 09:51:31 AM »
<offtopic>
Für "Notfälle" kann man auch noch in v5.7.x "non strict" aktivieren.
Wer hostet, kann mit zwei DB ("non strict"/"strict") auf unterschiedlichen Ports operieren.
<ironie>
So kann man größere Kunden (mit Kohle) halten, denen beim Sterben zuschauen, und dann den Zeigefinger erheben "Ham'wer Euch doch jesacht." Für diese abgründige Freude lohnt sich vielleicht "non strict"
</ironie></offtopic>
Ich kenn die Roadmap bei MySQL nicht, wenn's so läuft wie bei PHP, ist dann irgendwann Schluß.
Zum Ende des Jahres wird es möglicherweise nirgendwo mehr php kleiner als 7.3 geben.

MfG. Evaki
« Last Edit: June 07, 2019, 09:57:20 AM by evaki »

Offline paulchen

  • Posts: 185
  • Gender: Male
    • PV-Steuer-Shop
Re: Topics strict problem
« Reply #41 on: June 07, 2019, 09:58:18 AM »
....
Ein Test lokal mit mysql 5.7.11 und sql_mode=
Quote
ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
verlief fehlerlos.
Was hat Paulchen da alles in seinem mode?

Ich wundere mich schon eine ganze Weile, dass mein Strict-Mode so gnadenlos sein soll :-)

Ich erhalte auf den Befehl
Code: [Select]
SELECT @@GLOBAL.sql_mode;folgende Ausgabe:
Code: [Select]
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
also weniger strict, als bei dir - sofern ich aller richtig gemacht habe.

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #42 on: June 07, 2019, 10:04:37 AM »
what.....     :-o :-o :-o

schaust du bitte mal noch ins InfoFenster von WB, was da als PHP- und Mysql-Version steht?

Offline paulchen

  • Posts: 185
  • Gender: Male
    • PV-Steuer-Shop
Re: Topics strict problem
« Reply #43 on: June 07, 2019, 10:16:00 AM »
Gerne doch:

Quote
PHP-Version: 7.3.6

Server-Version: 10.3.10-MariaDB-1:10.3.10+maria~bionic [STRICT]

Offline Gast

  • Posts: 5920
Re: Topics strict problem
« Reply #44 on: June 07, 2019, 12:33:05 PM »
Dank dir!

Offline dbs

  • Betatester
  • **
  • Posts: 8819
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Topics strict problem
« Reply #45 on: June 08, 2019, 08:43:00 AM »
Dann solten wir ja für zukünftige Tests gut aufgestellt sein. Das meiste ist jedenfalls abgedeckt.