+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Joomla - PHP Problem

  1. #1
    Neu an Board
    Registriert seit
    23.11.2009
    Beiträge
    75
    Bedankte sich
    35
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard Joomla - PHP Problem

    Guten Tag,

    ich habe auf meiner Joomla Installation das Plugin AddPHP installiert.
    Dann habe ich meine Umkreissuche (ohne Joomla problemlos lauffähig) so eingebunden
    Code:
    Code:
    {rdaddphp file=php/umkreissuche3.php}
    Zu der Umkreissuche gehört noch eine Class, die ich danach eingebunden habe
    Code:

    Code:
    {rdaddphp file=php/umkreissuche.class.php}
    Jetzt funktioniert alles soweit, dass, wenn ich die Seite aufrufe, das Umkreissuchen Formular kommt. Also wurde die Seite eingebunden.
    Wenn ich die Umkreissuche jetzt aber abschicke, werden die Werte auch angenommen, aber anscheinend nicht an die Class.php weitergeleitet.
    Denn jetzt werde ich auf die Index.php weitergeleitet. Die Werte werden aber angenommen, wie man an der Domain sieht:
    http://localhost/index.php?PLZ=67697&Entfernung=25

    Jetzt meine Fragen:
    -->Wie kann ich die Weiterleitun an umkreissuche.class.php machen?
    -->Warum werde ich an die index.php weitergeleitet?

    MfG

    Timotheus

  2. #2
    Moderator Avatar von time4mambo
    Registriert seit
    11.12.2006
    Ort
    76646 Bruchsal
    Alter
    54
    Beiträge
    14.337
    Bedankte sich
    455
    Erhielt 2.970 Danksagungen
    in 2.789 Beiträgen

    Standard

    Habe die gleiche Frage hier neulichst schon mal irgendwo ggelesen. Benutze doch mal die Suche, vielleicht gibts da ja eine Antwort.

    Oder war der womöglich von dir?

    Keine Antwort kann auch bedeuten, dass es niemand weiß


    Axel
    Schulungen, Webentwicklung: time4mambo
    (Video-)Tutorials: time4joomla

  3. #3
    Kommt häufiger vorbei
    Registriert seit
    07.09.2009
    Beiträge
    466
    Bedankte sich
    4
    Erhielt 113 Danksagungen
    in 110 Beiträgen

    Standard

    Zitat Zitat von timotheus123 Beitrag anzeigen
    Guten Tag,

    ich habe auf meiner Joomla Installation das Plugin AddPHP installiert.
    Dann habe ich meine Umkreissuche (ohne Joomla problemlos lauffähig) so eingebunden
    Code:
    Code:
    {rdaddphp file=php/umkreissuche3.php}
    Zu der Umkreissuche gehört noch eine Class, die ich danach eingebunden habe
    Code:

    Code:
    {rdaddphp file=php/umkreissuche.class.php}
    Jetzt funktioniert alles soweit, dass, wenn ich die Seite aufrufe, das Umkreissuchen Formular kommt. Also wurde die Seite eingebunden.
    Wenn ich die Umkreissuche jetzt aber abschicke, werden die Werte auch angenommen, aber anscheinend nicht an die Class.php weitergeleitet.
    Denn jetzt werde ich auf die Index.php weitergeleitet. Die Werte werden aber angenommen, wie man an der Domain sieht:
    http://localhost/index.php?PLZ=67697&Entfernung=25

    Jetzt meine Fragen:
    -->Wie kann ich die Weiterleitun an umkreissuche.class.php machen?
    -->Warum werde ich an die index.php weitergeleitet?

    MfG

    Timotheus
    Also mit den Informationen kann dir auch keiner helfen poste doch mal dein skript oder was in der action steht oder sonst was? wie soll dir denn jemand mit den infos helfen
    Meine Antwort hat dir Stunden an Zeit gespart?
    Nimm dir die 2 Sekunden und drück auf den Dankebutton

  4. #4
    Neu an Board
    Registriert seit
    23.11.2009
    Beiträge
    75
    Bedankte sich
    35
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard Umkreissuche

    Hallo

    @ time4mambo: ja, ich habe das 2 mal gepostet, weil mit einfach keiner Antwortet

    Naja, kennt jemand von euch ein gutes Plugin,oder eine Möglichkeit, PHP in einen Beitrag, oder anderweitig auf der Homepage einzubauen?

    Vielleicht liegt es ja auch an AddPHP... dann müssten wir ja nicht nach einer Lösung suchen^^


    Umkreissuch- Formuar mit Ausgabe

    Code:
    <?php
    define('__CFG_DB_SERVER', 'localhost');
    define('__CFG_DB_NAME', 'umkreissuche');
    define('__CFG_DB_USERNAME', 'root');
    define('__CFG_DB_PASSWORD', '');
    ?>		 
    <?php
    $PLZ = trim((get_magic_quotes_gpc()) ? stripslashes($_REQUEST['PLZ']) : $_REQUEST['PLZ']);
    $Entfernung = trim((get_magic_quotes_gpc()) ? stripslashes($_REQUEST['Entfernung']) : $_REQUEST['Entfernung']);
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
    <table width="445">
    <tr>
    	<td width="85" class="Stil3">Postleitzahl:</td>
    	<td width="144"><input type="text" name="PLZ" value="<?php echo htmlentities($PLZ); ?>" /></td>
    </tr>
    <tr>
    	<td class="Stil3">Entfernung:</td>
    	<td><select name="Entfernung">
    			<option value="5"<?php if ($Entfernung == 5) echo ' selected="selected"'; ?>>5 km</option>
    			<option value="10"<?php if ($Entfernung == 10) echo ' selected="selected"'; ?>>10 km</option>
    			<option value="20"<?php if ($Entfernung == 20) echo ' selected="selected"'; ?>>20 km</option>
    			<option value="25"<?php if ($Entfernung == 25) echo ' selected="selected"'; ?>>25 km</option>
    		</select></td>
    </tr>
    <tr>
    	<td height="27">&nbsp;</td>
    	<td><input type="submit" value="Zimmersuche starten" /></td>
    </tr>
    </table>
    </form>
    
    <?php
    if (!empty($PLZ) && ($Entfernung >= 5) && ($Entfernung <= 25)) {
    	echo '<h2>Ergebnis der Umkreissuche</h2>';
    	if (!preg_match('/^([0-9]{5})$/', $PLZ)) {
    		echo 'Das Format der eingegebenen Postleitzahl ist ung&uuml;ltig!';
    	} else {
    		$db = mysql_connect(__CFG_DB_SERVER, __CFG_DB_USERNAME, __CFG_DB_PASSWORD) or die(mysql_error());
    		mysql_select_db(__CFG_DB_NAME, $db) or die(mysql_error());
    		require_once('umkreissuche.class.php');
    		$Suche = new Umkreissuche($db, 'daten');
    		$Suche->zeigeFehler = false;
    		$Ergebnis = $Suche->Suche($PLZ, $Entfernung, array('name', 'Bilder', 'betten', 'preis', 'webseite', 'infoseite', 'beschreibung', 'eigner', 'strasse', 'tel', 'plz', 'ort'), 'Entfernung', 'ASC');
    		if ($Ergebnis === false) {
    			echo 'In der Umkreissuche ist ein Fehler aufgetreten. Haben Sie eine g&uuml;ltige Postleitzahl eingegeben?';
    		} else if (!count($Ergebnis)) {
    			echo "<div class='Stil3'>" . 'Leider wurden keine Ergebnisse im Umkreis von ' . htmlentities($Entfernung) . ' km um die Postleitzahl ' . htmlentities($PLZ) . ' gefunden!' . "</div>\n";;
    		                 } else {
      echo '<ul>';
    echo        '<p align="left" class="Stil3">&nbsp;</p>';
    echo      '<table width="630" height="93" border="1" align="right" class="Stil3">
                <tr>
                <th width="155" scope="col"><span class="Stil23">Name</span> </th>
                  <th width="51" scope="col"><span class="Stil23">Preis (ab € Pers.)</span> </th>
                  <th width="36" scope="col"><span class="Stil23">Max. Pers.</span> </th>
                  <th width="137" scope="col"><span class="Stil23">Kontakt</span> </th>
                  <th width="157" scope="col"><span class="Stil23">Beschreibung</span> </th>
                  <th width="28" scope="col"><span class="Stil23">Entf. ca</span> </th>
                </tr>';
    foreach ($Ergebnis as $Eintrag) {
    echo       '<tr>
                  <td height="25"><p> '.htmlentities($Eintrag->name).' </p>
                  <p> ';
                   if (!empty($Eintrag->Bilder))
    {
                  echo '<img src="./bilder/' . $Eintrag->Bilder . '" alt="' . $Eintrag->Bilder . '"><br />' . "\n";
    }
                  echo ' </p></td>
                  <td><div align="center"> '.htmlentities($Eintrag->preis).' </div></td>
                  <td><div align="center"> '.htmlentities($Eintrag->betten).' </div></td>
                  <td><p> '.htmlentities($Eintrag->eigner) . ' </p>
                  <p> '.htmlentities($Eintrag->strasse) . ' </p>
                  <p> '.htmlentities($Eintrag->plz) . ' ' . htmlentities($Eintrag->ort) . ' </p>
    			  <p> '.htmlentities($Eintrag->tel) . ' </p>
                  <p> ';
    			   if (!empty($Eintrag->infoseite)) 
    {
    			  echo "<div class='Stil3'>" . 'Weitere Infos: <a href="' . $Eintrag->infoseite . '">' . ' Klick' . '</a><br />' . "</div>\n";
    } 
     			  echo ' </p>
    			  <p> ';
    			   if (!empty($Eintrag->webseite)) 
    {
    			  echo "<div class='Stil3'>" . 'Website: <a href="' . $Eintrag->webseite . '">' . ' Klick' . '</a><br />' . "</div>\n";
    } 
     			  echo ' </p></td>
                  <td> '.htmlentities($Eintrag->beschreibung).' </td>
                  <td> '.number_format($Eintrag->Entfernung, 1, ',', '.') . ' </td>
                </tr>';
    }
    
    echo '</table>';
    }
    
    }
    }
    
    ?>

  5. #5
    Neu an Board
    Registriert seit
    23.11.2009
    Beiträge
    75
    Bedankte sich
    35
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard Anhang

    Hier noch die Umkreissuche.class.php

    Umkreissuche.class.php

    Code:
    <?php
    /* * * * * * * * * * * * * * * * * * * * * * * * *
    	Klasse Umkreissuche
    	(c) 2008 Philipp Mamat
    	http://www.mamat-online.de/
    	http://www.mamat-online.de/umkreissuche/opengeodb.php
     * * * * * * * * * * * * * * * * * * * * * * * * */
     
    class Umkreissuche {
    	// Erdradius in Kilometern
    	private $Erdradius = 6371;
    	// mysql link identifier
    	private $db;
    	// Datentabelle
    	private $table = false;
    	// Fehler zeigen?
    	public $zeigeFehler = true;
    
    	public function __construct($db, $table = 'vereine') {
    		if (!is_resource($db) || get_resource_type($db) != 'mysql link') {
    			trigger_error('Keine MySQL-Ressource übergeben', E_USER_ERROR);
    		}
    		$this->db = $db;
    		$this->table = $table;
    
    		// leere Koordinaten in Tabelle füllen
    		$sql = 'SELECT `ID`, `PLZ`
    				FROM `' . $this->table . '`
    				WHERE
    					`KoordX` = "0"
    				AND `KoordY` = "0"
    				AND `KoordZ` = "0"
    				';
    		$re = mysql_query($sql, $this->db);
    		while ($rd = mysql_fetch_object($re)) {
    			if (!$this->Plz2Koord($rd->PLZ, $lon, $lat)) {
    				if ($this->zeigeFehler) {
    					trigger_error('Postleitzahl ' . $rd->PLZ . ' konnte nicht zugeordnet werden', E_USER_NOTICE);
    				}
    				continue;
    			}
    			$this->Kugel2Kartesisch($lon, $lat, $x, $y, $z);
    			$sql = 'UPDATE `' . $this->table . '`
    					SET
    						`Longitude` = "' . $lon . '",
    						`Latitude` = "' . $lat . '",
    						`KoordX` = "' . $x . '",
    						`KoordY` = "' . $y . '",
    						`KoordZ` = "' . $z . '"
    					WHERE
    						`ID` = "' . (int)$rd->ID . '"
    					LIMIT 1
    					';
    			mysql_query($sql, $this->db);
    
    		while ($rd = mysql_fetch_object($re)) {
                $rd->Entfernung = 2* $this->Erdradius * 
                    asin(
                        sqrt(
                            pow($UrsprungX - $rd->KoordX, 2) 
                          + pow($UrsprungY - $rd->KoordY, 2) 
                          + pow($UrsprungZ - $rd->KoordZ, 2) 
                        ) / (2 * $this->Erdradius)
                    );
                $result[] = $rd;
            }
    		}
    	}
    		
    	public function Kugel2Kartesisch($lon, $lat, &$x, &$y, &$z) {
    		$lambda = $lon * pi() / 180;
    		$phi = $lat * pi() / 180; 
    		$x = $this->Erdradius * cos($phi) * cos($lambda);
    		$y = $this->Erdradius * cos($phi) * sin($lambda);
    		$z = $this->Erdradius * sin($phi); 
    		return true;
    	}
    	
    	public function Plz2Koord($PLZ, &$lon, &$lat) {
    		$sql = 'SELECT
    					coo.lon,
    					coo.lat
    				FROM geodb_coordinates AS coo
    				INNER JOIN geodb_textdata AS textdata
    				ON textdata.loc_id = coo.loc_id
    				WHERE
    					textdata.text_val = "' . mysql_real_escape_string($PLZ, $this->db) . '"
    				AND textdata.text_type = "500300000"
    				LIMIT 1';
    		$re = mysql_query($sql, $this->db);
    		if (mysql_num_rows($re) != 1) {
    			return false;
    		}
    		list($lon, $lat) = mysql_fetch_row($re);
    		return true;
    	}
    	
    	public function Suche($PLZ, $Radius, $Spalten = array(), $Reihenfolge = false, $Richtung = 'ASC') {
    		if (!is_array($Spalten) || count($Spalten) == 0) {
    			$Spalten = '*';
    		} else {
    			$Spalten = '`' . implode('`, `', $Spalten) . '`';
    		}
    
    		if (!$this->Plz2Koord($PLZ, $lon, $lat)) {
    			if ($this->zeigeFehler) {
    				trigger_error('Postleitzahl ' . $PLZ . ' konnte nicht zugeordnet werden', E_USER_NOTICE);
    			}
    			return false;
    		}
    		$this->Kugel2Kartesisch($lon, $lat, $UrsprungX, $UrsprungY, $UrsprungZ);//KoordX, KoordY, KoordZ
    		
    		$sql = 'SELECT ' . $Spalten . ',
                    ' . (2 * $this->Erdradius) . ' *
                    ASIN(
                        SQRT(
                        POWER(' . $UrsprungX .' - KoordX, 2)
                      + POWER(' . $UrsprungY .' - KoordY, 2)
                      + POWER(' . $UrsprungZ .' - KoordZ, 2)
                    ) / ' . (2 * $this->Erdradius) . ' ) AS Entfernung
    				FROM `' . $this->table . '`
    				WHERE
    					KoordX >= ' . ($UrsprungX - $Radius) . '
    				AND KoordX <= ' . ($UrsprungX + $Radius) . '
    				AND KoordY >= ' . ($UrsprungY - $Radius) . '
    				AND KoordY <= ' . ($UrsprungY + $Radius) . '
    				AND KoordZ >= ' . ($UrsprungZ - $Radius) . '
    				AND KoordZ <= ' . ($UrsprungZ + $Radius) . '
    				AND POWER(' . $UrsprungX .' - KoordX, 2)
    				  + POWER(' . $UrsprungY .' - KoordY, 2)
    				  + POWER(' . $UrsprungZ .' - KoordZ, 2)
    					<= "' . pow(2 * $this->Erdradius * sin($Radius / (2 * $this->Erdradius)), 2) . '"';
    		/*if ($Reihenfolge && strpos($Spalten, $Reihenfolge) !== false) {
    			$Richtung = (strtoupper($Richtung) == 'DESC') ? 'DESC' : 'ASC';
    			$sql .= "\n" . 'ORDER BY `' . $Reihenfolge . '` ' . $Richtung;
    		}*/
    		if($Reihenfolge !== false)
    		{
    			$sql .= "\n" . 'ORDER BY `' . $Reihenfolge . '` ' . $Richtung;
    		}
    		$re = mysql_query($sql, $this->db);
    		$result = array();
    		while ($rd = mysql_fetch_object($re)) {
    			/*$rd->Entfernung = 2* $this->Erdradius * 
    					asin(
    						sqrt(
    							pow($UrsprungX - $rd->KoordX, 2) 
    						  + pow($UrsprungY - $rd->KoordY, 2) 
    						  + pow($UrsprungZ - $rd->KoordZ, 2) 
    						) / (2 * $this->Erdradius)
    					);*/
    			$result[] = $rd;
    		}
    		return $result;
    	}
    
    }
    ?>
    Muss ich vielleicht die Domain zu der anderen Domain, und nicht nur den Namen angeben ( in Umkreissuche zu class.php )? Wie gesagt, ohne Joomla funktioniert das ganze fehlerfrei...

    Timotheus

    PS: Wenn jemand eine Umkreissuche braucht, kann er diese gerne verwenden! Sie ist lizenzfrei von mamat-online.de zur Verfügung gestellt worden klick

  6. #6
    Kommt häufiger vorbei
    Registriert seit
    07.09.2009
    Beiträge
    466
    Bedankte sich
    4
    Erhielt 113 Danksagungen
    in 110 Beiträgen

    Standard

    require_once wirft kein fehler? du hast ne tabelle in deiner "umkreissuche" datenkbank die "daten" heißt ?
    wo landest du, wenn du das fomrular abschickst? wieder auf der seite mit dem formular?

    anderen plugin wäre z.b. includePHP
    Meine Antwort hat dir Stunden an Zeit gespart?
    Nimm dir die 2 Sekunden und drück auf den Dankebutton

  7. #7
    Neu an Board
    Registriert seit
    23.11.2009
    Beiträge
    75
    Bedankte sich
    35
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    ja genau...
    Also: Wenn ich die Umkreissuche per Pfad (localhost/php/umkreissuche3.php) aufrufe, funktionert alles super!

    Aber wenn ich die Umkreissuche einbinde (Aktuell mit AddPHP - includePHP macht fehler) und ich benutze die Umkreissuche (wird eingebunden, das Formular erscheint - es gibt keine Fehlermeldung) dann werden die eingegebenen Variablen an index.php per require_once geschickt!
    Das sieht dann so aus:
    Code:
    http://localhost/index.php?PLZ=67697&Entfernung=5
    Wenn ich hingegen die Umkreissuche per Pfad aufrufe, sieht das so aus und es funktioniert:
    Code:
    http://localhost/php/umkreissuche3.php?PLZ=67697&Entfernung=5
    Meine Frage also: wie kann ich per require_once richtig weiterleiten?

    Zusammengefasst: die require_once Weiterleitung funktionert nicht richtig, wenn ich die Umkreissuche in Joomla einbinde!

    Timotheus123

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein