• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Variabeln "anhängen" an Bestehende

Status
Für weitere Antworten geschlossen.

Doktor

Neues Mitglied
Hi, ich bin gerade dabei mich mit PHP zu beschäftigen. Erst einmal will ich je nach Homepage Seite eine andere Datei includen als Content. Das hab ich durch den switch Befehl auch schon geschafft. Die Adresse lautet dann z.B:
Index.php?site=media
Funktioniert soweit alles. Innerhalb dieses Includes befinden sich noch einmal eine Include Funktion.
d.h.: Man kann bei der Seite Media verschiedenen Songtexte auswählen aus einer Liste. Je nachdem welchen Songtext man drückt wird eine andere variable übergeben: z.B text=song1
Die beiden Variabeln kann man mit & verknüpfen also Index.php?site=media&text=song1
Das war jetzt nur ein beispiel. Meine Frage ist jetzt:
1.) Wie kann ich automatisch eine Variable mit & an eine Bestehende anbinden. Also es ist schwer zu beschreiben, aber er soll die bestehende variable (z.B site=media) auslesen und beibehalten und einfach eine 2. mit & dranhängen (z.B text=song1). Also nicht die 1. Variable dann "überschreiben" , so das die Adresse dann lautet: Index.php?text=song 1 ohne site=media.
Das Problem hierbei ist, dass die 1. Variable nicht nur site=media heissen muss, sondern es können auch mehrere Variablen sein. Dann sollte automatisch die bestehenden Variabeln beibehalten werden und die neue mit & drangehängt werden.

Ich bin mir nicht sicher, ob ihr das verstanden habt, aber ich weis nicht genau wie ich das beschreiben soll. Einfach fragen, ich erlärs gerne nochmal.
 
Das geht schwer, dass eine Seite per $_GET includet wird, ohne dass das include gestzt ist..
Ausser ich habs falsch verstanden.

Eine andere Möglichkeit wäre eine Session, also dass man die Seite in die Session schreibt und dann über den Sessionwert die Seite einfügt.

Nebenbei:
Wieso soll das site= weg? Stört doch keinen.



MfG, matibaski
 
PHP:
echo "<a href=\"http://deineseite.de?var1=".$var1."&var2=".$var2."\">text</a>;
$var1 kann dabei die alte und $var2 die neue Variabele sein.

Gruß Corvulus
 
Dann werd ich wohl was falsch verstanden haben...

MfG, matibaski

edit:
Gleichzeitig geschrieben xD
 
wenn ichs richtig verstanden habe, ist die idee, dass du den standort in der navi kennst und von dort aus arbeitest. sowas wie sitemap. also ich könnte mir gut vorstellen, dass du das mit einem array lösen kannst. wenn du mit session arbeitest machst du zb $_SESSION['position'] und baust da ein array rein.
 
kannst du dein vorhaben anhand eines praktischen beispiels oder codes nochmal erläutern, da nicht 100% klar ist was du genau möchtest.
 
wenn du ALLE aktiven variablen behalten willst kannst du auch

PHP:
$_SERVER['QUERY_STRING']

verwenden :)
 
K danke für die Antworten. Irgendwie komme ich grad auch nicht mehr mit. Ich erklärs dann mal an einem Beispiel. Ich habe lange nach einem beispiel gescuht und eines gefunden.
PINK'S NOT RED
Auf dieser Seite sieht man lyriks und videos. Wenn man auf einen Link klickt, dann öffnet sich in einer Spalte der Inhalt des Links: z.B wenn man bei videos auf "Ramona" klickt:
http: //www.pinksnotred.de/media.php?vid=ramona
So weit so gut. Wenn man aber erst unter lyriks auf z.B "one more day klickt" dann öffnet dann kommt man auf diese Seite: http: //www.pinksnotred.de/media.php?song=one_more_day
D.h jetzt ist wurde die variable: song= one_more... geladen und man sieht die lyriks von one more day. Wenn man während diese Variable geladen wurde, unter videos auf z.B Leibzig klickt, dann verschwindet die song variable wieder und nur die Variable vid=leibzig wird geladen. Genau das will ich verhindern.
D.h. wenn man sich auf http:// www. pinksnotred.de/media.php?song=one_more_day befindet und man unter videos dann auf leibzig geht, dann will ich das das im Browser steht:
"http:// www.pinksnotred.de/media.php?song=one_more_day&vid=leibzig" antsatt nur "http:// www.pinksnotred.de/media.php?song=one_more_day".

Als Beispiel benutze ich zum includen als Anfänger diesen Befehl:
Code:
" $site = $_GET['site'];

switch ($site)
{
    case 'home': include("home.php");
                        break;
    case 'aboutme': include("aboutme.php");
                        break;
    case 'contact': include("contact.php");
                        break;
    default: include("news.php");
}
Bei der Seite Pinks not red werden mehrere Include Befehle auf einer Seite benutzt:
Code:
 $site = $_GET['lyriks'];
 $site = $_GET['vid'];
 
switch ($lyriks)
{
    case '1': include("1.php");
                        break;
    case '2': include("2.php");
                        break;
    case '3': include("3.php");
                        break;
    default: include("4.php");
}
 $site = $_GET['vid'];

switch ($vid)
{
    case 'leibzig': include("leibzig.php");
                        break;
    case 'vid2': include("vid2.php");
                        break;
    default: include("vid3.php");
}
So stell ich mir das zumindest grob vor. So besser kann ich es nicht erklären.
Möglichweise waren eure Code Vorschläge auch schon richtig, aber ich als Anfänder weiß z.B nicht wo ich diese dann einfügen muss in diesem Code.

PS: Die Leerzeichen in den Links wegdenken, aber es ging nicht anders, da sie sonst als Links dargestellt werden
 
ich weiss nicht wie gut du php kannst, würde dir aber von deinem vorhaben abraten und lieber versuchen anhängigkeiten aufzubauen.

eine gute faustregel ist immer möglichst wenig an die url zu hängen, da man sich selber die macht nimmt, diese elemente zu kontrollieren.

warum liegt dir so viel daran die variable anzuhängen ? hat es optische oder technische gründe ? evtl kann man auch dein "*"design pattern"*" (nicht hauen, ich hab es schon in " geschrieben) anpassen.

Wtf sind Pattern :arrow: Entwurfsmuster - Wikipedia

Ich denke, dass wir dort ansetzen sollten.
grade am anfang neigt man dazu php zu missbrauchen und zu schänden, sowas muss nicht sein :)

Besten Gruß

// ich habe die frage mal markiert, da man sie sonst schnell überliest.
 
warum liegt dir so viel daran die variable anzuhängen ?
Mir ist auch klar, dass man keinen Bollen an die url hängen soll, aber eigentlich habe ich angefangen PHP zu lernen, damit man für Seiten mit mehreren Unterseiten nicht tausende (Achtung: Ironie ! :)) html/php Dateien braucht: z.B Home.php; News.php; Kontakt,php....ganz zu schweigen von Unterseiten der einzelnen Dateien. Am besten, so denke ich (verbessere mich wenn ich falsch liege), ist es wenn man möglichst nur eine PHP Datei hat (z.B Index.php) und dann für die einzelnen Unterseiten Variablen übergibt.
z.B Index.php?site=contact. Optisch ist es eigentlich eher weniger wichtig, wie viele unterschiedliche Dateien man benutzt.
Ich will PHP eigentlich nur lernen, damit ich wenigstens verschiedenen Dateien includen kann. An komplexere Sachen, wie Gästebuch schreiben oder ähnliches will ich mich gar nicht rantrauen, auch deswegen, da es für mich gar nicht notwendig ist.

Das aktuelle Problem ist: Im Moment versuche ich eine Homepage zu machen von einem Freund, der in einer Band spielt. Dort soll es natürlich auch eine Media Seite geben, die vom Inhalt genauso aussehen sollte wie die von pinksnotred. Also es gibt verschiedene Links von Lyriks oder Pics z.B und wenn man draufdrückt wird etwas anderes über Variabeln includet.
Natürlich kann ich es genauso umsetzen (mal schauen ob das überhaupt so klappt wie ich mir das vorstelle) wie die von pinksnot red, also das immer nur eine Variable übergeben wird(entweder lyriks oder videos), aber ich dachte mir halt: "Wird schon nicht so schwer sein, das man da einfach die Variablen "ausliest" und die neue hintendranhängt." Ohne PHP und Include Befehl dies umzusetzen, kann ich mir nicht richtig vorstellen.
Aber so wie sich das anhört ist es wohl doch nicht so einfach, also muss ich wohl es dann so umsetzen wie die von pinksnotred (max. 1 Variable).
Was du mit Abhängigkeiten aufbauen meinst versteh ich irgendwie nicht richtig.

Noch eine Frage zum Schluss:
Da ich auch Lyriks brauche, wollte ich fragen, ob man mit PHP auch .txt Dateien einlesen kann, in die ich dann gerade den Songtext schreibe.

Gruß

EDIT: PS: "WTF sind Pattern" -> danke für den Wikipedia link, aber ganz genau verstanden hab ich das nicht (Ich hab den ersten Abschnitt gelesen mit den Entwurfmustern). Wie soll denn das Entwurfmuster bei mir aussehen?
 
Hallo Doktor,

das mit den 2 Variablen ist kein Problem, ist auch nicht schwer.

PHP:
<?php

$site = $_GET['site'];
$lyrics = $_GET['site'];

// hier machst du was mit deinen Variablen
// includen und so ...
// wenn ein Link kommt, einfach so :
?>
<a href="index.php?site=<?=$site?>&lyrics=<?=$lyrics?>">Link</a>
Das würde jetzt nicht viel bringen, da du ja dann auf die gleiche Seite kommst wie eben schon, aber wenn du
<?=$site?> durch z.b. Kontakt ersetzt, kommst du auf die Seite Kontakt, und die Lyrics sind immer noch dran ( bringt dir im Kontakt warsch. net viel ;) )

PHP:
<?=$variable?>
ist das gleiche wie :
PHP:
<?php echo $variable; ?>
ist nur zum schnellen ausgebene von variablen.

mfg
 
PHP:
<?=$variable?>
ist das gleiche wie :
PHP:
<?php echo $variable; ?>
ist nur zum schnellen ausgebene von variablen.

Stimmt zwar, aber <? bzw <?= ist nur Systemabhängig verfübar, <?php ist eigentlich immer zu bevorzugen
 
Ah danke für den den Code.
Ich weiß nicht, ob ich fladch liege, aber müsste
Code:
[COLOR=#000000][COLOR=#0000bb]$lyrics [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'site'[/COLOR][COLOR=#007700]];[/COLOR][/COLOR]
nicht eher
Code:
[COLOR=#000000][COLOR=#0000bb]$lyrics [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'lyriks'[/COLOR][COLOR=#007700]];[/COLOR][/COLOR]
heißen?
Ich werde mich morgen darum kümmern und mein Glück versuchen, da ich heute Abend eine Zeit mehr habe

Nochmal ne Frage:Kann man mittels php auch .txt Dateien includen?
 
Zuletzt bearbeitet:
ja müsste natürlich lyriks heissen ;)

du kannst eine Datei mit fopen öffen und mit verschiedenen funktionen auslesen fgets - file get string, dan bekommst du Zeile für Zeile den inhalt, includen kannst du sie auch.
 
Du meinst wahrscheinlich soetwas?
Code:
        [COLOR=#000000] [COLOR=#0000bb]<?php
$handle [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fopen [/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"text/info.txt"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#dd0000]"r"[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000bb]?>[/COLOR][/COLOR]

Das hab ich jetzt mal gefunden, aber was muss ich für die variable handle eintragen?

EDIT: Ich hab gerade das probiert von
acimat und den verschiedenen Variabeln und es funktioniert wie ich es wollte. Danke
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben