Header durch einen Wert bestimmen?

Hallo!

Wieder mal eine Frage:

Gibt es eine Möglichkeit, durch einen Wert abgelegt und veränderbar in der Datenbank, den Header zu bestimmen?
In etwa so:

_if($_GET[‚Wert‘]==‚Header1‘) {

include(‚header1.php‘);’;

if($_GET[‚Wert‘]==‚Header2‘) {

include(‚header2.php‘);’;

?>_

???

Schönen Gruß und vielen Dank im voraus
Mike

klar…
aber ich frag mich an der Stelle: Warum probierst Du es nicht einfach aus? :wink:

Und ausserdem ist für mich nicht ganz klar was Du mit dem Header meinst.
Meinst Du (was ich vermute, dass Du meinst) den
… Bereich im html code

oder meinst Du sowas:
header(„Location: blabla“);

Hallo!

Ich habe schon verschiedenenes probiert, auch:
_<?php $sql= „SELECT * FROM ORDNER WHERE id=’“.$_GET[‚id‘]."’";
$result= mysql_query($sql);

if (mysql_result($result,0,‚WERT‘)=‚1‘) include(‚header1.php‘);’;
if (mysql_result($result,0,‚WERT‘)=‚2‘) include(‚header2.php‘);’;

?>_

Der haut mir aber immer eine Fehlermeldung raus - und ich weiß nicht,
wo sein Problem ist:

Parse error: syntax error, unexpected ‚=‘ in …
In der Datei header1.php wäre der : … -Bereich und der erste Teil im variierenden Body-Bereich.

Besser würde mir diese Lösung gefallen(auch schon probiert):

_if($_GET[‚WERT‘]==‚Header1‘) {

print’Title für Header 1

}

if($_GET[‚WERT‘]==‚Header2‘) {

print’Title für Header 2

}

if($_GET[‚WERT‘]==’’) {

print’Title für Header ohne Wert

}

?>_

Und schon wieder ein Fehler:

Parse error: syntax error, unexpected T_STRING in…

Ich weiß nicht, was ich falsch mache :-/

du scheinst nicht viel in php zu arbeiten oder ?

der fehler den du da hast sagt aus das was in deinem quellcode nicht stimmt.

was ich jetzt auf anhieb sehe ist :

print’Title für Header 1

da fehlt das ende vom print fehlt …
und benutze besser anstatt print echo

echo (‚Title für Header 1‘);

dann sollte es eigentlich klappen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hat leider nicht funktioniert. Obwohl ich echo eingesetzt habe.
Ich bin im php-Bereich noch blutiger Anfänger.
:smile:
Ich schaue mir Codes an und versuche, diese dann umzusetzen.
Gar nicht so einfach dieses gute php.

Dieses Problem mit dem Header lege ich vorerst hinten ab.
Schöne Grüße
Mike

Hallo Mike,

if (mysql_result($result,0,‚WERT‘) =‚1‘)
Parse error: syntax error, unexpected ‚=‘ in …

Du meinst wahrscheinlich == (Vergleich), nicht = (Zuweisung) - Du kannst nicht so einer Funktion einen Wert zuweisen.

if (mysql_result($result,0,‚WERT‘) =‚2‘)

idem

Besser würde mir diese Lösung gefallen(auch schon probiert):

Das schließende ’ fehlte. Aber das kannst Du auch so machen:

<?php if($_GET['WERT']=='Header1') { ?>Title für Header 1<?php } elseif($_GET['WERT']=='Header2') { ?>Title für Header 2<?php } elseif ($_GET['WERT'] == '') { ?>Title für Header ohne Wert<?php } ?>

Bye,
Rudy

Hallo Rudy!
Ich habe Deine Vorlage übernommen und angepasst.

In dieser Form weist der Header aber bei jedem Wert
den „Header ohne Wert“

Title für Header ohne Wert etc aus

Wenn ich die == durch = austausche:

<?php if($_GET['WERT']=='Header1') { ?><?php if($_GET['WERT']='Header1') { ?>

dann bekomme ich bei jedem Wert den Header 1

Mit dem Befehl
$sql= „SELECT * FROM ordner WHERE id=’“.$_GET[‚Form‘]."’";
bekomme ich doch alle Daten zu dem Wert ‚Form‘ , also auch
Header1, oder??

Schönen Gruß
Mike

Hi Mike,

Ich habe Deine Vorlage übernommen und angepasst.

War ein Beispiel, keine Vorlage ^^

In dieser Form weist der Header aber bei jedem Wert
den „Header ohne Wert“

Du rufst aber schon die Seite mit seite.php?WERT=Header1 bzw. seite.php?WERT=Header2 auf, oder? Fehler sehe ich da nämlich keinen. Wenn Du das Skript ohne den Get-Parameter ‚WERT‘ aufrufst ist $_GET[‚WERT‘] ja immer leer und Du bekommst

Title für Header ohne Wert etc

.

Wenn ich die == durch = austausche:

Was falsch ist!

<?php if($_GET['WERT']=='Header1') { ?>
<?php if($_GET['WERT']='Header1') { ?>

dann bekomme ich bei jedem Wert den Header 1

So schreibst Du ja auch ‚Header1‘ in $_GET[‚WERT‘] und bekommst true, weil Die Zuweisung ok war und kommst in den 1. Zweig. == ist in dem Fall schon richtig, Du willst ja vergleichen :smile:

Mit dem Befehl
$sql= „SELECT * FROM ordner WHERE
id=’“.$_GET[‚Form‘]."’";
bekomme ich doch alle Daten zu dem Wert ‚Form‘ , also auch
Header1, oder??

Du selektierst damit einen Datensatz aus der Tabelle ‚ordner‘, wo die Id (ich nehme an, das ist der Primärschlüssel) den Wert von $_GET[‚Form‘], also z.B. seite.php?Form=1 hat. Ich würde aber doch den Select auf die Felder eingrenzen, die Du brauchst: $sql=„SELECT wert FROM ordner WHERE id=’“.$_GET[‚Form‘]."’";
$_GET[‚Form‘] muss auch geprüft werden, da kann man ja sonst alles mögliche über die URL übergeben :smile:

Ciao,
Rudy

Hallo Rudy!

Du rufst aber schon die Seite mit seite.php?WERT=Header1 bzw.
seite.php?WERT=Header2 auf, oder? Fehler sehe ich da nämlich
keinen. Wenn Du das Skript ohne den Get-Parameter ‚WERT‘
aufrufst ist $_GET[‚WERT‘] ja immer leer und Du bekommst

Title für Header ohne Wert etc

Ich rufe die Seite nicht mit diesem Wert in der Adresszeile auf,
sondern dieser Wert ist zugehörend zu dieser ID

www.internetseite.de/artikel.php?id=58

Beispiel:
ID 58 besitzt im Formular diverse Felder. Wenn Feld x Wert 1 ausgibt
soll Header 1 greifen
ID 59 besitzt im Feld x den Wert 2 und soll auf Header 2 greifen
ID 122 soll beispielsweise den Header 2 besitzen. Also würde ich den
Wert x auf 2 setzen.

Die Seiten werden aber immer mit …artikel.php?id=58 etc. aufgerufen
Der wert ist also nicht im Browser, sondern in der Datenbank.

:smile: Ich hoffe, meine Erklärung hilft weiter - weil ich nicht weiß,
wie php im Detail funktioniert.
Die Grundzüge lerne ich gerade. Datenbank und Formulare erweitern klappt schon :smile:)

Schönen Gruß
Mike

Hi Mike,

Ich rufe die Seite nicht mit diesem Wert in der Adresszeile
auf, sondern dieser Wert ist zugehörend zu dieser ID
www.internetseite.de/artikel.php?id=58

ok, jetzt kommen wir der Sache näher. Leider hast Du mir nicht gesagt, wie das Feld in ‚ordner‘ heißt, aber ich nehme mal ‚x‘ ^^ Wenn Du so viele Artikel hast, wäre es ratsam, entweder die Titel und die Texte gleich in der Datenbank zu speichern, oder sie in verschiedenen Dateien abzulegen, die Du fortlaufend nummerierst, z.B. entsprechend der ‚id‘.

<?php $id = (int)$_GET['id'];
//sicherstellen, dass $id ein Integer ist, gibt auch andere Möglichkeiten if ($id //Die Artikel beginnen ab id=1 ... (Verbindung zur db aufbauen, etc) $res = mysql\_query('SELECT x FROM ordner WHERE id='.$id) or die(mysql\_error()); //Feld x aus Tabelle selektieren, Abbruch bei Fehler if (!mysql\_num\_rows($res)) die("Der Artikel $id existiert nicht"); //keine Datenzeilen bekommen, Artikel ist nicht vorhanden $x = mysql\_result($res, 0, 0); //Feld x aus resultset lesen, $x ist nun die Nummer der header-datei require 'header\_'.$x.'.php'; //header\_x.php einbinden, Abbruch falls Datei nicht vorhanden ... (Verbindung zur db trennen) ?\> Schönen Gruß, Rudy

Hallo Rudy!

Vielen Dank für den Tip mit der Abspeichern in der Datenbank.
Da hätte ich fast selbst draufkommen müssen. Ich war aber so im Basteleifer. Klappt wunderbar und ist in dem Fall wohl das einfachste.
Manchmal bin ich wohl etwas kompliziert. :smile:

Vielen Dank und schönen Gruß
Mike