Css-layout&probleme mit der navigation

hay,also,ich versuche jetzt ein layout nur über css zu machen und schon komme ich schnell auf ein problem: navigation&test

beim html konnte man noch das target attribut nehmn,doch bei xhtml geht das nicht.

gibts es eine lösung wie ich beim klick von den links im

den inhalt in nem andern
laden kann?

nein da musst du eine neue seite machen. sowas geht nur über frames oder du machst es über include bei php

Moin,

mit CSS und HTML an sich wird das relativ problematisch bzw. ist nahezu unmöglich - außer vielleicht mit Hilfe eines iFrames, aber das wollen wir ja nicht.

Die Lösung bietet PHP.
Und zwar folgendermaßen: Du überträgst per GET-Methode an die index.php Datei einen Wert.
Das geschieht, indem du an deinen Link, so etwas dranhängst wie: ?seite=gb

Im Prinzip stünde dann da: index.php?seite=gb

In der PHP Datei muss dann folgendes stehen (am besten ganz am Anfang):

<?php
   $seite = $_GET['seite'];
?>

Damit wird die Variable $seite eingelesen und der übergebene Wert gesetzt.
Nun prüft man mittels PHP, welchen Wert die Variable hat - das macht am besten an der Stelle, wo hinterher der andere Inhalt hinsoll.

<?php
switch($seite)
{
  case 'gb': $lade = 'gaestebuch.php';
  break;
  default: $lade = 'home.php';
}
if(file_exists($lade) && is_file($lade)) { include('$lade'); }
?>

Da passiert folgendes: Die Variable $seite wird auf ihren Inhalt hin überprüft.
Falls $seite den Wert gb hat, wird eine weitere Variable ($lade) gesetzt, die den Wert ‘gaestebuch.php’ annimmt. Anschliessend wird die Überprüfung per break; abgebrochen, da der Fall den wir wollen ja bereits eingetreten ist. Sollte mal der Wert mit keinem unserer Werte in der switch()-Anweisung übereinstimmen, greift automatisch der default-Wert (also $lade = ‘home.php’). Der default-Befehl muss am Ende der switch-Anweisung stehen.

Die zweite Variable sorgt für das eigentliche Laden. Eine If-Abfrage prüft noch der Sicherheit halber, ob eine solche Datei überhaupt existiert und ob es überhaupt ne Datei ist. Erst dann wird die Seite, deren Name in $lade steht per include()-Befehl in die Seite eingebunden.

Fertig.

Für Anfänger in PHP ist besonders schattenbaum.net empfehlenswert. Dort wirst du ganz langsam und verständlich an deine ersten PHP-Abfragen heran geführt.

MfG
myPages

also,habe ich das richtig verstanden,ich muss eine ****.php -datei erstellen.

man…ich blick immernoch nicht durch :ps:

meine navigation besteht aus 3 punkten: home | info | kontakt

kann mir jn. den code-kramm für mich mit meinen angaben übersetzn?

ich fange erst mit php an…

aber trotzdem thx an mypages&comjag

Ist ja eigentlich hier eher die (X)HTML-Rubrik, nicht PHP,
aber wenn du wirklich nur drei Dateien hat, kannst du das
auch einfacher machen.
Wenn die drei Dateien identische Teilbereiche enthalten,
lädst du diese Fragmente einfach jeweils hinzu.

Typisch ist etwa ein Menü, welches bei allen gleich ist.
Dann schreibst du einfach ein Dokument mit Namen
menu.php, welches nur das Dokumentfragment enthält, welches
das Menü repräsentiert und bei den Einzeldokumenten schreibst
du an die jeweilige Stelle eben nur:

<?php include('.menu.php') ?>

Entsprechend dann für andere identische Fragmente.
Verweisen tust du dann einfach auf die Einzeldokumente und
kümmerst dich nicht mehr um die Analyse von GET-Parametern,
die du für so einfache Projekte gar nicht brauchst.
Sollte alles mal komplizierter werden und es notwendig werden,
mehrere Inhalte einer Seite flexibel mit einem Verweis
auszutauschen, könntest du bis dahin genug PHP gelernt haben,
um das mit GET-Parametern umzusetzen ;o)

also,hab ich es richtig verstanden:

ich soll z.B: menu.php (php-datei) erstellen und da meinen code von meiner navigation rein setzen und bei den 3 seiten jeweils diesen php-schnipsel da reinsetzn?

also reicht es wenn ich das

+ class da rein verschiebe?

Bei drei Seiten kannst du dir das PHP eigentlich auch gleich
ganz sparen und das Menü-Fragment einfach so mit dem
Editor in jedem der drei Dokumente an die passende Stelle
kopieren, viel mehr macht das PHP auch nicht. Und wenn es
bei den drei Seiten bleibt, wird sich das Menü ja ohnehin nicht
mehr verändern.
Erst wenn du vorhast, übers Jahr noch weitere Seiten
hinzuzufügen, gibt es einen Vorteil, wenn du das Menü so über
PHP einbindest, weil du es dann nur einmal anpassen mußt und
nicht auf jeder Seite extra.

Bei drei Seiten jedenfalls lohnt sich der ganze Aufstand noch
nicht.
Aber vom Prinzip her, wenn du Inhalte so wiederverwenden
willst, kannst du ein oder mehrere solcher Dateien mit
Dokumentfragmenten bereitlegen und das sinngemäß so mit
include in ein anderes (PHP-)Dokument einbinden.
Der Effekt ist für den jeweiligen Betrachter derselbe, als hättest
du es selbst mit einem Texteditor an die Stelle des Quelltextes
kopiert.

aber dann muss ich doch in allen 3 seitendokumenten meinen layout-code haben,oder?

file:///C:/Users/Philipp/Desktop/Notepad++Portable/dbmm/design-test.html

das is erstmal ein versuch,und ich möchte, dass die inhalte der 3 links jeweils in dem div wo test steht aufgerufen werden

Das hilft aber nicht oO

Nun, das Layout machst du natürlich mit CSS in einer externen
CSS-Datei.
Dann setzt du in jedem Dokument per Element link einen Verweis
auf die CSS-Datei und schon hast du das Layout in allen Dateien
angewendet. Ganz einfach, braucht auch kein PHP, was ja mit
Layout auch erstmal gar nichts zu tun hat.

was meinste mit “das hilft aber nicht”?

oder hier,is n code für n formular,kann ich an dem was ändern(und wenn was) damit die eingetragenen daten direkt an meine E-Mail gesendet werden?

E-Mail für mich

E-Mail an Admin

<td><input name="sender_name"  size="40" type="text"></td>
</tr>
<tr>
<td><b>Absender-E-Mail:</b></td>
<td><input name="sender_email"  size="40" type="text"></td>
</tr>
<tr>
<td><b>Betreff:</b></td>

<td><input name="subject" value="" size="50" type="text"></td>
</tr>
<tr>
<td colspan="2"><br><textarea name="text" cols="78" rows="20"></textarea></td>
</tr>
<tr>
<td colspan="2"><br><input name="form_submitted" value="OK - Absenden" type="submit"></td>
</tr>

</tbody></table>
</div></form><p>&nbsp;</p></div> 
Absender-Name:

um die Daten aus dem Formular zu verarbeiten käm dann wieder php ins spiel
die formulardaten stehen nach dem Absenden im Array $_POST zur Verfügung und könnten per mail() versendet werden…

möglichst einfaches Beispiel:

<?php
if(isset($_POST['form_submitted']))
{
  $to = "deine@email.adresse";
  $subject = $_POST['subject'];
  $text = $_POST['sender_name'].":\n\n".$_POST['text'];
  $header = "From: ".$_POST['sender_email'];

  mail($to,$subject,$text,$header);
}
?>

Stimmt so nicht und möchte ich deswegen auch nicht so stehen lassen.
Man kann auch mit JavaScript und DOM ziemlich einfach den Content eines Divs ändern. Ansonsten wäre AJAX ja ziemlich unsinnig, womit wir schon wieder beim Thema wären, damit gehts nämlich auch. Was da im Backend Werkelt ist auch relativ egal. Ne einfache html oder txt Seite erfüllt da schon ihren Zweck.

Es geht als auch ohne Frames und PHP, was mehr Sinn macht stand nicht zur Diskusion und ich wollte es auch nur der Vollständigkeithalber erwähnt haben.

Phil - mittels java-script kann man per Definition keinen neuen
Inhalt zu einer (X)HTML-Datei hinzufügen, weil die Information
eines Dokumentes mit und ohne Skriptausführung per Definition
dieselbe ist. Ähnlich wie mit CSS kann man mit java-script die
Information anders darstellen oder dynamisch aufbereiten, viel
mehr auch nicht.
Wenn es nun AJAX-Projekte gibt, wo du bei aktivierter
Skriptausführung einen anderen Eindruck hast und da Information
zu sehen meinst, die ohne Skriptinterpreation nicht zugägnlich
sind, so ist das Projekt offenbar grob mangelhaft bis unsinnig
strukturiert.

