|
|
|
|
|
|
|
#1 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 08.08.2009
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
Hallo Leute!
Ich habe einen kleinen Ajax Kalender übernommen und diesen in eine PHP Anwendung implementiert. Das ganze funktioniert auch super und ohne Probleme solang ich in der druch Ajax aufgerufenen PHP Datei die Login Informationen zur Datenbank definiert habe. Nur, wenn ich die Login Informationen aus dem Login File von der eigentlichen PHP Anwendung nehme funktioniert es nicht. Hier mal erste Variante: PHP-Code:
PHP-Code:
PHP-Code:
Hab schon diverse Variantent probiert auch mit anderem Pfad und so weiter aber hat alles nicht geholfen. Der Fehler kommt überigens durch das Javascript File wo der Rückgabewert von der PHP Datei nicht gesetzt ist. Wenn ich die PHP Datei direkt aufrufe erfolgt folgende: HTML-Code:
The XML page cannot be displayed Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later. -------------------------------------------------------------------------------- In einem XML-Dokument ist nur ein Element höchster Ebene zugelassen. Fehler beim Bearbeiten der Ressource 'http://mr2.sytes... <b>Notice</b>: Use of undefined constant mday - assumed 'mday' in <b>C:\xampp\htdocs\module\kalender\supe... eXe P.S.: Wenn ich weiter Informationen liefern muss einfach darum bitten ![]() |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) | |
|
Erfahrener Benutzer
Registriert seit: 10.10.2009
Beiträge: 862
PHP-Kenntnisse: Fortgeschritten ![]() |
Zitat:
$xml kommt sicher irgendwann als echo $xml zum Vorschein. Deine include Datei für die DB schaltet das Error Reporting auf E_ALL, was sonst wohl nicht passiert wodurch "vor" deinem echo Notices geworfen werden was dazu führst das dein Output so aussieht: <b>Notice:</b>... <b>Notice:</b>... <?xml.... |
|
|
|
|
|
|
#3 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 25.09.2009
Beiträge: 1.223
PHP-Kenntnisse: Fortgeschritten ![]() |
so wie ich verstanden habe hast du 2 datein. die eine hat den eigentlichen quellcode, die andere ruft die quellcode datei über ajax auf. wenn du die quellcode datei direkt aufrufst kommt ein fehler, sonst nicht.
habe ich das richtig verstanden? wenn ja, hast du überprüft welche url der ajax code aufruft? evenutell fehlt bei der datei noch übergabeparameter oder so MFG
__________________
PHP-Code:
|
|
|
|
|
|
#4 (permalink) |
|
Erfahrener Benutzer
|
Bitte zukünftig im Browser F12 drücken zum Ajax-Debuggen. Dann siehst du auch, was an Response zurückkommt und dass das XML durch die Warnungen nicht valide ist (siehe oben). Im Firefox dafür die Extension "Firebug" installieren. Der IE8 bringt das von Haus aus mit.
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt. Kostenlos-Webspace zu Weihnachten |
|
|
|
|
|
#5 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 08.08.2009
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
Hallo. Vielen Dank für eure Antworten!
Also ich hab eine Javascript Datei welche wie folgt aussieht: HTML-Code:
var req;
function navigate(month,year,evt) {
setFade(0);
var url = "../../module/kalender/super_calendar.php?month="+month+"&year="+year+"&event="+evt;
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("GET", url, true);
req.onreadystatechange = callback;
req.send(null);
}
function callback() {
if(req.readyState == 4) {
var response = req.responseXML;
var resp = response.getElementsByTagName("response");
getObject("list_events").innerHTML = resp[0].getElementsByTagName("termine")[0].childNodes[0].nodeValue;
getObject("calendar").innerHTML = resp[0].getElementsByTagName("content")[0].childNodes[0].nodeValue;
fade(70);
}
}
Details zum Fehler auf der Webseite Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2) Zeitstempel: Tue, 17 Nov 2009 10:00:05 UTC HTML-Code:
Meldung: '0' ist Null oder kein Objekt Zeile: 20 Zeichen: 3 Code: 0 URI: http://server1/module/kalender/super_calendar.js HTML-Code:
getObject("list_events").innerHTML = resp[0].getElementsByTagName("termine")[0].childNodes[0].nodeValue;
Das heists der Pfad stimmt. Die DB Informationen auch sonst würde die ganze Anwendung nicht funktionieren. Wieso also kriege ich bei der externen DB Verbindung einen solchen Fehler und wenn die DB Informationen in der Datei selbst mit drin stehen nicht? Das ist für mich einfach nicht nachvollziehbar. Das mit dem error_reporting war eine sehr gute Idee, aber leider nicht das Problem. Hier wäre mal noch die ganze durch AJAX aufgerufene super_calendar.php PHP Datei: PHP-Code:
|
|
|
|
|
|
#7 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 08.08.2009
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
Halt. Muss mich korrigieren, die super_calendar.php Datei ergibt keinen Fehler mehr, die Ausgabe stimmt jetzt. Du hattest recht mit dem ERROR Reporting.
HTML-Code:
<?xml version="1.0" ?> - <response> - <content> + <![CDATA[ <table class='cal' cellpadding='0' cellspacing='1'> <tr> <td colspan='7' class='calhead'> <table> <tr> <td> <a href='javascript:navigate(10,2009,"")' style='border:none'><img src='../../module/kalender/images/calLeft.gif' alt='prev' /></a> <a href='javascript:navigate("","","")' style='border:none'><img src='../../module/kalender/images/calCenter.gif' alt='current' /></a> <a href='javascript:navigate(12,2009,"")' style='border:none'><img src='../../module/kalender/images/calRight.gif' alt='next' /></a> <a href='javascript:void(0)' onClick='showJump(this)' style='border:none'><img src='../../module/kalender/images/calDown.gif' alt='jump' /></a> </td> <td align='right'> November 2009 </td> </tr> </table> </td> </tr> <tr class='dayhead'> <td>Son</td> <td>Mon</td> <td>Die</td> <td>Mit</td> <td>Don</td> <td>Fre</td> <td>Sam</td> </tr> <tr class='dayrow'> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>1</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>2</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>3</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>4</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>5</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>6</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>7</b></div> </td> </tr> <tr class='dayrow'> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>8</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>9</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>10</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>11</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>12</b></div><div class='calevent'>Event</div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>13</b></div><div class='calevent'>Event</div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>14</b></div> </td> </tr> <tr class='dayrow'> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>15</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>16</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b style='color:#C00'>17</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>18</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>19</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>20</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>21</b></div> </td> </tr> <tr class='dayrow'> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>22</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>23</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>24</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>25</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>26</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>27</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>28</b></div> </td> </tr> <tr class='dayrow'> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>29</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"><div class='day'><b>30</b></div> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"> </td> <td valign='top' onMouseOver="this.className='dayover'" onMouseOut="this.className='dayout'"> </td> </tr> </table> ]]> </content> - <termine> - <![CDATA[ Termine im November 2009<ul><li>A great event!</li><li>Vereinsabsenden</li></ul> ]]> </termine> </response> |
|
|
|
|
|
#8 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 08.08.2009
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
also ich hab mal das Error Reporting eingeschalten wenn ich die DB Informationen direkt in der Datei eintrage und erhalte ebenfalls einen Fehler:
<b>Notice</b>: Undefined index: event in <b>C:\xampp\htdocs\module\kalender\super_calendar. php</b> ... Das heisst dann wohl dass gar nicht die DB Verbindung das Problem ist sondern das Error Reporting. Soweit so gut. Nur wieso funktioniert es bei ausgeschaltetem Error Reporting dann mit der externen DB Information nicht? Man das ist verwirrend... wiedermal ein kleines Problem mit grossem Zeit-Zerstörungs-Faktor! ![]() |
|
|
|
|
|
#9 (permalink) |
|
Erfahrener Benutzer
|
So, ich hoffe das war nun groß genug. u bekommst dort alles an die Hand: Du kannst schauen, was zurückkommt von der PHP-Seite ob das valides XML ist und du hast dort auch Javascript-Debugger. Nutze dies. Und Ja, man sollte immer mit eingeschaltetem Error-Reporting entwickeln und alle Warnungen vermeiden. Meist deutet eine solche Warnung auf schlampigen Code hin.
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt. Kostenlos-Webspace zu Weihnachten |
|
|
|
|
|
#10 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 08.08.2009
Beiträge: 106
PHP-Kenntnisse: Fortgeschritten ![]() |
Vielen Dank für den Tipp. Aber wie genau kann ich denn nun im Debugger feststellen was an XML Daten reinkommt? ( IE8-F12 Ding )
Gruss eXe |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Einfache Abfrage aus mySQL Datenbank Problem | ThomasM | PHP Einsteiger | 7 | 05.06.2009 21:06 |
| [Erledigt] datenbank abfrage mit group by mit php | xstefxanx | PHP Einsteiger | 2 | 27.04.2009 23:39 |
| [Erledigt] Daten von Datenbank NACH der Abfrage sortieren | Supeede | PHP Einsteiger | 21 | 10.04.2009 00:33 |
| datenbank abfrage mit php | xstefxanx | PHP Einsteiger | 11 | 04.04.2009 18:33 |
| Zufallsbild -> Abfrage MySQL Datenbank | nic_ | Datenbanken | 4 | 24.11.2008 12:43 |
| innerHTML funktioniert nicht bei AJAX request | Plague | HTML, Usability und Barrierefreiheit | 1 | 21.12.2006 14:30 |
| Abfrage mit NOT LIKE funktioniert nicht wirklich | PsychoEagle | Datenbanken | 6 | 26.09.2006 11:45 |
| DB Abfrage nach email funktioniert nicht | tinchen | Datenbanken | 3 | 15.05.2006 13:20 |
| datenbank Abfrage in Var schreiben | web2 | PHP Tipps 2005-2 | 3 | 22.07.2005 12:59 |
| Verbindung zur Datenbank funktioniert nicht | picco | PHP Tipps 2005 | 5 | 30.05.2005 17:15 |
| [Erledigt] MYSQL Abfrage (mit Optimierter Datenbank) -> PhP | Datenbanken | 2 | 02.03.2005 18:50 | |
| Abfrage funktioniert unter MySQL aber nicht unter MS SQL | Schiedsrichter | Datenbanken | 2 | 27.01.2005 15:43 |
| Abfrage funktioniert zwar, aber nicht korrekt | Datenbanken | 2 | 16.08.2004 09:10 | |
| Newbie-Frage: Abfrage funktioniert nicht | Datenbanken | 3 | 13.08.2004 12:28 | |
| Abfrage funktioniert nicht! | Datenbanken | 6 | 29.07.2004 14:59 | |