php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-06-2007, 22:21
n00b_pro
 Newbie
Links : Onlinestatus : n00b_pro ist offline
Registriert seit: Jun 2007
Beiträge: 20
n00b_pro ist zur Zeit noch ein unbeschriebenes Blatt
Standard php parameter in url

hi leute.

eigentlich gehört die frage wohl eher in den anfänger-bereich, aber das ganze is bei mir ziemlich verschachtelt und ich weiß net wo ich da anfangen soll zu suchen.

bin generell eher eine laie in php-sachen, d.h. ich benötige eure hilfe.
nun zu meinem problem:

ich möchte eine homepage basteln und habe ein schönes design mit joomla eingebunden und es funktioniert soweit auch alles. das teil an sich ist eigentlich eher komplex, einiges an ajax drin, viel effektehascherei und dementsprechend auch ein relativ komplexer code.

nun, ich habe 2 designs die sich farblich unterscheiden, nennen wir das eine design1 und das andere design2.
diese kann ich in der index.php über folgende zuordnung verändern:

"design" => "design1"

wenn hier statt design1 irgendein quatsch steht geht er in eine andere datei und holt sich dort die default werte raus. so. das ganze wird mit einigen anderen einstellungen, die man auf diese weise relativ einfach verändern kann, in einem array gespeichert (settings).

später wird das ganze über folgenden ausdruck aufgerufen:

<?php if($settings->get('design') != "default") { ?>

nun war meine idee, dass ich den benutzer zwischen beiden designs wählen lasse. habe also zwei buttons erstellt die je einen link beinhalten.
die url könnte dann so z.b. lauten:

www.blabla.de/index.php?design=design1
und für den andren button dann hinten ?design=design2


ich habe jetzt schon einige stunden mit get-varianten usw rumgespielt, aber ich komme auf keinen vernünftigen nenner.

kann mir bitte jemand mal verraten wie ich ohne große umstände das einlesen variabel gestalte und über die url verändern kann?

DANKE für jede hilfe!!!!!!!!!!!!!!!!!!!!!!!
Mit Zitat antworten
  #2 (permalink)  
Alt 22-06-2007, 22:25
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: php parameter in url

Zitat:
Original geschrieben von n00b_pro
ich habe jetzt schon einige stunden mit get-varianten usw rumgespielt, aber ich komme auf keinen vernünftigen nenner.
was hast du denn versucht und wo ist dein problem?
Mit Zitat antworten
  #3 (permalink)  
Alt 22-06-2007, 22:35
n00b_pro
 Newbie
Links : Onlinestatus : n00b_pro ist offline
Registriert seit: Jun 2007
Beiträge: 20
n00b_pro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nunja ich weiß nicht wo ich anfangen soll und wie ich die url abfragen kann.
im endeffekt fehlen mir die grundkenntnisse

außerdem weiß ich nicht wie ich nur einen wert in dem array verändern kann..


also am einfachsten wäre wohl wenn ich die abfrage oben bei der zuordnung reinmachen könnte, d.h. "design" => hole aus url

nunja und da steh ich im endeffekt.
mit $_get hatte ich keinen erfolg bzw. ich hab denkfehler reingemacht.

wie würde denn der korrekte befehl heißen?

kann ich $_get['d'] reinschreiben und d über die url vergeben?`so hatte ich es mir gedacht, hat aber nicht funkioniert.
Mit Zitat antworten
  #4 (permalink)  
Alt 22-06-2007, 22:41
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von n00b_pro
kann ich $_get['d'] reinschreiben und d über die url vergeben?`so hatte ich es mir gedacht, hat aber nicht funkioniert.
sollte grundsätzlich funktionieren, mit "kleinen" änderungen.

das array nennt sich $_GET - großgeschrieben
und der parameter ist laut deinem eingangsposting 'design' und nicht 'd'
Mit Zitat antworten
  #5 (permalink)  
Alt 22-06-2007, 22:52
n00b_pro
 Newbie
Links : Onlinestatus : n00b_pro ist offline
Registriert seit: Jun 2007
Beiträge: 20
n00b_pro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

lol ich glaubs net.. hab net gewusst dass das case sensitive is, LOL...

das ging einwandfrei, mann o mann.. unglaublich sowas.

DANKE!!! sehr schön, wer weiß wie lang ich da noch dran rumgemacht hätte.. mann o mann
Mit Zitat antworten
  #6 (permalink)  
Alt 22-06-2007, 23:18
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

error_reporting(E_ALL); hätte dich aber auch auf den fehler aufmerksam gemacht.
Mit Zitat antworten
  #7 (permalink)  
Alt 23-06-2007, 11:32
n00b_pro
 Newbie
Links : Onlinestatus : n00b_pro ist offline
Registriert seit: Jun 2007
Beiträge: 20
n00b_pro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hm jetzt seh ich grad dass ich das nächste problem habe. weiß aber nicht ob ich hier richtig bin oder nicht eher in nem joomla-forum suchen sollte.

naja ich versuchs trotzdem erstmal hier.


also die seite mit der ich den link aufrufe erscheint unter dem entsprechenenden design, allerdings wenn ich dann ne andre seite aufrufe merkt er sich net was ich eingestellt hatte sondern springt zum standard zurück.

wie kann ich das ganze an die nächste seite übergeben?

€ ich glaube folgendes in der ersten index.php von joomla is die richtige stelle:

if ($option == '') {
if ($Itemid) {
$query = "SELECT id, link"
. "\n FROM #__menu"
. "\n WHERE menutype = 'mainmenu'"
. "\n AND id = " . (int) $Itemid
. "\n AND published = 1"
;
$database->setQuery( $query );
} else {
$query = "SELECT id, link"
. "\n FROM #__menu"
. "\n WHERE menutype = 'mainmenu'"
. "\n AND published = 1"
. "\n ORDER BY parent, ordering"
;
$database->setQuery( $query, 0, 1 );
}
$menu = new mosMenu( $database );
if ($database->loadObject( $menu )) {
$Itemid = $menu->id;
}
$link = $menu->link;
if (($pos = strpos( $link, '?' )) !== false) {
$link = substr( $link, $pos+1 ). '&Itemid='.$Itemid;
}
parse_str( $link, $temp );
/** this is a patch, need to rework when globals are handled better */
foreach ($temp as $k=>$v) {
$GLOBALS[$k] = $v;
$_REQUEST[$k] = $v;
if ($k == 'option') {
$option = $v;
}
}
}


ab dem $link habe ich das ganze mal genommen und mit design durchgespielt, funktioniert aber nicht so wirklich.
der muss sichs ja vorher irgendwie aus der url rauslesen...

und nochmal €
das problem könnte auch in der index.php des designs liegen. da steht (nachdem ich design mit GET geholt hab:

<?php if($settings->get('design') != "default") { ?>

<link href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $cur_template; ?>/css/<?php echo $settings->get('design'); ?>/<?php echo $settings->get('design'); ?>-template_css.css" rel="stylesheet" type="text/css" />


weil ich im normalen css-ordner die dateien fürs design1 liegen hab, in dem unterordner /design2/ die css für das andre...


meine vermutung:

bei der zuweisung oben weißt er "design" ja was zu, und zwar entweder das was ich oben bei get über die url hole, oder eben das default-design.

so, wenn ich jetzt zu ner andren seite wechsele dann steht ja oben nix mehr mit design in der url, d.h. er holt sich den default-wert!
es sollte aber so sein dass er das andre behält BIS wieder ein color-parameter in der url auftaucht...

Geändert von n00b_pro (23-06-2007 um 12:37 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 23-06-2007, 13:46
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Joomla-Forum.

Benutzt mal die PHP-Tags des Forums!

Das mit der Case-Sensitivität hängt von deinem Betriebssystem ab.
UNIX / Linux -> Ja
Windoofs -> Nein
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #9 (permalink)  
Alt 23-06-2007, 17:38
n00b_pro
 Newbie
Links : Onlinestatus : n00b_pro ist offline
Registriert seit: Jun 2007
Beiträge: 20
n00b_pro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hm also nach langem überlegen geh ich stark davon aus dass es kein joomla-problem ist. ich erklär euch warum:


prinzipiell hängt das ding ja an folgendem:
über folgenden schritt holt er sich den paramter über die url:
"design" => $_GET['design']

und damit spricht er die css-dateien an:

<?php if($settings->get('design') != "default") { ?>

<link href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $cur_template; ?>/css/<?php echo $ytSettings->get('design'); ?>/<?php echo $ytSettings->get('design'); ?>-template_css.css" rel="stylesheet" type="text/css" />


d.h. wenn oben was in der url steht (und es was andres als default, also design1, ist), dann geht er in den ordner /design2/ udn sucht sich dort seine templates.
das ganze an sich funktioniert auch, aber wie gesagt nur soweit bis ich auch alle weiteren seiten mit dem design haben will.

ich habe auch jetzt keine idee über welche abfrage ich das sinnvoll machen könnte.

also z.b. "wenn kein parameter in url, nimm den vorher ausgewählten"

hat jemand ne idee wie ich das am einfachsten bzw. überhaupt umsetzen kann? dass er immer danach sucht ob was in der url drin is, udn ansonsten nen default-wert nimmt hab ich ja, aber das ganze müsste sozusagen so abgeändert werden, dass wenn nix in der url is, er auf den zuvor ausgewählten parameter geht (der dann design1 wäre, weil ich den bei der weiterleitung der page drin hab)
Mit Zitat antworten
  #10 (permalink)  
Alt 23-06-2007, 18:44
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Zitat:
also z.b. "wenn kein parameter in url, nimm den vorher ausgewählten"
Geht ja nicht, er weiß ja den von davor nichmehr.

Machs so:
1. Wenn ein Design gesetzt wurde, speichere es vor dem Design-Switch in die Session.
2. Lese das aktuelle Design aus der Session aus.

Damit hast du immer das letzte gespeichert, und es ändert sich nur wenn es in der URL übergeben wurde.
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #11 (permalink)  
Alt 23-06-2007, 18:53
n00b_pro
 Newbie
Links : Onlinestatus : n00b_pro ist offline
Registriert seit: Jun 2007
Beiträge: 20
n00b_pro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja dass da der fehler sitzt weiß ich, nur wie er zu beheben ist..

nungut, aber wie speichere ich das ding in ne session und wie hol ichs da wieder raus?

da hab ich mir was eingefangen


€ wart mal, ich hab danach gegoogelt. werd das jetzt erstmal testen mit den anhaltspunkten, wenn ich dann wieder ein problem habe und der schuh drückt schreibe ich wieder was net geht

da meckert er rum:

<?php
session_start();

$_SESSION['s_design'] = 'design';
session_register("design");
?>


<?php if($settings->get('s_design'){ ?>


hat die zuordnung von $_SESSION nen fehler? muss das hintere design mit $ geschrieben werden? klappt irgendwie alles net so... und unten will ers net einlesen über den get-befehl, in der zeile meckert er rum.

Geändert von n00b_pro (23-06-2007 um 19:19 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 23-06-2007, 19:45
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

session_register() nicht mehr verwenden!

Eigentlich brauchst du nur die Session zu starten (session_start() ), und dann kannst du einfach das superglobale Array $_SESSION benutzen. Das Wort "design" darin abzuspeichern ist aber vielleicht nicht so sinnvoll, eher welches design denn nun ausgewählt wurde

Zum Thema Sessions:http://tut.php-q.net/sessions.html
__________________
ich glaube
Mit Zitat antworten
  #13 (permalink)  
Alt 23-06-2007, 19:54
n00b_pro
 Newbie
Links : Onlinestatus : n00b_pro ist offline
Registriert seit: Jun 2007
Beiträge: 20
n00b_pro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

habe jetzt folgendes, aber funktioniert imme rnoch nicht:

<?php
session_start();

if ('design' == 'design2') {$_SESSION['s_design'] = 'design2';}
else {$_SESSION['s_design'] = 'design1';}
?>


<?php if($settings->get($_SESSION['s_design']) != "design1" ){ ?>

<link href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $cur_template; ?>/css/design2/design2-template_css.css" rel="stylesheet" type="text/css" />

<?php } else {?>

<link href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $cur_template; ?>/css/template_css.css" rel="stylesheet" type="text/css" />

<?php } ?>


ich dachte es mir folgendermaßen: er soll überprüfen ob design = design2, wenn ja soll er das in die variable reinschreiben, ansonsten design1.
dann holt er sich das design, solange es nicht design1 ist und geht in den design2-ordner. falls es design1 ist geht er in den übergeordneten rein..

blöderweise kann ich nun design1 nicht mehr ansprechen...


€ muss ich die session direkt am anfang von der index.php starten? weil momentan hab ich das auslesen aus der url ja obendrüber schon gemacht..
und ich hab noch ein problem mit dem momentanen. bei den buttons geht der mouse-over-effekt net mehr weg, also da stimmt auch irgendwas noch net.. oh mann, so ne kacke


----------------------

hoffentlich liest sich das überhaupt noch einer durhc

<?php
if ('design' == 'design1') {$_SESSION['design'] = 'design1';}
else {$_SESSION['design'] = 'design2';}
?>

<?php if($settings->get($_SESSION['design']) != "default" ){ ?>

<link href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $cur_template; ?>/css/black/black-template_css.css" rel="stylesheet" type="text/css" />

<?php } ?>


so habe ich es nun, nachdem ich wieder dran rumgebastelt habe.
bin aber eigentlich auf dem stand wie gestern, das lässt sich zwar switchen über die buttons, aber wird nicht beibehalten für alle weiteren seiten

Geändert von n00b_pro (23-06-2007 um 20:32 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 23-06-2007, 20:32
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

PHP-Code:
 if ('design' == 'design2'
Ist ungefähr sowas wie
PHP-Code:
if (== 2
Verwende endlich die PHP-Tags! Die gibts nicht zum Spaß!
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #15 (permalink)  
Alt 23-06-2007, 20:39
n00b_pro
 Newbie
Links : Onlinestatus : n00b_pro ist offline
Registriert seit: Jun 2007
Beiträge: 20
n00b_pro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja ne.. ich dacht mir das so:

design weise ich ja obendrüber nen wert aus der url zu, und da will ich nur abfragen ob dieser wert design2 ist...


wie muss ichs sonst schreiben?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:11 Uhr.