Antworten auf deine Fragen:
Neues Thema erstellen

URL-Parameter Dynamish mit Slash

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Ich versteh nur Bahnhof...
Wie wärs mal mit Fehlermeldungen posten?
Oder doch mal den ganzen Code damit ich auch am Objekt ausprobieren kann.
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Aber den gesamten Code poste ich nur sehr ungern in aller Öffentlichkeit...
 

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Ich hab jetz schön langsam keine Geduld mehr...
Kein Code, OK. Aber die Fehlermeldung sollte doch wohl möglich sein, oder?
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Ich bin gerade dabei mein Problem via Parsen zu lösen:
Hier mal der Code:
PHP:
class Request
{
    private $params = array();
    
    public function __construct()
    {
        $this->parseQueryString($_REQUEST['query']);
    }
    
    private function parseQueryString($queryString, $keyPrefix = 'wert')
    {
        $queryElements = explode('/', $queryString);
        foreach ($queryElements as $key => $value) {
            $this->params[$keyPrefix . ($key + 1)] = $value;
        }
    }
    
    public function getParam($paramName, $defaultValue = null)
    {
        if (!isset($this->params[$paramName])) {
            return $defaultValue;
        }
        
        return $this->params[$paramName];
    }
}

...und dazu schaut meine .htacces wie folgt aus:
Code:
RewriteRule ^/unterseite/(.*).html$ /unterseite.html?query=$1 [QSA,L]

Auch hier tut sich gar nichts...Aber wenigstens funzt dann das Skript einwandfrei. Aber die URL's bleieb die selben wie vorher...
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

OK. sorry...gerad erst Thread von DarkFather gelesen...Ich präpariere meinen Code und poste ihn dann...ca. 30 min. ???

EDIT:
Ist es gefährlich für mich bzw. meine Seite wenn in dem Code Params usw. enthalten sind??? Also könnten Hacker damit was anfangen???
 
Zuletzt bearbeitet:

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Hier der Code, bei Sicherheitslücken wäre ich sehr Dankbar fürs bescheid geben:
PHP:
E D I T : 16.12.11 
Sorry, aber irgendwie komm ich mir a bissl verarscht vor...Deswegen nehme ich meinen Code hier wieder raus...Is mir eh nicht ganz Geheuer...
 
Zuletzt bearbeitet:

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Woa...
var1 bis 16
param1 bis 6

Bisher war immer von drei Variablen die Rede, aber es sind ja mindestens drei bis fünf.
Wenn du die URL umschreibst mit fünf Unterordnern schaut das auch komisch aus, daher würde ich Unterstriche nehmen, etwa so:

unterseite/param1/param2/param3_param4_param5.html und dann mit explode arbeiten...
Hier der Code:

Geändert habe ich NUR den WEITER-Link
PHP:
<?php
//	unterseite/param3/param2/param1_param4_asc.html
// $_GET['param1']  =>  param1_param4_asc
// $params[0] = param1
// $params[1] = param4
// $params[2] = asc
//
//	unterseite/param3/param2/param1_asc.html
// $_GET['param1']  =>  param1_asc
// $params[0] = param1
// $params[1] = asc
// $params[2] = 
//
//	unterseite/param3/param2/param1.html
// $_GET['param1']  =>  param1_asc
// $params[0] = param1
// $params[1] = 
// $params[2] = 
//

if(isset($_GET['param1'])){
	$params = explode("_", $_GET['param1']);
	$param1 = $params[0];
	if($params[1] != "" && $params[1] != "asc" && $params[1] != "desc"){
		$param4 = $params[1];
	}
	
	if($params[1] == "asc" || $params[2] == "asc"){
		// Ascending
	} else {
		// Descending
	}
}

$var1 = (empty($var1) AND isset($param1)) ? trim($param1) : 'Wert,Wert,Wert...';
$var2 = (empty($var2) AND isset($_GET['param2'])) ? trim($_GET['param2']) : '';



$var1 = (isset($_POST['param1']) AND $_POST['param1'] != 'irgendwas') ? trim($_POST['param1']) : $var1;
$var2 = isset($_POST['param2']) ? trim($_POST['param2']) : $var2;

$path_parts = pathinfo($_SERVER['PHP_SELF']);
$var3 = $path_parts['dirname']."/".$path_parts['filename'];




//ABFRAGE...SELECT...etc.




if(isset($var4) && $var4 != 0 && $var4 != '')
{


//*********************************COUNTS*************************************************************************COUNTS*************************************************************************COUNTS*********************************************************COUNTS
//*********************************COUNTS*************************************************************************COUNTS*************************************************************************COUNTS*********************************************************COUNTS
//*********************************COUNTS*************************************************************************COUNTS*************************************************************************COUNTS*********************************************************COUNTS


$var5 = "10";      // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen
$var6 = "6";                                // Anzahl der Links die in der Seitenavigation ausgegeben werden
$var7 = mysql_num_rows($var4);                      // liefert die  Anzahl der Datensaetze der Abfrage
$var8 = ceil($var7 / $var5);     // Berechnet die Seitenanzahl insgesamt
//$var1 = urlencode($var1);

//*********************************COUNTS*************************************************************************COUNTS*************************************************************************COUNTS*********************************************************COUNTS
//*********************************COUNTS*************************************************************************COUNTS*************************************************************************COUNTS*********************************************************COUNTS
//*********************************COUNTS*************************************************************************COUNTS*************************************************************************COUNTS*********************************************************COUNTS

//----------------PAGER FUNCTION----------------------------------------------PAGER FUNCTION--------------------------------------------PAGER FUNCTION------------------------------------------PAGERFUNCTION--------------------------------------------PAGER FUNCTION


if(isset($var7) && $var7 != 0 && $var7 != '')
{

if(empty($_GET['param3'])){ 

     $var9 = 1;        

}elseif($_GET['param3'] <= 0 || $_GET['param3'] > $var8){

     $var9 = 1;         

}else{ // Wenn Obiges nicht zutraf

     $var9 = mysql_real_escape_string($_GET['param3']);     
}

$var10 = array(); 

if(($var9 - $var6) < 1){ $var13 = $var9 - 1;  }else { $var13 = $var6; }

if(($var9 + $var6) > $var8){ $var11 = $var8 - $var9; }else{ $var11 = $var6; }

$var12 = ($var9 - $var13); 

if ($var9- $var13 > 1){ 
     $var14 = 1;
        $var15 = "<a href=\"$var3?param3=$var14&param2=$var2&param1=$var1";
                            if(isset($_GET['param4'])) $var15 .= "&param4=".$_GET["param4"];
                            if(isset($_GET['param5'])) $var15 .= "&param5";
                            elseif(isset($_GET['param6'])) $var15 .= "&param6";
        $var15=$var15."\" title=\"Erste Seite\">&laquo; 1</a>\n";
        $var10[] = $var15;
}


if($var9 != 1){ 
     $var6rev = $var9-1;
     $var15 = "<a href=\".$var3?param3=$var6rev&param2=$var2&param1=$var1";
                            if(isset($_GET['param4'])) $var15 .= "&param4=".$_GET["param4"];
                            if(isset($_GET['param5'])) $var15 .= "&param5";
                            elseif(isset($_GET['param6'])) $var15 .="&param6";
     $var15=$var15."\" title=\"Zur&uuml;ck\"><font class=\"no_bg\"> &laquo;&laquo;</font></a>\n";
     $var10[] = $var15;
}

for($i = $var12; $i <= ($var9 + $var11); $i++){ 

    if ($i != $var9){  

         $var15 = "<a href=\"$var3?param3=$i&param2=$var2&param1=$var1";
                            if(isset($_GET['param4'])) $var15 .= "&param4=".$_GET["param4"];
                            if(isset($_GET['param5'])) $var15 .= "&param5";
                            elseif(isset($_GET['param6'])) $var15 .= "&param6";
         $var15 .= "\" >$i</a>\n";
         $var10[] = $var15;

    }elseif($i == $var8) { 

         $var10[] = "<span class=\"current\"> $i </span>\n";

    }elseif($i == $var9){ 

         $var10[] = "<span class=\"current\"> $i </span>\n";

    } // close if $i
}

if($var9 != $var8){ 
     $var16 = $var9+1;
/*     $var15 = "<a href=\"$var3?param3=$var16&param2=$var2&param1=$var1";
                            if(isset($_GET['param4'])) $var15 .= "&param4=".$_GET["param4"];
                            if(isset($_GET['param5'])) $var15 .= "&param5";
                            elseif(isset($_GET['param6'])) $var15 .="&param6";*/
     $var15 = "<a href=\"$var3/$var16/$var2/$var1";
                            if(isset($_GET['param4'])) $var15 .= "_".$_GET["param4"];
                            if(isset($_GET['param5'])) $var15 .= "_asc";
                            elseif(isset($_GET['param6'])) $var15 .="_desc";
     $var15 .= ".html\" title=\"Vor\"><font class=\"no_bg\"> &raquo;&raquo;</font></a> \n";
     $var10[] = $var15;
}

if($var8 - $var9 - $var6 > 0 ){ 
     $last = $var8;
     $var15 ="<a href=\"$var3?param3=$last&param2=$var2&param1=$var1";
                            if(isset($_GET['param4'])) $var15 .= "&param4=".$_GET["param4"];
                            if(isset($_GET['param5'])) $var15 .= "&param5";
                            elseif(isset($_GET['param6'])) $var15 .= "&param6";
     $var15 .= "\" title=\"Letzte Seite\">$var8 &raquo;</a>\n";
     $var10[] = $var15;
}

$var17 = ($var9-1) * $var5;        
$var15 = implode(" ", $var10); 

}}
?>
 
Zuletzt bearbeitet:

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

WoW...das ging ja schnell...ich bin ma testen...und gebe dann bescheid...!
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Eine blöde Frage hätte ich noch...wie soll ich damit umgehen???
PHP:
//    unterseite/param3/param2/param1_param4_asc.html 
// $_GET['param1']  =>  param1_param4_asc 
// $params[0] = param1 
// $params[1] = param4 
// $params[2] = asc 
// 
//    unterseite/param3/param2/param1_asc.html 
// $_GET['param1']  =>  param1_asc 
// $params[0] = param1 
// $params[1] = asc 
// $params[2] =  
// 
//    unterseite/param3/param2/param1.html 
// $_GET['param1']  =>  param1_asc 
// $params[0] = param1 
// $params[1] =  
// $params[2] =  
//

Dient das für mich als Informationshinweis(e) und kann dies als Komentar weiterhin so bestehen bleiben???
oder muss ich hier auch noch was anpassen???
 

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Das ist für dein (und auch mein) Verständniss wie die Eingabe ans Script übergeben wird, ändern musst du aber trotzdem was, nämlich alle anderen Links so wie ich es bei dem einen gemacht habe und ganz oben noch was mit asc / desc passiert, das habe ich nämlich nicht ganz herausbekommen wie du das machst...
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Das ist für dein (und auch mein) Verständniss wie die Eingabe ans Script übergeben wird
Das dacht ich mir schon...aber man will sich ja sicher gehen...

Das ist meine Blätterfunktion
PHP:
E D I T : 16.12.11 
Sorry, aber irgendwie komm ich mir a bissl verarscht vor...Deswegen nehme ich meinen Code hier wieder raus...Is mir eh nicht ganz Geheuer...
 
Zuletzt bearbeitet:

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Dann sollte es so am einfachsten gehen:

PHP:
if(isset($_GET['param1'])){
	$params = explode("_", $_GET['param1']);
	$param1 = $params[0];
	if($params[1] != "" && $params[1] != "asc" && $params[1] != "desc"){
		$param4 = $params[1];
	}
	
	if($params[1] == "asc" || $params[2] == "asc"){
		$order = "asc";
	} else {
		$order = "desc";
	}
}


PHP:
if(isset($_GET['sortieren']))
				 {
						 //Datens�tze entsprechend sortierenieren
						 if($param4 == 'Brand')
						 $abfrage.=" ORDER BY Brand $order";
						 elseif($param4 == 'Title')
						 $abfrage.=" ORDER BY Title $order";
						 elseif($param4 == 'Price')
						 $abfrage.=" ORDER BY Price $order";
				 }
$ .= ' LIMIT ' . intval($start) . ',' .
intval($datensaetze_pro_seite);


//echo $abfrage;
$db_erg = mysql_query($abfrage);
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

So, jetzt hab ich alles komplett so drinnen...

1. die Seite wird bei der Eröffnung einwandfrei dargestellt.
2. beim Klick auf "eine Seite weiter Blättern" nimmt die URL die gewünschte Form an.
3. Probleme gibt's jetzt nur noch mit der sortier- und Blätterfunktion, und zwar:

- Klick ich die Sortier- oder auch Blätterfunktion an gelange ich auf eine leere Seite mit dem Hinweis, dass die folgende Seite nicht gefunden werden kann.

...das liegt an der URL bei der die Domain nicht übermittelt wird und wie folgt aussieht:
Code:
unterseite/param/param.html
...und nicht wie gesollt:
Code:
DOMAIN.de/unterseite/param/param.html
ich werde mal zum test an
PHP:
$pfad = $path_parts['dirname']."/
DOMAIN.DE vorne ranfügen...

