+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Automatische Weiterleitung auf index.php verhindern

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

    Standard Automatische Weiterleitung auf index.php verhindern

    Hallo,

    ich will auch meiner Webseite eine Umkreissuche betreiben. Diese Funktioniert auch prima.
    Aber wenn ich die Umkreissuche nicht auf der Startseite betreiben will, kommt die Weiterleitung auf die index.php.
    Die Umkreissuche schickt folgende Daten mit der Domainendung mit:
    *?PLZ=67697&Entfernung=25

    Bei der index Seite funktioniert das auch super, aber wenn ich die Umkreissuche auf einer Menü Seite betreiben will, kann ich sie ausfüllen, wede dann aber von Domain/umkreissuche.html auf Domain/index.php?PLZ=67697&Entfernung=25 weitergeleit. Wenn ich auf der Indexseite das Ausgebe Script platziere, bekomme ich auch das Ergebnis.

    Die Umkreissuche kann ich nur unter Domain/umkreissuche.html betreiben, wenn ich einfach ?PLZ=67697&Entfernung=25 dahinter hänge. Kann man diese automatische Weiterleitung irgendwie abschalten?

    MfG

    Timotheus123

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

    Standard

    hat keiner eine Idee, wie ich das PHP Script auf einer Unterseite einsetzen kann?

    MfG

    Timotheus

  3. #3
    Verbringt hier viel Zeit
    Registriert seit
    22.05.2007
    Beiträge
    727
    Bedankte sich
    35
    Erhielt 135 Danksagungen
    in 131 Beiträgen

    Standard Genauere Angaben

    Deine Angaben sind doch recht ungenau. Mit was führst Du denn die Suche aus? Komponente, Modul, Plugin für andere Kompoinente oder was?
    Im Prinzip muss doch dein Script irgendwo diese Rückgabe an die index.php veranlassen und da könnte man dann mal probieren.
    PM werden von mir maximal kurz beantwortet. Service kostet auch bei mir Geld.

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

    Standard

    Hallo,

    ich versuche mal die Sache genauer zu beschreiben:
    Aktuelles Plugin: AddPHP
    Einbindungsvariante: inlude

    Hier die Abfrage, und teile der Ausgabe:

    PHP-Code:
    <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="Suche 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;
    und hier der umkreissuche.class:

    PHP-Code:
    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->KoordX2
                          + 
    pow($UrsprungY $rd->KoordY2
                          + 
    pow($UrsprungZ $rd->KoordZ2
                        ) / (
    $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 ',
                    ' 
    . ($this->Erdradius) . ' *
                    ASIN(
                        SQRT(
                        POWER(' 
    $UrsprungX .' - KoordX, 2)
                      + POWER(' 
    $UrsprungY .' - KoordY, 2)
                      + POWER(' 
    $UrsprungZ .' - KoordZ, 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($this->Erdradius sin($Radius / ($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;
        }

    }
    ?> 
    Ganaue Beschreibung: Die Umkreissuche (1. Script) wir auf der Seite umkreissuche includet. Beide Scripte liegen im selbern Verzeichnis!
    Nach dem ich das 1. Script ausgefüllt und abgeschickt habe, werde ich auf /index.php?PLZ=67697&Entfernung=25 Weitergeleitet. Habe ich dort ach das 1. Script includet, bekomme ich die Ergebnisse!

    Wie kann ich eine Weiterleitung auf index.php verhindern?

    MfG

    Timotheus

+ Antworten

Lesezeichen

Berechtigungen

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