1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby dev0mar » 01. September 2009 17:54

Hi

Nach langem probieren ist mir aufgefallen, dass 1.7.2 bei exakt derselben Konfiguration einen Fehler verursacht, bei folgendem Code:
line 126: require('include/class_db_zugriff.php'); /* <-- Datei existiert, wird aufgerufen*/
line 127: $db_zugriff = new db_zugriff;

Der Fehler: Fatal error: Class 'db_zugriff' not found in {Name der Datei} on line 127

Bei der Version 1.7.1 läuft alles problemlos.

Hat jemand eine Ahnung wieso - kann ich dies umgehen?

Danke.
dev0mar
 
Posts: 3
Joined: 01. September 2009 17:47

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Wiedmann » 01. September 2009 18:13

Der Fehler: Fatal error: Class 'db_zugriff' not found in {Name der Datei} on line 127

Wo wird denn die Klasse "db_zugriff" definiert?
(entsprechenden Code gibt es in deinem Beispiel nicht.)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby dev0mar » 01. September 2009 18:15

Im class_db_zugriff.php:

Code: Select all
<?
class db_zugriff {

  var $database = "";



Wie gesagt... die Website läuft seit Jahren - am Code kanns nicht liegen :)
dev0mar
 
Posts: 3
Joined: 01. September 2009 17:47

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Wiedmann » 01. September 2009 18:53

Code: Select all
<?

Code: Select all
<?php


am Code kanns nicht liegen

Eigentlich liegt es immer daran.

die Website läuft seit Jahren

Gerade wenn man so programmierrt, das es mehr zufällig auf manchen Servern läuft. Wenn man solche Techniken benutzt, sollte man sich auch dessen bewusst sein.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby dev0mar » 01. September 2009 19:14

Ach herrjeeeeee :) So schnell kann man sich täuschen... und dabei noch so tun als ob es nicht an einem selber liegt!!

Entschuldige den vorschnellen Urteil und ein grosses Dankeschön!!!

Jetzt werde ich als erstes herausfinden, welche Einstellung erlaubt, dass <? als <?php erkannt wird :)

*Frage beantwortet*
dev0mar
 
Posts: 3
Joined: 01. September 2009 17:47

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Altrea » 02. September 2009 07:27

dev0mar wrote:Jetzt werde ich als erstes herausfinden, welche Einstellung erlaubt, dass <? als <?php erkannt wird :)


Die Antwort darauf lautet "short_open_tag". Diese Einstellung kann in der php.ini aktiviert werden.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8293
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Pitze » 02. September 2009 15:53

Ich möchte dir anraten diese Einstellung in der php.ini nicht zu setzen.
Wie du nun selber erlebt hast bist du mit deinem Programierstiel voll auf dem Bauch gelandet, um solche Peinlichkeiten demnächst zu verhindern solltest du dich und deine Scripte umstellen. Es ist zwar nicht verkehrt aber es erleichtert die Sache doch ungemein und es sind doch nur drei kleien Buchstaben :wink: .
Der grösste Vertrauensbruch ist der Blitzableiter auf der Kirchturmspitze
User avatar
Pitze
 
Posts: 210
Joined: 20. November 2003 21:38
Location: Huskvarna-Schweden
Operating System: Windows Vista

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Altrea » 03. September 2009 10:15

Wenn es ein selbst programmiertes oder überschaubares Script ist, stimme ich dir voll und ganz zu.

Ein ausgewachsenes Fremdscript in der Form von Hand zu ändern, davon würde ich eher abraten ^^. Gerade Content-Management-Systeme sind gute Kandidaten für Probleme mit short_open_tags, da es gang und gäbe ist, short_tags in Template-Dateien zu verwenden. Wenn du vor der Wahl stehen würdest, ein Joomla oder Typo3 (am besten noch mit mehreren Modifikationen diverser Programmierer) von Hand zu ändern, oder dieses eine Flag zu setzen, wofür würdest du dich entscheiden? ;)

Man muss short_open_tags ja auch nicht global in der php.ini freigeben. In der .htaccess sollte es möglich sein, diese Einstellung Ordnerspezifisch zu definieren.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8293
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Nobbie » 03. September 2009 10:32

Pitze wrote:Es ist zwar nicht verkehrt aber es erleichtert die Sache doch ungemein und es sind doch nur drei kleien Buchstaben :wink: .


Eben leider nicht. Historisch ist PHP ja einmal nur als schlichtes Templatesystem entstanden, und mit dem Verlust des short_open_tags geht eine der mächtigsten (und syntaktisch elegantesten) Möglichkeiten verloren.

Um Variablen in Templates zu ersetzen, genügt(e) bei PHP die schlichte Syntax:

Code: Select all
<?=$variable?>


Und dagegen ist die "long_tag" Syntax nach meinem Empfinden fast schon ein Overkill:

Code: Select all
<?php echo $variable?>


Ich finde es schlicht und ergreifend häßlich.
Nobbie
 
Posts: 8770
Joined: 09. March 2008 13:04

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Pitze » 03. September 2009 16:21

Eben leider nicht. Historisch ist PHP ja einmal nur als schlichtes Templatesystem entstanden, und mit dem Verlust des short_open_tags geht eine der mächtigsten (und syntaktisch elegantesten) Möglichkeiten verloren.

Was ist daran elegant wenn in längeren PHP HTML Scripten die Übersicht verloren geht und die Lesbarkeit gegen null geht. Was ist den wohl leichter zu finden und auch verständlicher "<?" oder "<?php" denn nicht jeder hat deinen Wissensstand und die Übersicht so das die "<?php" Variante halt doch die eleganteste und auch beste Lösung ist.
Selbst in der Literatur und bei Schulungen wird mitlerweile darauf hingewisen das es zwar nicht falsch aber der Lesbarkeit und Übersichtlichkeit absolut nicht zuträglich ist.
Der grösste Vertrauensbruch ist der Blitzableiter auf der Kirchturmspitze
User avatar
Pitze
 
Posts: 210
Joined: 20. November 2003 21:38
Location: Huskvarna-Schweden
Operating System: Windows Vista

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Xardas der Dunkle » 03. September 2009 16:52

Ich bin zwar auch ein Verfechter der "Short"OpenTags, aber ich finde man hätte die Option aufteilen sollen.
So das "<?= $var ?>" aktiviert bleibt aber dieser "<?"-Stuss eben weg fällt.
Besonders bei Dateien die nur aus PHP bestehen ist es einfach Schwachsinn ;).

Ich finde es schlicht und ergreifend häßlich.

Eigentlich der einzige Grund wieso ich Smarty einsetze^^. (Welches demnächst wohl endlich durch ne eigene Classe ersetzt wird ...).
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Nobbie » 03. September 2009 19:17

Pitze wrote:Was ist daran elegant wenn in längeren PHP HTML Scripten die Übersicht verloren geht und die Lesbarkeit gegen null geht.


Wieso geht die Lesbarkeit "gegen Null", wenn man längere und unübersichtlichere Ausdrücke einsetzt als reine Variablen-Deskritoren?

Pitze wrote:Was ist den wohl leichter zu finden und auch verständlicher "<?" oder "<?php" denn nicht jeder hat deinen Wissensstand und die Übersicht so das die "<?php" Variante halt doch die eleganteste und auch beste Lösung ist.


Wie bitte? Was ist an "<?php echo ...?>" eleganter(?????) als an "<?=...=?>? Man sollte nicht unreflektiert jeden Mist abschreiben, der von absoluten IT-Nieten auf irgendwelchen Blogs geschrieben wird, sondern einfach mal mitdenken. Niemand kann diese Syntax besser finden - dazu muss man krank sein oder irgendsoetwas.

Pitze wrote:Selbst in der Literatur und bei Schulungen wird mitlerweile darauf hingewisen das es zwar nicht falsch aber der Lesbarkeit und Übersichtlichkeit absolut nicht zuträglich ist.


Das glaube ich nicht - wer ernsthaft behauptet, die Syntax "<?php echo ...?>" wäre übersichtlicher(!!!) als "<?=...?>", der hat schlicht Rosinen auf den Augen und Luft im Kopf. Tut mir Leid, da habe ich kein Verständnis für, wer so etwas behauptet, sollte putzen gehen, programmieren ist nicht seine Welt!

Xardas der Dunkle wrote:Eigentlich der einzige Grund wieso ich Smarty einsetze^^. (Welches demnächst wohl endlich durch ne eigene Classe ersetzt wird ...).


Wobei Smarty das schlechteste vom schlechten ist: ein Template-Template-System?! Wozu braucht man denn so ein kastriertes, kryptisches, unwartbares, grottenschlechtes Template-Template-System, was ohnehin nur funktioniert, weil es auf einem (erheblich mächtigeren) Template-System (PHP) basiert. Das habe ich noch nie verstanden - und irgendwann wird es soweit sein, dass auch die Smarty-Syntax (aus irgendwelchen Gründen) für schlichte Variablen eine "Long-Tag-Syntax" aufgebrummt bekommt - und dann wird stolz das nächste Level entwickelt "Bounty" - des auf Smarty auf PHP basierende Template-Template-Template-System.

Und irgendwann wird auch "Bounty" aus den Nähten platzen - dann kommt die Rettung "Nutella", die 4. Dimension, das intelligente Template-Template-Template-Template-System, welches auf Bounty basiert, dieses auf Smarty, dieses auf PHP - und dieses (wie immer schon) auf HTML.

Und dann.....

Grauenhaft.

Wer Smarty benutzt, frißt auch kleine Kinder (glaube ich).

P.S.:
Xardas der Dunkle wrote:Ich bin zwar auch ein Verfechter der "Short"OpenTags, aber ich finde man hätte die Option aufteilen sollen.
So das "<?= $var ?>" aktiviert bleibt aber dieser "<?"-Stuss eben weg fällt.


Ich meine mich dunkel erinnern zu können, dass ich in irgendeinem Sheet zu PHP6 genau dieses Vorhaben gelesen habe - es wäre sicherlich lobenswert, denn ganz klar wäre das eine wirklich potente Lösung des Problems. Ich fände es richtig.
Nobbie
 
Posts: 8770
Joined: 09. March 2008 13:04

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Xardas der Dunkle » 03. September 2009 21:42

Wer Smarty benutzt, frißt auch kleine Kinder (glaube ich).

Nein nur Senioren.

Wobei Smarty das schlechteste vom schlechten ist: ein Template-Template-System?! Wozu braucht man denn so ein kastriertes, kryptisches, unwartbares, grottenschlechtes Template-Template-System, was ohnehin nur funktioniert, weil es auf einem (erheblich mächtigeren) Template-System (PHP) basiert. Das habe ich noch nie verstanden - und irgendwann wird es soweit sein, dass auch die Smarty-Syntax (aus irgendwelchen Gründen) für schlichte Variablen eine "Long-Tag-Syntax" aufgebrummt bekommt - und dann wird stolz das nächste Level entwickelt "Bounty" - des auf Smarty auf PHP basierende Template-Template-Template-System.

Eben weil PHP zu mächtig ist. Das ist genau der Grund. Dieses Forum hier setzt z.B. auch eine Template-Engine ein, welche aber nur Variablen, Ifs und eine Schleife kennt.
Die Template Dateien sind alle samt direkt über den Adminbereich veränderbar und werden dann in der Datenbank abgelegt. Währen das hier echte PHP-Scripte ... Sicherheitstechnisch währe das die Hölle (wobei Drupal das z.B. auch tut :p).

Teilweise geht es vielleicht auch um die Einfachheit der Templates (auch für Leute die kein PHP können), wobei Smarty schon so nah an PHP dran kommt das dieser Punkt eigentlich entfällt.

Und ich bleibe dabei:
Code: Select all
<b>{$arr.title}</b

ist schöner als:
Code: Select all
<b><?php echo $arr['title']; ?></b>

auch wenn es später eh dahin umgewandelt wird^^
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby Nobbie » 04. September 2009 09:36

Xardas der Dunkle wrote:Und ich bleibe dabei:
Code: Select all
<b>{$arr.title}</b> 

ist schöner als:
Code: Select all
<b><?php echo $arr['title']; ?></b>

auch wenn es später eh dahin umgewandelt wird^^


Ganz zweifellos, und wenn die Syntax

Code: Select all
<?=$arr['title']?>


von PHP nicht mehr unterstützt wird, haben die PHP Entwickler aus meiner Sicht eine schwere Fehlentscheidung getroffen. Diese Syntax gehört zu den "Core-Features" von PHP und ist für Template-Programmierung absolut selbstverständlich.
Nobbie
 
Posts: 8770
Joined: 09. March 2008 13:04

Re: 1.7.2 verursacht Fehler (1.7.1. nicht) (Fatal error:..)

Postby timur2 » 03. November 2009 15:39

hi
hab den selben fehler auf 1.7.2

Code: Select all
Fatal error: Class 't_database' not found in C:\xampp\htdocs\seite\header.php on line 54


und bei mir steht dort das

Code: Select all
$database = new t_database($database_host, $database_username, $database_password, $database_name);


aber bei mir ist der anfang der php dati richtig gesetzt :)
timur2
 
Posts: 5
Joined: 03. November 2009 15:32

Next

Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 12 guests