E D I T(1)
o. K...Domain einfach vorne ranhängen is nicht richtig gewesen...
=> Deswegen hab ich die Domain jetzt einfach an den Link vorne gesetzt und beim weiterblättern zur nächsten Seite bekomme ich keine leere Seite mehr angezeigt sondern ein volle aber mit dem selben Inhalt der ersten Seite. Und fehlt ein Parameter, so entstehen zwei Slashes in der URL...

E D I T(2)
Ich werde das ganze jetzt noch mal durcharbeiten...und gebe dann nochmal bescheid...
 
Zuletzt bearbeitet:

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

YO...Also ich habe das Skript jetzt ein zweites Mal durchgearbeitet...

irgendwas stimmt mit der Pfadangabe, der Sortier- und Blätterfunktion nicht und versuche schon die ganze Zeit rauszubekommen woran es liegen könnte. Könnte es an der .htacces liegen???

Dieser Eintrag ist aktuell folgender in meiner .htaccess:
Code:
RewriteRule ^unterseite/(.*)$ /unterseite.html?query=$1 [QSA,L]

Beim Aufschlagen der Seite wird alles perfekt angezeigt. Aber beim Blättern oder Sortieren kommt man dann auf ein leere Seite mit folgender URL:
Code:
http://unterseite/param//2.html
Der Browser meldet, dass die Seite nicht gefunden werden konnte. Ein Error kommt hier nicht zustande.
Ich versuche das jetzt seit Stunden zu knacken...aber keine Chance...:':)motz::'(

E D I T
Also all meine Versuche mit der .htaccess sind mir misslungen... Ich mach jetzt Pause...i kann nimmer...
 
Zuletzt bearbeitet:

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Ich glaube fast es liegt an den //, da fehlt ein Wert, evtl. müsstest du beim zusammensetzen der URL darauf achten, ob die Variable gesetzt ist und nur dann auch einen / davor machen.

Ich gehe mal davon aus, dass du die htaccess und dein Script aufeinander abgestimmt hast, denn so wie der Code vorhin war wurden drei Variablen übergeben, jetzt nur noch eine.

Wenn du im Script
$_GET['param1']
$_GET['param2']
$_GET['param3']
erwartest sollte die RewriteRule so aussehen:

RewriteRule ^unterseite/(.*)/(.*)/(.*).html$ /unterseite.html?param3=$1&param2=$2&param1=$3
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Ich glaube fast es liegt an den //, da fehlt ein Wert, evtl. müsstest du beim zusammensetzen der URL darauf achten, ob die Variable gesetzt ist und nur dann auch einen / davor machen.
...mittels => wenn var1=leer dann var2=leer erledigt...Also den // hab ich jetzt weg, wenn ein Param nicht gegeben ist...hip-hip-hooray...

Aber die Domain fehlt nach wie vor...Also so schaut's immer noch nach betätigen der Sortier- oder Blätterfunktion aus:motz:
Code:
http://unterseite/param/param.html

Und noch mal ne blöde Frage zur .htaccess...:rot:
Wenn du im Script
$_GET['param1']
$_GET['param2']
$_GET['param3']
erwartest sollte die RewriteRule so aussehen:

RewriteRule ^unterseite/(.*)/(.*)/(.*).html$ /unterseite.html?param3=$1&param2=$2&param1=$3
...spielt die Reihenfolge der Params eine Rolle??? Und bei dem Dollarzeichen handelt es sich nicht um eine Var sondern um ein Endezeichen??? Also die Ziffern nach dem Dollarzeichen bleiben so bestehen und da haben die Vars aus dem PHP-Skript nichts zu suchen...stimmt's?!?
 
Zuletzt bearbeitet:

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

So, ein ganz schneller noch, weil ich gleich zur Arbeit muss...

Die Reihenfolge in der htaccess ist schon wichtig, sonst kommt dein Script durcheinander.

RewriteRule ^unterseite/(.*)/(.*)/(.*).html$ /unterseite.html?param3=$1&param2=$2&param1=$3
(.*) ist immer eine Variable, $1, $2, $3 sind die Entsprechungen dafür (da wird hochgezählt). Also was bei unterseite/(.*)/ steht ist $1 und wird dann in param3 gespeichert.

Was mir gerade noch auffällt ist, dass wenn eine Variable fehlt die ganze Rule nicht mehr greift... Da müsste man sich noch was überlegen.

Bis später...
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Coole Sache...dann bis später und ich rühr jetzt erst mal nichts mehr an...hab die ganze Nacht durchprobiert. Darunter auch mit PathInfo rumexperimentiert...ganz schön nervenaufreibend oder eher gehirnaufreibend das ganze...:motz:
Ich wünsch Dir viel Spaß in der Arbeit...bis dann:)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben