Seite 1 von 2

anmerkung: contenido-cvs-2005-10-28.tar

Verfasst: Fr 28. Okt 2005, 22:36
von m.wohlers
Hallo timo!

Der neue Snapshot sieht ja gut aus, bis auf zwei Kleinigkeiten in der functions.general.php:

Aus

Code: Alles auswählen

* © four for business AG, www.4fb.de
wurde

Code: Alles auswählen

* � four for business AG, www.4fb.de
und aus

Code: Alles auswählen

		$match = "/^[a-z0-9ÄäÖöÜüß ]+$/i";
wurde

Code: Alles auswählen

		$match = "/^[a-z0-9������� ]+$/i";
Das sieht für mich jedenfalls nicht nach einer gewollten Änderung aus, oder? :lol:

Aber sonst Hut ab, das nähert sich wirklich mit großen Schritten einem Rele... - aber ich will ja nix verschreien 8)

Mit freundlichen Grüssen,

Verfasst: Sa 29. Okt 2005, 09:36
von emergence
ich häng wieder mal was ran...

include.con_edit_form.php

Warning: strtotime() [function.strtotime]: Called with an empty time parameter. in e:\contenido\contenido-4.5.6\contenido-4.5.6\contenido\includes\include.con_edit_form.php on line 163

Warning: date() [function.date]: Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in e:\contenido\contenido-4.5.6\contenido-4.5.6\contenido\includes\include.con_edit_form.php on line 163

Warning: strtotime() [function.strtotime]: Called with an empty time parameter. in e:\contenido\contenido-4.5.6\contenido-4.5.6\contenido\includes\include.con_edit_form.php on line 164

Warning: date() [function.date]: Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in e:\contenido\contenido-4.5.6\contenido-4.5.6\contenido\includes\include.con_edit_form.php on line 164

in der datei findet sich

Code: Alles auswählen

        $tmp2_lastmodified = date($dateformat,strtotime($tmp2_lastmodified));
        $tmp2_published = date($dateformat,strtotime($tmp2_published));
sollte aber

Code: Alles auswählen

        $tmp2_lastmodified = date($dateformat,strtotime($tmp_lastmodified));
        $tmp2_published = date($dateformat,strtotime($tmp_published));
sein...

dann gehts auch ohne fehler...

ach ja, setup mit mysqli geht noch immer nicht bei mir...

Verfasst: Sa 29. Okt 2005, 09:56
von emergence
beim wechsel in editor

Warning: main(config.php) [function.main]: failed to open stream: No such file or directory in e:\contenido\contenido-4.5.6\contenido-4.5.6\contenido\external\backendedit\front_content.php on line 24

Warning: main() [function.include]: Failed opening 'config.php' for inclusion (include_path='.;E:\OpenSA\Apache\php-5.0.1\pear') in e:\contenido\contenido-4.5.6\contenido-4.5.6\contenido\external\backendedit\front_content.php on line 24

zusätzlich

Fatal error: Error: Can't include includes/functions.navigation.php in e:\contenido\contenido-4.5.6\contenido-4.5.6\contenido\includes\api\functions.api.general.php on line 154

na wie auch immer aus irgendwelchen gründen ist in der con_clients der frontendpath leer... deshalb die meldungen...
nun gut db komplett gelöscht, nochmal setup ohne mysqli
dann gehts normal...

ich würd mir das nochmal genau überlegen ob standardmäßig die mysqli erweiterung genommen wird....

Verfasst: Sa 29. Okt 2005, 10:23
von emergence
gut etwas nachgeforscht... unterschiede mysql <-> mysqli

wenn ich mir die $this->Record ansehe bei mysql hab ich etwas wie das hier im
Array
(
[0] => 106
[idartlang] => 106
[1] => 91
[idart] => 91
[2] => 1
[idlang] => 1
[3] => 0
[idtplcfg] => 0
[4] => 123
[title] => 123
...
)

bei mysqli hingegegen... ist eine ansteuerung mit zifferncodes alleine nicht mehr möglich...

da schaut das ganze dann so aus
Array
(
[idartlang] => 106
[idart] => 91
[idlang] => 1
[idtplcfg] => 0
[title] => 123
...
)

das ist auch der grund warum ich die meldungen mit not in the action table erhalte...

sag mal hab nur ich das problem, das kann es doch nicht sein...

Verfasst: Sa 29. Okt 2005, 10:36
von emergence
geh bitte... das ist ein bug innerhalb meiner php version
-> http://bugs.php.net/bug.php?id=29335

db_mysqli.inc

Code: Alles auswählen

		$this->Record = mysqli_fetch_array($this->Query_ID);
mysqli_fetch_array() standard für den zweiten parameter sollte MYSQL_BOTH sein... nur ist es das nicht...

Code: Alles auswählen

		$this->Record = mysqli_fetch_array($this->Query_ID,MYSQL_BOTH);
behebt einen großteil meiner problemchen...

diese ergänzung ist ungefährlich...

edit: es gibt noch eine zweite position wo das MYSQL_BOTH ergänzt werden sollte... einfach mal nach mysqli_fetch_array suchen...

Verfasst: Sa 29. Okt 2005, 10:41
von emergence
tja und das setup geht nun auch mit mysqli...

Verfasst: Sa 29. Okt 2005, 16:16
von m.wohlers
Hallo emergence!
emergence hat geschrieben:tja und das setup geht nun auch mit mysqli...
Geh, wenn'st alle Deine Probleme löst, brauchst sie ja garnicht als Bug zu posten :)

Ein sonniges Wochenende aus Rosenheim wünscht...

Verfasst: Sa 29. Okt 2005, 20:26
von timo
ich glaube emergence meinte, daß nach seinem Bugfix alles funktionierte...also muß man diesen Bugfix auch aufnehmen...

Verfasst: So 30. Okt 2005, 09:54
von m.wohlers
Hi timo!
timo hat geschrieben:ich glaube emergence meinte, daß nach seinem Bugfix alles funktionierte...also muß man diesen Bugfix auch aufnehmen...
Ich glaube, Du hast den Witz nicht verstanden :wink:

Nichts für ungut...

Verfasst: So 30. Okt 2005, 11:36
von emergence
timo hat geschrieben:ich glaube emergence meinte, daß nach seinem Bugfix alles funktionierte...also muß man diesen Bugfix auch aufnehmen...
ja bidde... bin sicher nicht der einzige der auf das problem nageln wird ;-)
Ich glaube, Du hast den Witz nicht verstanden
macht nichts, ich hab ihn auch nicht verstanden...

Verfasst: So 30. Okt 2005, 14:52
von emergence
nun gut ich hab mich jetzt noch ein wenig mit mysqli auseinander gesetzt und bin da auf etwas gestossen was mit mysql alleine nicht aufgetreten ist...

nehmen wir mal ne funktion her die immer wieder innerhalb der funktion eine neue db instanz aufmacht... und diese funktion wird in einer schleife aufgerufen, so das sie ca. 40 db connections nacheinander initialisiert..

ca nach dem 30 db instanz füllt sich das errorlog mit folgenden einträgen..

[30-Oct-2005 13:57:25] PHP Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in e:\contenido\contenido-4.5.6\contenido-4.5.6\conlib\db_mysqli.inc on line 476

[30-Oct-2005 13:57:25] PHP Warning: mysqli_errno() expects parameter 1 to be mysqli, boolean given in e:\contenido\contenido-4.5.6\contenido-4.5.6\conlib\db_mysqli.inc on line 477

ich hab hier ein kleines code beispiel (lauffähig als output modul):

Code: Alles auswählen

<?php

class DB_Upgrade extends DB_Contenido {
}

cInclude("includes",  'functions.database.php');

$db = new DB_Contenido;

echo "first";
updateSequence();
echo "second";
updateSequence();
echo "third";
updateSequence();

    function updateSequence($table=false) {

        global $db, $cfg;
        if (!$table) {
            $sql = "SHOW TABLES";
            $db->query($sql);
            while ($db->next_record())
            {
                dbUpdateSequence($cfg['sql']['sqlprefix']."_sequence", $db->f(0));

            }
        } else {
            dbUpdateSequence($cfg['sql']['sqlprefix']."_sequence", $table);

        }
    }

?>
na wie auch immer...

die einzige möglichkeit das zu umgehen war in der mysqli.inc eine neue methode zu erstellen:

Code: Alles auswählen

	function close()
	{
	    if ($this->Link_ID) {
	        return mysqli_close($this->Link_ID);
	    } else {
	        return false;
	    }
	}
und in der dbUpdateSequence am ende der funktion ein

Code: Alles auswählen

$db->close();
hinzuzufügen...

kann jemand das verhalten bestätigen ? oder bin ich da schon wieder der erste der auf das genagelt ist...

nachtrag: ich hab jetzt mal meine serverumgebung auf php5.0.5 upgedatet... selbes verhalten...

Verfasst: So 30. Okt 2005, 17:49
von emergence
ad. tinymce
ist es beabsichtigt das man nur auf kategorien verlinken kann ?
oder hab ich da was übersehen... artikel stehen irgendwie keine zur verfügung ???

Verfasst: So 30. Okt 2005, 18:28
von timo
also ich kann im tinyMCE auf Artikel verlinken...einfach auf den Artikelnamen klicken...

Verfasst: So 30. Okt 2005, 18:46
von emergence
timo hat geschrieben:also ich kann im tinyMCE auf Artikel verlinken...einfach auf den Artikelnamen klicken...
also ich nicht... mir zeigt es da einfach keine artikel an...

Verfasst: Mo 31. Okt 2005, 08:35
von emergence
man sollte noch unbedingt unter administration - system - systemvariablen
den eingestellten wert von $cfg["database_extension"] irgendwo bei den einstellungen mit aufzeigen...

noch was zu db_mysqli.inc

function connect

Code: Alles auswählen

				$this->Link_ID = @mysqli_connect($sHost, $User, $Password, "", $sPort);
			} else {
				$this->Link_ID = @mysqli_connect($Host, $User, $Password);
da gibts ein kleines problem...

sollte ein connect nicht möglich sein, wird $this->Link_ID auf false gesetzt...
fehlermeldung erscheint aufgrund des @ keine (logisch)...

in weiterer folge wird dann ja

Code: Alles auswählen

			if (!$this->Link_ID)
			{
				$this->halt("connect($Host, $User, \$Password) failed.");
				return 0;
			}
aufgerufen... was ja noch funktioniert...

aber dann gibts nen fehler bei

Code: Alles auswählen

	function halt($msg)
	{
		$this->Error = mysqli_error($this->Link_ID);
		$this->Errno = mysqli_errno($this->Link_ID);

Code: Alles auswählen

PHP Warning: mysqli_errno() expects parameter 1 to be mysqli, boolean given in e:\contenido\contenido-4.5.6\contenido-4.5.6\conlib\db_mysqli.inc on line 477
mysqli_error() oder mysqli_errno() funktioniert nicht ohne angabe der Link_ID
die korrekte fehlermeldung erhält man nur wenn man mysqli_connect_error bedient...

na wie auch immer ich würde vorschlagen

Code: Alles auswählen

			if (!$this->Link_ID)
			{
				$this->halt("connect($Host, $User, \$Password) failed.");
				return 0;
			}
ersetzen durch

Code: Alles auswählen

			if (!$this->Link_ID)
			{
				$this->halt("connect($Host, $User, \$Password) failed: ".mysqli_connect_error());
				return 0;
			}
und

Code: Alles auswählen

	function halt($msg)
	{
		$this->Error = mysqli_error($this->Link_ID);
		$this->Errno = mysqli_errno($this->Link_ID);
durch

Code: Alles auswählen

	function halt($msg)
	{
		if ($this->Link_ID) {
			$this->Error = mysqli_error($this->Link_ID);
			$this->Errno = mysqli_errno($this->Link_ID);
		}
ersetzen...

den spruch muss noch anbringen(hier gefunden: http://www.zend.com/php5/articles/php5-mysqli.php ):
The extension is called ext/mysqli, with the 'i' standing for any one of: improved, interface, ingenious, incompatible or incomplete.