Ob oder wie unsinnig typische AJAX-Projekte sind, kann ich nicht
sagen, ich habe noch nie eines gesehen (oder es ist mir nicht
aufgefallen), was aber auch daran liegen kann, daß ich
Skriptausführung nicht aktiviert habe. Entweder eine Seite
funktioniert dann wie vorgesehen auch ohne oder sie ist defekt
und ich besuche sie nicht wieder, weil sie ja nicht funktioniert.

geht jetzt zwar ziemlich offtopic, aber hier muss ich einfach mal nachhaken: :astonished:

@ hoffman:
welche Definition sollte das denn aussagen?
wofür gibt es denn z.B. „document.write(‚bla‘);“?

Wozu glaubst Du wohl, gibt es Scripte überhaupt?
Wieso schaltest Du die Ausführung generell ab?
Wo, bitte schön, liegt denn da der Sinn??

Zum Theme AJAX:
Hast Du jemals die Lightbox eingesetzt - oder wenigstens gesehen?
schon mal den Vodafone-Shop besucht?
Oder eBay?
Oder Xing?
Flickr?

ja ja, alles ziemlich kleine, unbedeutende Seiten, die einfach nicht wissen, wie manns richtig macht… :motz:

So, wie Du Dich hier aufführst, könnte ich mich auch hinstellen:
„Entweder eine Seite funktioniert in meinem Netscape 4 oder ich besuche sie nicht wieder…“

Skript dienen ähnlich wie CSS dekorativen Zwecken oder um
einen alternativen Zugang zum Inhalt zu ermöglichen.
Verschiedene Menschen haben verschiedene Fähigkeiten oder
Behinderungen, was zur Folge hat, daß sie Inhalte besser
verstehen, wenn sie ihren Möglichkeiten entsprechend
präsentiert werden.
Oft werden Skripte aber auch anders angewendet - und wo du
Netscape4 ansprichst, trifft aber auch auf andere browser zu -
fehlerhafte Skripte führen oft zu Abstürzen oder zu Zombies
auf dem Rechner, die man erst wieder manuell ‘killen’ muß,
man kann fehlerhafte Skripte also gut dazu nutzen, die Leistung
eines angegriffenen Rechners zu drosseln oder zu verplempern.
Zudem sind Skriptinterpretationen seit es java-script gibt immer
wieder Hauptgrund für Sicherheitsprobleme in browser. Skripte
sind also sehr nützlich, um diese zu Nutzen und Angriffe zu
starten und Dinge auf dem Rechner des Anwenders auszuführen,
die dieser eigentlich gar nicht möchte. Wurde in den letzten
Jahren bei neueren browsern durch Schließung von
Sicherheitslücken allerdings immer schwieriger, es tauchen aber
immer wieder welche auf.

Generell habe ich an solchen Effekten aus verschiedenen
Gründen kein Interesse, daher ist Skriptinterpretation auf
unbekannten Seiten bei mir generell deaktiviert. Sollte mir eine
Skriptinterpreation auf einzeln ausgesuchten Seiten nützlich
erscheinen, kann ich die dort gezielt aktivieren. Wird allerdings
eher nicht passieren, wenn die Seiten nicht ohne Skripte
sinnvoll funktionieren, denn dann gibt es ja gar keinen Anlaß
sich weiter damit zu beschäftigen.

document.write ist soweit ich weiß, ziemlich unsinnig, weil
das dann doch wohl zumeist in ein script-Element etwas
schreibt, was dort vom DOM her gar nicth hingehört, deswegen
ist das in ecma-script und DOM-orientierten Skriptsprachen
auch gar nicht verfügbar, weil man damit eigentlich gar nichts
anfangen kann.

Bekannte Seiten: Nach Untersuchungen von Google sind rund
95% des internets fehlerhaft oder unsinnig. Dabei gibt es keine
besondere Gewichtung, die dazu führt, daß vielbesuchte Seite
deutlich besser oder schlechter sind. Wenn man jetzt blind raten
soll, wird man erstmal mit hoher Trefferquote davon ausgehen
können, daß eine Seite fehlerhaft oder unsinnig ist - auf dieser
Hypothese basiert derzeit die Entwicklung von HTML5 - daß
Autoren normalerweise zu blöd sind, um fehlerfreie und sinnvolle
Dokumente zu erstellen ;o)

Nochmal netscape4: bei einer anständig erstellen HTML-Seite
sollte diese ohne Probleme mit netscape4 funktionieren. Bei
XHTML oder anderen XMLs bekommt das Teil allerdings
Probleme wie der MSIE, der ja auch der gleichen Zeit stammt.
Man kann netscape4 aber so einstellen, daß er für solche Formate
ein anderes Programm aufruft.

Ich mag dazu nun auch nochmal etwas beitragen.

Wenn du von Scriptsprachen redest scheinst du generell JS zu meinen. Was eine ziemlich engstirnige Ansicht zu sein scheint. PHP, CGI, etc sind ebenfalls Scriptsprachen und haben mit der Darstellung rein gar nichts am Hut. Gleiches gilt für JavaScript, nur weil ich damit das Aussehen einer Seite ändern kann, heißt es nicht das dies der eigentliche und uneingeschränkte Verwendungszweck ist.

Ich werde mich nun auch nicht dazu hinreißen lassen auf irgendwas ein zugehen, dass etwas schlecht macht von dem du weniger Ahnung als von CSS zu haben scheinst. Dein CSS Wissen achte ich im übrigen, weil das wirklich gut ist. Aber bei den Scriptsprachen… lass es mal lieber vorerst.

Ich kann zur Laufzeit mit JS Mitteln, zum Beispiel:

document.getElementById("<id>").innerHTML = '<HTML CODE>';

den kompletten Inhalt eines Containers umschreiben, was laut Definition (ich nutze es extra, da du da Wert drauf zu legen scheinst) ein Vorteil von DOM und dem BoxModel ist.
JS erlaubt es mir also, zur Laufzeit Content nach zu laden und bestehenden Code zu verändern, ohne die komplette Seite neu laden zu müssen. Um nichts anderes ging es.

Mich würde mal interessieren, wie du dir erklärst das JS weit mehr Funktionen und Methoden bietet die keine direkte Anzeige zur Folge haben, wenn es sich doch um reine Ausgabeformatierung handeln soll. (was im übrigen auch nicht zu deiner Sicherheitstheorie passt)

Ob man JS nun aktiviert oder nicht, sollte jeder selber wissen. Nur wer seinen Browser nach außen hin komplett Dicht macht, aus Angst das ihm irgendetwas passieren könnte, fängt sich den nächsten Trojaner über einen IFrame ein, den er gar nicht sieht. Nimmt man dem Webdesigner und Entwickler auch noch die letzten Möglichkeiten Content dynamisch und ordentlich zu gestalten, wäre es nie zum Web2.0 gekommen.
Im Übrigen kann man dir auch mit 1. Zeile PHP Code etwas unterjubeln was du gar nicht wolltest, so gesehen finde ich die Angst einiger User doch stark übertrieben und werde auch weiterhin JS in sinnvollem Umfang einsetzen.

Greez

da war er schneller, ok:

Mag vom gedankengang her richtig sein. Aber eben für DOM beitet JS die entsprechenden Methoden und Funktionen, wie AppendChild, etc. Um eben Nodes hinzuzufügen, zu löschen oder bestehnde Nodes zu verändern, also vollkommen DOM orientiert damit zu arbeiten.

Da du angesprochen hast, dass JS ausschließlich zur Veränderung der Ausgabe dient:

document.getElementById("<ID>").style ....

beschreibt schon den DOM gerechten Umgang um die Ausgabe zu formatieren, oder die bestehende Formatierung zu verändern. Und nun solltest auch du solangsam mal zugeben das in deinen 2 Posts nicht alles so richtig war.

[quote=„Phil“]

da war er schneller, ok:

Mag vom gedankengang her richtig sein. Aber eben für DOM beitet JS die entsprechenden Methoden und Funktionen, wie AppendChild, etc. Um eben Nodes hinzuzufügen, zu löschen oder bestehnde Nodes zu verändern, also vollkommen DOM orientiert damit zu arbeiten.

Da du angesprochen hast, dass JS ausschließlich zur Veränderung der Ausgabe dient:

document.getElementById("<ID>").style ....

beschreibt schon den DOM gerechten Umgang um die Ausgabe zu formatieren, oder die bestehende Formatierung zu verändern. Und nun solltest auch du solangsam mal zugeben das in deinen 2 Posts nicht alles so richtig war.[/quote]

Das ist mir zumindest bekannt (obgleich ich von der praktischen
Anwendung von java-script/ecma-script keine Ahnung habe).
Das kann die Elemente/Eigenschaften/Attribute/‚Inhalte‘ ja auch
an der korrekten Stelle in das DOM einfügen, was zumindest die
Konstruktion an sich sinnvoll macht. Wie so vieles stellt aber auch
hier die Machbarkeit keine Garantie dafür dar, daß das Ergebnis
inhaltlich sinnvoll ist - das liegt allein in der Verantwortung des
Autors, da kann die Spezifikation der Skriptsprache wenig
weiterhelfen.

Mit CSS kann man auch ‚Inhalt‘ einbinden. Auch da handelt es
sich aber immer um eine zusätzliche Alternative, nicht um eine
neue Information, weil es sich eben bei CSS um eine
Stilvorlagensprache hat und nicht um eine, die Inhalt auszeichnet.

Um grob den Bogen zurück zum Thema zu bekommen:
Wenn jemand schon keine große Ahnung von (X)HTML, CSS,
PHP, js etc hat, was ja auch gar nicht schlimm ist, aber nur drei
Seiten ins Netz stellen will, dann muß man ihm dafür nicht auch
noch AJAX oder sowas unterjubeln, wo er garantiert Monate
brauchen wird, um die spärlichen Inhalte allen Nutzern zugänglich
zu machen. egal, was die nun aktiviert oder nicht aktiviert haben
;o) Wohingegen eine Methode, die immer funktioniert, eben an
sich nur Stunden braucht, um sie umzusetzen.

Bei Skriptsprachen muß man ansonsten genau gucken, wer die
Skripte ausführt. Tut es der server, wird das ganz unabhängig
davon funktionieren, was der Nutzer am browser eingestellt hat
oder nicht. Verwende ich etwa shell-Skripte um meine
number-cruncher-Programme auf einem Großrechner anzusteuern,
interessieren mich Sicherheitsbelange nicht besonders, denn ich
bin der einzige, der das Skript modifizieren kann und auch der
einzige, der es nutzt. Nur wenn ich zu doof bin, kann es Schaden
anrichten - ist dann mein persönliches Problem.
Wenn ich jedoch ein Skript schreibe, was im browser des
Anwenders laufen soll, so sieht die Verteilung der Verantwortung
und des Risikos ganz anders aus, besonders wenn der Anwender
auch noch einen relativ unsicheren windows-Rechner verwenden
sollte. Das Risiko wird mittlerweile bei ecma-script oder so
schon deutlich reduziert, weil die Sprache auf solche
Anwendungen hin ausgerichtet ist, wo das Risiko nicht voll beim
Anwender liegen soll. Sollte sich eben jeder einzelne Anwender
überlegen, ob es sich lohnt. Als Autor kann man jedenfalls nicht
davon ausgehen, daß ein jeder von den genialen und
altruistischen Fähigkeiten des Autors so überzeugt ist, daß jedes
seiner Skripte auch ausgeführt werden wird, gleich wozu es gut
sein soll.

Aufgrund von Sicherheitsvorkehrungen von modernen browsern
sollte es auch bei frames/iframes/object/img etc gewisse
Probleme geben, jemandem etwas unbeabsichtigt unterzujubeln,
selbst wenn Skripte akiviert sind, sonst wohl eher gar nicht - es
sei denn eben, man findet wieder eine aktuelle Sicherheitslücke
im browser ;o)

langsam langsam,

Ich habe lediglich etwas klar gestellt und niemandem etwas untergejubelt, also bitte den Post nochmal genau durchlesen und sich dann dazu äußern. Was sinnvoll ist und was nicht, obligt dem jeweiligen Autor und nicht dir als Nutzer. Bin ich der Meinung das ich darauf nicht verzichten will, dann ist es mir unterm Strich einfach egal, ob du als Sicherheitsfanatiker vor dem Herrn, das nun nicht sehen kannst, weil du deinen Browser zurammelst als wären die Staatsreserven darin versteckt.

Desweiteren interessiert es mich nur begrenzt mit was ein User sich ein Webangebot anschaut. Als Webdesigner & Entwickler hat man schon genug mit der Kompatibilität der Browser zu tun. Da interessiert es mich ehrlich gesagt nicht, ob der User sich gegen Viren oder Trojaner schützt, mit einem unsicheren Windows surft, oder sonst was macht.

Für mich zählt einzig und allein, dass das was ich umsetzen will sicher funktioniert und ansprechend aussieht. Ob es dir nun gefällt steht auf einem anderen Blatt, aber jedem Recht machen kann man es ohnehin nicht.

Noch einen Punkt zum Content, Wer Müll schreibt, schreibt Müll, egal welches Gerüst drum rum ist. Das ist für mich also überhaupt kein Argument!

Mal abgesehen davon das du dir selber wiedersprichst, in dem du meiner gegenargumentation zu deinem Post auch noch zustimmst, bezüglich beschreibende Scriptsprachen.

Deine Argumentation wird mittlerweile so schwammig, das sich eine weitere Diskusion darüber auch gar nicht mehr lohnt. Mein Standpunkt ist klar und der Sachverhalt richtig gestellt, mehr gibts dazu nicht zu sagen