DOM XML 1.0 in XAMPP 1.7.2 deaktiviert?

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

DOM XML 1.0 in XAMPP 1.7.2 deaktiviert?

Postby Chronos-2 » 08. November 2009 18:10

Ich bekomme folgende Fehlermeldung beim ausführen des unten aufgeführten Scripts:

Fatal error: Call to undefined function domxml_new_doc() in D:\xampp\htdocs\phpsqlajax_genxml.php on line 2


Code: Select all
// Start XML file, create parent node
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("markers");
$parnode = $doc->append_child($node);


In der PHPinfo.php steht unter DOM allerdings:

    DOM/XML enabled
    DOM/XML API Version 20031129
    libxml Version 2.7.3
    HTML Support enabled
    XPath Support enabled
    XPointer Support enabled
    Schema Support enabled
    RelaxNG Support enabled

Ist denn DOM XML nun in XAMPP 1.7.2 aktiviert oder nicht? Und wenn nicht, wie kann ich es aktivieren?

Vielen Dank
Chronos-2
 
Posts: 4
Joined: 08. November 2009 17:57

Re: DOM XML 1.0 in XAMPP 1.7.2 deaktiviert?

Postby Chronos-2 » 08. November 2009 19:52

Ok. Ich hab jetzt verstanden, das DOM in PHP5 vollständig integriert wurde. Leider sind meine Programmierkünste noch ziemlich schlecht. Könnte mir vielleicht jemand das Script so umschreiben, das es PHP5 konform ist?


Code: Select all
<?php
require("phpsqlajax_dbinfo.php");

// Start XML file, create parent node
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("markers");
$parnode = $doc->append_child($node);

// Opens a connection to a mySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");

// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  $node = $doc->create_element("marker");
  $newnode = $parnode->append_child($node);

  $newnode->set_attribute("name", $row['name']);
  $newnode->set_attribute("address", $row['address']);
  $newnode->set_attribute("lat", $row['lat']);
  $newnode->set_attribute("lng", $row['lng']);
  $newnode->set_attribute("type", $row['type']);
}

$xmlfile = $doc->dump_mem();
echo $xmlfile;

?>


Das Script stammt von Google Maps. Ich habe es eins zu eins übernommen. http://code.google.com/intl/de/apis/maps/articles/phpsqlajax.html
Chronos-2
 
Posts: 4
Joined: 08. November 2009 17:57

Re: DOM XML 1.0 in XAMPP 1.7.2 deaktiviert?

Postby Xardas der Dunkle » 08. November 2009 20:54

Scroll ein Stück auf der, von dir geposteten, Seite runter, da ist der passende Code für PHP5.
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Re: DOM XML 1.0 in XAMPP 1.7.2 deaktiviert?

Postby Chronos-2 » 09. November 2009 13:39

Vielen Dank für die Hilfe :D Hab das Script gegen das PHP5 Script ausgetauscht.

Allerdings hab ich jetzt immer noch ein Problem, bei dem ich einfach nicht durchsteige (möglicherweise überseh ich auch einfach nur etwas?!?)

Ich habe das Script, wie gesagt, von der google Seite jetzt ersteinmal eins zu eins übernommen, um zu sehen wie es funktioniert und dann wollte ich es meinen Bedürfnissen anpassen.

die phpsqlajax_dbinfo.php baut eine Verbindung zur Datenbank auf. (Check)
Die phpsqlajax_genxml.php gibt alle Daten aus der Datenbank per XML auf den Bildschirm aus. (Check)
Die phpsqlajax_genxml2.php gibt alle Daten aus der Datenbank per XML auf den Bildschirm aus. (Check)
Die phpsqlajax_genxml3.php gibt alle Daten aus der Datenbank per XML auf den Bildschirm aus. (Check)
Die phpsqlajax_map.htm zeigt die richtige Karte im Browser an. Aber - ohne Marker! (hm ?)

Wo liegt das Problem? Was habe ich Übersehen?

Hier mal die Scripts:

phpsqlajax_genxml.php
Code: Select all
<?php 

require("phpsqlajax_dbinfo.php");

// Start XML file, create parent node

$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);

// Opens a connection to a MySQL server

$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {  die('Not connected : ' . mysql_error());}

// Set the active MySQL database

$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table

$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) { 
  die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");

// Iterate through the rows, adding XML nodes for each

while ($row = @mysql_fetch_assoc($result)){ 
  // ADD TO XML DOCUMENT NODE 
  $node = $dom->createElement("marker"); 
  $newnode = $parnode->appendChild($node);   
  $newnode->setAttribute("name",$row['name']);
  $newnode->setAttribute("address", $row['address']); 
  $newnode->setAttribute("lat", $row['lat']); 
  $newnode->setAttribute("lng", $row['lng']); 
  $newnode->setAttribute("type", $row['type']);
}

echo $dom->saveXML();

?>


phpsqlajax_genxml2.php
Code: Select all
<?php
require("phpsqlajax_dbinfo.php");

function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&apos;',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
return $xmlStr;
}

// Opens a connection to a mySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");

// Start XML file, echo parent node
echo '<markers>';

// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'name="' . parseToXML('&','&amp;', $row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}

// End XML file
echo '</markers>';

?>


phpsqlajax_genxml3.php
Code: Select all
<?php
require("phpsqlajax_dbinfo.php");

function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&#39;',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
return $xmlStr;
}

// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");

// Start XML file, echo parent node
echo '<markers>';

// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}

// End XML file
echo '</markers>';

?>


phpsqlajax_map.htm.php
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps AJAX + mySQL/PHP Example</title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=api&v=2&key=ABQIAAAAXmADf_6tBOoKpOL7vEoN2xRyULF1bKDZZvW4qhxkkuradgJrBhQvVd-aiL9sTaIzSjlxBuGyKaT4LQ"
       type="text/javascript"></script>
    <script type="text/javascript">
    //<![CDATA[

    var iconBlue = new GIcon();
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);

    var iconRed = new GIcon();
    iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
    iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconRed.iconSize = new GSize(12, 20);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);

    var customIcons = [];
    customIcons["restaurant"] = iconBlue;
    customIcons["bar"] = iconRed;

    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(47.614495, -122.341861), 13);

        // Change this depending on the name of your PHP file
        GDownloadUrl("phpsqlajax_genxml.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address, type);
            map.addOverlay(marker);
          }
        });
      }
    }

    function createMarker(point, name, address, type) {
      var marker = new GMarker(point, customIcons[type]);
      var html = "<b>" + name + "</b> <br/>" + address;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
    //]]>
  </script>
  </head>

  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 600px; height: 600px"></div>
  </body>
</html>
Chronos-2
 
Posts: 4
Joined: 08. November 2009 17:57

Re: DOM XML 1.0 in XAMPP 1.7.2 deaktiviert?

Postby Chronos-2 » 09. November 2009 15:21

Sorry, das ist nur ein Kopierfehler des Dateinamens gewesen. Sie heißt schon richtig "phpsqlajax_map.htm". Ich kann sie ja auch, wie gesagt aufrufen. Da erscheint aber nur die Karte, ohne Marker!
Chronos-2
 
Posts: 4
Joined: 08. November 2009 17:57


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 45 guests