Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Eure Hilfe bei PHP-Fehler !?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 22.05.2010, 14:42

@Japs
Schau ins Log was da steht. Da sind sicherlich Fehlermeldungen wegen dem include, dass das irgendwo nicht geht. Oder Probleme mit der Class und der Variablenübergabe. Tippe aber eher auf das include.

Und nenn' doch mal die richtigen Dateien / Pfade, nicht dieses rewrite-Zeug. In denen muss dann ja der jeweilige Include von der Config und der modul_userpage.class sein.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 22.05.2010, 14:55

mach mal nach deinem verbindungsaufbau ein "use meindbname" um sicherzugehen das du in der richtigen db bist. dann lass dir die abfrage mal ausgeben und schau was in pnpmyadmin passiert wenn du die abgrage dort ausfuehrst.
username/passwort ist auch ganz sicher korrekt?

Japs
Nutzer/in
Nutzer/in
Beiträge: 1685
Registriert: 18.10.2004, 10:50

Beitrag von Japs » 22.05.2010, 15:03

Ja das past alles, ich will auch von der richtigen Db die daten ausgeben lassen zw. zur richtigen DB connecten. So wie es aussieht ist es wirklcih wohl ein "include" Problem.

Da ich aber nicht so fitt bin, muss ich es halt erst mal austüfteln.

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 22.05.2010, 15:12

oder eben mal die richtigen Dateien posten!

Die "modul_userpage.class.php" wird ja auch nur includet, bzw. tut so ja erst mal nichts selbst. Ist ja nur eine Klasse die wo anders aufgerufen wird.

Also poste die Datei, die eben den include von der "modul_userpage.class" enthält. Da müsste dann ja auch der include von der config.php drinnen sein. Wenn nicht, dann post auch die mit dem config.php-Include

oder, ersetze das include_once einfach mit require_once, dann bricht das Script bei Fehlern ab und zeigt die an (falls nicht auf dem Server deaktiviert).

Die DB ist die richtige, das ist klar, bzw. so weit kommst Du ja erst gar nicht. Der Connect schlägt ja schon fehl.

Und dank der Meldung "Access denied for user 'www-data'@'localhost' (using password: NO)" bedeutet das eigentlich nur, dass die Zugangsdaten nicht vorhanden sind, warum auch immer. Ich denke ja nicht, dass Du Dich normalerweise mit www-data und ohne Passwort an der DB anmeldest.

Japs
Nutzer/in
Nutzer/in
Beiträge: 1685
Registriert: 18.10.2004, 10:50

Beitrag von Japs » 22.05.2010, 15:27

**** edit ****
Gruß Dirk
Zuletzt geändert von Japs am 23.05.2010, 08:53, insgesamt 1-mal geändert.

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 22.05.2010, 15:59

So, mal zusammenfassen:

Die URL https://www.fewoholiday.de/plan/165 ruft die Datei "1. plan" auf. Ich gehe nun davon aus, dass die im Root liegt und nicht irgendwo in einem Unterordner.

Diese beinhaltet "require 'kalenderxy/user_page.php';"
Soweit also ok. Da scheint auch kein Fehler zu sein, denn require würde sonst abbrechen.

In der user_page.php werden dann die anderen Dateien geladen:
include_once ('kalenderxy/class/mysql.class.php');
include_once ('kalenderxy/class/template.class.php');
include_once ('kalenderxy/site/modul_userpage.class.php');

Dazu hatte ich vorhin schon mal eine Frage bezüglich der "mysql.class.php". An einer anderen Stelle hatte ich nämlich den Fehler, dass er genau diese Datei nicht finden konnte (war der gleiche Dateipfad!).

ajax.php
Genau in der hatte ich vorhin den Fehler mit der "mysql.class.php"! Allerdings wird hier nicht ersichtlich, welches Script die überhaupt aufruft, scheint aber genau die zu sein, die die eigentlichen Script inkl. Config lädt. Die anderen laden ja nur Klassen.

Mach mal aus dem hier (in der ajax.php):

//include_once ('/www/htdocs/w00c9102/fewoholiday.de/config.php');
//include_once ('/www/htdocs/w00c9102/fewoholiday.de/class/mysql.class.php');
//include_once ('/www/htdocs/w00c9102/fewoholiday.de/class/template.class.php');
//include_once ('/www/htdocs/w00c9102/fewoholiday.de/site/modul_user.class.php');

jeweils ein require_once und aktivere es. Die ersten 4 Zeilen so lange auskommentieren.



So, aber bevor ich nun weiter mache, nenne bitte mal den genauen Dateipfad von der config.php und der mysql.class.php

Da scheint nämlich durchaus was nicht zu stimmen wenn ich sowas hier sehe
//include_once ('/www/htdocs/w00c9102/fewoholiday.de/class/mysql.class.php');

An der Position liegt sie nicht. War vielleicht nur ein Versuch, aber Deine ganzen include sind ziemlich verwirrend. Du springt in Ordnern hin und her. Nimm doch einfach absolute Pfade, dann wäre es eindeutig.

die config.php liegt im Root, das passt zumindest schon mal.

Japs
Nutzer/in
Nutzer/in
Beiträge: 1685
Registriert: 18.10.2004, 10:50

Beitrag von Japs » 22.05.2010, 16:10

Mach mal aus dem hier (in der ajax.php):

//include_once ('/www/htdocs/w00c9102/fewoholiday.de/config.php');
//include_once ('/www/htdocs/w00c9102/fewoholiday.de/class/mysql.class.php');
//include_once ('/www/htdocs/w00c9102/fewoholiday.de/class/template.class.php');
//include_once ('/www/htdocs/w00c9102/fewoholiday.de/site/modul_user.class.php');

jeweils ein require_once und aktivere es. Die ersten 4 Zeilen so lange auskommentieren.
Funktioniert leider auch nicht :(
So, aber bevor ich nun weiter mache, nenne bitte mal den genauen Dateipfad von der config.php und der mysql.class.php
1. config.php liegt direkt im Root-Verzeichnis, da wo auch die pplan.php liegt - die ajax.php, welche diese einbindet (includet) liegt hier - ich machs mal mit kompletten Pfad zur besseren Verdeutlichung: "fewoholiday.de/kalenderxy/ajax.php"

2. mysql.class.php liegt direkt hier:
"fewoholiday.de/kalenderxy/class/mysql.class.php"

Danke & Gruß Dirk

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 22.05.2010, 16:35

Japs, wenn Du sagst es geht nicht, dann bringt das nichts. Die Meldungen sind wichtig.

Die mysql_class....

Du sagtest eben, dass die hier liegt:
fewoholiday.de/kalenderxy/class/mysql.class.php

Warum steht in der ajax.php dann:
//include_once ('/www/htdocs/w00c9102/fewoholiday.de/class/mysql.class.php');
bzw:
//include_once ($_SERVER['DOCUMENT_ROOT'].'/class/mysql.class.php');

Einmal mit "kalenderxy" und einmal ohne. Was denn nun?


Sehr seltsam

Und nun abgesehen von den falschen Pfaden (alle überprüfen und anpassen!)

Nochmal von vorne, auch wenn mir der Zusammenhang zwischen der user_page.php und der ajax.php fehlt.

Die user_page.php wird als erstes includet.

Darin wird die DB-Klasse eigebunden

Dann die Tmplate-Klasse

Dann die eigentliche Modul Userpage

Danach wird das neue Objekt der DB erzeugt
Und danach das Objekt vom Kalender aus der Modul Userpage

So, und wo war da nun der DB-Connect? Wo war da die Config.php?

In der Ajax.php ist beides vorhanden, aber die wurde gar nicht verwendet....

Japs
Nutzer/in
Nutzer/in
Beiträge: 1685
Registriert: 18.10.2004, 10:50

Beitrag von Japs » 22.05.2010, 16:45

So wie ich es hier aufgezeigt habe, wird es bei mir verwendet:
https://ferienwohnungen-ferienhaeuser.c ... 1178007987 - exakt mit den gleichen Pfaden !!!

Im Prinzip hat das auch gar nix mit der ajax.php zu tun, die wird für die "plan" nicht mal benötigt - die ajax.php ist für das Javascript bzw. wird dort eingebunden, damit ich hier: https://www.ferienwohnungen-ferienhaeus ... 1178008180 beim Wechsel auf das Jahr 2011 nicht die ganze Seite laden muss, sondern nur den Beelgungsplan.

Gruß Dirk

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 22.05.2010, 16:49

Genau, die ajax.php hat damit nichts zu tun, sag ich doch. Also gilt folgendes:

Code: Alles auswählen

Aufruf der http://www.fewoholiday.de/kalenderxy/user_page.php
-> include_once ('kalenderxy/class/mysql.class.php');
-> include_once ('kalenderxy/class/template.class.php');
-> include_once ('kalenderxy/site/modul_userpage.class.php'); 
    --> include_once ('kalenderxy/class/belegungsplan.class.php'); 
-> $kalendersql = new CMysql(); 
-> $kalendertpl = new CArrayTemplate('kalenderxy/template', 'kalenderxy/template');
-> $kluser = new modul_user($kalendersql, $kalendertpl);
-> $kluser->go($Objekt_ID); 
-> echo $kluser->getHtml();


Demzufolge schlägt das 
$res = $this->sql->query('SELECT start,ende, typ FROM buchung WHERE objektid = "'.(int)$id.'"'); 

in der modul_userpage.class.php (ausgelöst von "new modul_user") fehl, da die Config gar nicht geladen wurde.
Oder wo wird denn hier die Config geladen? Alle möglichen Klassen und Templates sind da, von der Config oder gar einem DB-Connect (dem 'mysql_login();' aus der DB-Klasse) sehe ich nichts. Beides ist in der ajax.php, aber die wird, wie Du selbst sagst, gar nicht verwendet in dem Fall.

Japs
Nutzer/in
Nutzer/in
Beiträge: 1685
Registriert: 18.10.2004, 10:50

Beitrag von Japs » 22.05.2010, 17:06

Kommisch, dass es dan bei mir funktioniert, ohne dass die config.php extra nochmals eingebunden wird ?

Ich bin allerdings jetzt total verwirrt - wie müssted enn dann in der Datei:

Code: Alles auswählen

<?php 
class CMysql &#123;
	var $prefix;
	
	function mysql_login&#40;&#41; &#123;
		global $_CONFIG;
		
		mysql_connect&#40;$_CONFIG&#91;'MYSQL_SERVER'&#93;, $_CONFIG&#91;'MYSQL_USER'&#93;, $_CONFIG&#91;'MYSQL_PASSWORD'&#93;&#41;;
		mysql_select_db&#40;$_CONFIG&#91;'MYSQL_DATENBANK'&#93;&#41;;
		
		if &#40;mysql_error&#40;&#41;&#41; &#123;

		&#125;
		
		@mysql_query&#40;'SET CHARACTER SET '.$_CONFIG&#91;'MYSQL_CHARSET'&#93;&#41;;
		@mysql_query&#40;'SET NAME '.$_CONFIG&#91;'MYSQL_CHARSET'&#93;&#41;;
		
		/** Security&#58; Delete information! */
		$this->prefix = $_CONFIG&#91;'MYSQL_PREFIX'&#93;;

	&#125;
	
	function query&#40;$query&#41; &#123;
		$query = str_replace&#40;'&#91;p&#93;', $this->prefix, $query&#41;;
		$res = @mysql_query&#40;$query&#41;;
		//if &#40;mysql_error&#40;&#41;&#41; &#123;
		//	 echo mysql_error&#40;&#41;.'<br>'.$query.'<br>';
	 	//&#125;
		return $res;
	&#125;

	function query_first&#40;$query&#41; &#123;
		$res = $this->query&#40;$query&#41;;
		$arr = @mysql_fetch_array&#40;$res&#41;;
		return $arr;
	&#125;
&#125;
?>
Der korrekte include-Befehl für die config.php mal aussehen, damit diese dort richtig eingebunden wird - denn wenn die wirklcih jetzt gebracht wird, also zusätzlich, dann müssten ja die DB _ daten in diese datei wo auch der DB-Connect sich befindet oder ????

Gruß Dirk

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 22.05.2010, 17:34

Das kann ich so genau nicht sagen, da ich die Reihenfolge nicht wirklich kenne. Eigentlich sollten alle erforderlichen Scripte am Anfang geladen werden und nicht zwischendurch.

Lade doch in der user_page.php, oben bei den
-> include_once ('kalenderxy/class/mysql.class.php');
-> include_once ('kalenderxy/class/template.class.php');
-> include_once ('kalenderxy/site/modul_userpage.class.php');

die Config mit, so wie es auch in der ajax.php ist. Dort hast Du ja alle vier.
also als
include_once ('/www/htdocs/w00c9102/fewoholiday.de/config.php');
(config.php im Root)

Wenn das noch nicht reicht, dann musst Du den Login auch noch bearbeiten, denn das ganze

Code: Alles auswählen

global $_CONFIG;

$_CONFIG&#91;'MYSQL_SERVER'&#93; = $config&#91;'dbhost'&#93;;
$_CONFIG&#91;'MYSQL_USER'&#93; = $config&#91;'dbuser'&#93;;
$_CONFIG&#91;'MYSQL_PASSWORD'&#93; = $config&#91;'dbpass'&#93;;
$_CONFIG&#91;'MYSQL_DATENBANK'&#93; = $config&#91;'dbdata'&#93;; 
also die Zuweisung der Veriablen und das Global-Verfügbar-Machen gibt es ja nur in der ajax.php. Denn das Script also fehlt, dann ist Dein $_CONFIG ja gar nicht verfügbar.

Kann gut sein, dass Du das bei Dir, oder eben bei der Detailansicht mit drinnen hast, weil da irgendwo das ajax mit includet wird. Das ist aber genau das Problem, wenn nicht alles gleich am Anfang, etwa in einer init.php oder so ist.

Aber daher ja auch die Frage, welche Scripte aufgerufen werden. Ruft man den Kalender alleine auf, dann wird das hier verwendet: "plan.php"
ruft man die FeWo-Seite auf, dann ist das sicherlich ein anderes Script.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag