Einstieg in die Programmierung: Einfache PHP-Skripte

Größe: px
Ab Seite anzeigen:

Download "Einstieg in die Programmierung: Einfache PHP-Skripte"

Transkript

1 First Kapitel 4 KAPITEL 4 Hier In diesem Mini Kapitel: IVZ eingeben! Ein PHP-Skript zur Datumsausgabe Formulare für Benutzereingaben Formulardatenverarbeitung durch PHP-Skripte PHP-Comboskripte und Includes Einstieg in die Programmierung: Einfache PHP-Skripte Erstellen auf den Arbeitsseiten (siehe Muster) Abstand untere Tabellenlinie zu Textanfang 1,8 cm -> also: manuell auf den Arbeitsseiten ziehen!!! Im vorletzten Kapitel ist uns PHP ja schon einmal begegnet. Deshalb wissen Sie bereits schon, dass ein PHP-Skript eine Datei ist, die auf einem Webserver abgelegt wird und von einem Webbrowser über das Internet durch einen HTTP-Request angefordert werden kann. Sie erinnern sich vermutlich auch noch daran, dass so ein PHP-Dokument aus HTML mit eingebetteten Spezial-Tags besteht, die PHP-Code enthalten. Vor dem Versand durch den Webserver wird das Dokument vom Server nach diesen Spezial- Tags durchsucht. Der in ihnen enthaltene PHP-Code, d.h. die PHP-Programmanweisungen, wird dann auf der Stelle durch den Webserver ausgeführt. Etwaige Ausgabedaten, die sich aus den PHP-Befehlen in den Tags ergeben, werden an der entsprechenden Stelle anstatt der PHP-Tags in die Datei eingefügt. Sobald die Datei durch den Server fertig bearbeitet worden ist, wird sie in einer HTTP-Response an den Browser geschickt. Der Browser interpretiert die Antwort entsprechend, z.b. (typischerweise) als HTML-Code einer Webseite. Ein PHP-Skript zur Datumsausgabe Sehen wir uns den schon besprochenen Ablauf einmal anhand eines einfachen Beispiels an, das Sie wie alle anderen Beispiele in diesem Buch auch online auf dem O Reilly-Webserver ( finden können. Den Code des Beispiels finden Sie in der PHP-Datei datum.php für dieses Kapitel: Beispiel 4-1: Der Code in datum.php <?php // Dieses einfache PHP-Skript gibt das aktuelle Datum und die Zeit aus. $datumundzeit = getdate(); $jahr = $datumundzeit["jahr"]; $monat = $datumundzeit["mon"]; 49

2 Beispiel 4-1: Der Code in datum.php (Fortsetzung) $tag = $datumundzeit["mday"]; $stunden = $datumundzeit["stunden"]; $minuten = $datumundzeit["minuten"]; $sekunden = $datumundzeit["sekunden"];?> <html> <head> <title> Das heutige Datum ist der <?php echo $tag.".".$monat.". anno domini ".$jahr;?> </title> </head> <body> <h1>die momentane Uhrzeit an diesem Webserver ist <?php echo $stunden. ":".$minuten.":".$sekunden;?></h1> </body> </html> Links Wenn Sie diese Datei vom Browser aus aufrufen, z.b. indem Sie die entsprechende URL in das Adressenfeld des Browsers eingeben, wird eine Webseite angezeigt, in deren Titel das aktuelle Datum steht. Im Hauptfenster des Browsers wird neben etwas Überschriftentext die aktuelle Zeit angezeigt (siehe Abbildung 4-1). Abbildung 4-1: Die Ausgabe von datum.php im Browserfenster Bis die Seite angezeigt wird, passieren die folgenden Dinge: Nachdem der Browser einen HTTP-Request an den angegebenen Server geschickt und ihn um Übersendung des Dokuments datum.php gebeten hat, erkennt der Server an der Dateiendung.php, dass es sich um eine PHP-Datei handelt. Er lädt daraufhin die Datei von seiner Festplatte und lässt sie durch den PHP-Interpreter bearbeiten. Wie bereits erwähnt, werden dabei jeweils die Teile der Datei, die sich zwischen <?php- und?>- Tags befinden, als Programmcode ausgeführt. Der erste PHP-Programmteil, der Zeile für Zeile ausgeführt wird, besteht (neben den Tags und dem Kommentar) aus den folgenden Kommandos, die jeweils mit einem Semikolon enden: $datumundzeit = getdate(); $jahr = $datumundzeit["year"]; $monat = $datumundzeit["mon"]; $tag = $datumundzeit["mday"]; 50 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

3 Rechts $stunden = $datumundzeit["hours"]; $minuten = $datumundzeit["minutes"]; $sekunden = $datumundzeit["seconds"]; Wenn Sie noch nie programmiert haben, sehen die Zeilen oben für Sie vielleicht ein bisschen wie Gleichungen aus dem Mathematikunterricht aus. Wenn Sie Ihre Mathematikstunden noch nicht ganz aus dem Oberstübchen verdrängt haben, entsinnen Sie sich vielleicht, dass es dort von Variablen nur so wimmelte und dass das, was auf der linken Seite des Gleichheitszeichens stand, gleich dem Ausdruck auf der rechten Seite des Gleichheitszeichens war. Sie entsinnen sich wahrscheinlich auch noch, dass eine Variable ein Symbol war, das beliebige Werte annehmen konnte. Bevor Sie sich jetzt in eine Matheklausur versetzt fühlen, gibt es eine gute Nachricht: Die PHP-Zeilen sehen zwar so aus wie Gleichungen, sind es aber nicht ganz. In diesem Fall handelt es sich nämlich nur um Wertzuweisungsbefehle. Und die sind eigentlich ganz einfach. Zunächst einmal kann PHP in der Regel die rechte Seite eines Wertzuweisungsbefehls für Sie berechnen bzw. auswerten oder konstruieren. Das Resultat dieser Berechnung, Auswertung oder Konstruktion ist dann ein Wert oder auch eine kompliziertere Datenstruktur. Links vom Gleichheitszeichen steht normalerweise eine Variable. Eine solche Variable erkennen Sie in einem PHP-Programm daran, dass ihr Name mit einem Dollarzeichen beginnt. Der Rest des Namens ist ziemlich beliebig. Üblicherweise verwendet man für den Namen eine Bezeichnung, die auf den Inhalt der Variablen hinweist. Die ungewöhnliche Groß-/Kleinschreibung in unseren Beispielen folgt dabei einer verbreiteten Konvention (siehe Kasten»Variablen«weiter unten). Eine Variable kann einen einzelnen Wert oder auch kompliziertere Datenstrukturen aufnehmen und speichern. In einem Wertzuweisungsbefehl wird dieser Variablen der Wert oder die Datenstruktur zugewiesen, die sich aus dem Ausdruck rechts des Gleichheitszeichens ergeben hat. Die Variable speichert diesen Wert oder die Datenstruktur, bis ihr entweder ein anderer Wert (oder eine andere Datenstruktur) zugewiesen wird oder bis das Skript beendet wird. In unserem konkreten Fall macht der erste Befehl Folgendes: Er ruft eine so genannte Funktion auf. Hier handelt es sich um die Funktion getdate(), eine der vielen eingebauten Funktionen von PHP. Funktionen werden wir später noch eingehend besprechen. Für den Augenblick sollten Sie sich merken, dass eine Funktion bei der Ausführung immer durch ihren Rückgabewert ersetzt wird. getdate() gibt als Rückgabewert ein so genanntes assoziatives Array an PHP zurück. Ein solches Array ist ein Beispiel für eine etwas komplexere Datenstruktur. Wir werden sie uns gleich noch näher ansehen. In unserem Wertzuweisungsbefehl speichern wir das Array zunächst aber in der PHP-Variablen $datumundzeit ab. Damit stellt $datumundzeit nun selbst ein assoziatives Array dar. Ein PHP-Skript zur Datumsausgabe 51

4 Links Variablen Variablen in PHP können Sie leicht erkennen oder auch selbst definieren. Eine Variable fängt immer mit einem Dollarzeichen an, danach folgt ein Buchstabe (keine Umlaute oder ß, bitte!) oder ein Unterstreichungszeichen (Underscore). Dem darf eine beliebige Kombination dieser Zeichen sowie der Ziffern 0 bis 9 folgen. Die folgenden Variablennamen sind also zulässig: $kiwi $_kiwi $_0 $a $kiwi2 $a_b_c $a1 Am besten fangen Sie Ihre eigenen Variablennamen mit einem Buchstaben an, zwecks Unterscheidung von Variablen, die durch PHP vordefiniert sind diese beginnen mit einem Unterstrich nach dem Dollarzeichen. Apropos Namensgebung bei Variablen: In den Beispieldateien in diesem Buch lernen Sie auch gleich eine weit verbreitete Konvention kennen: die so genannten Camel Caps. Code ist nämlich wesentlich lesbarer, wenn er nicht nur aus Kleinbuchstaben besteht. Bei Camel Caps werden die Anfangsbuchstaben aller im Variablennamen vorkommenden Wörter (ggf. wie hier mit Ausnahme des ersten Worts) großgeschrieben, alle anderen Buchstaben klein. Damit kriegen die Namen»Kamelhöcker«und sind im Code einfacher zu finden. Eine funktionelle Bedeutung hat das allerdings nicht PHP ist es egal, ob Ihr Variablenname augenfreundlich ist. Ein weiterer Vorteil: Mit einer Namensgebungskonvention dieser Art ist es meist relativ klar, wie sich die Variable schreibt. Das vermeidet Zeit raubende Fehler, die durch versehentlich ungesetzte»neue«variablen entstehen können. Variablen können Sie einfache Werte zuweisen, wobei es egal ist, ob Sie Zahlenwerte oder Strings (Zeichenketten) verwenden: $summand1 = 3; und $summand1 = "3"; sind komplett äquivalent. Aufpassen müssen Sie lediglich, wenn Sie Variablen in mathematischen Ausdrücken verwenden, z.b. in einer Summe: $summand1 = 3; $summand2 = "4"; $summe = $summand1 + $summand2; funktioniert ($summe enthält dann den Wert 7), aber $summand1 = 3; $summand2 = "vier"; $summe = $summand1 + $summand2; geht garantiert daneben! Beim Aneinanderfügen von Strings mit dem Punkt-Operator geht es aber immer gut: $ecken = 3; $huteckenanzahl = "Mein Hut, der hat ".$ecken." Ecken!"; speichert Mein Hut, der hat 3 Ecken! in $huteckenanzahl ab. 52 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

5 Rechts Ein assoziatives Array speichert Datenwerte jeweils unter einem Schlüssel (key) ab. Mit verschiedenen Schlüsseln lassen sich so beliebig viele Werte in einem Array (und damit in einer Variablen) speichern. Bei einem solchen Schlüssel kann es sich um eine beliebige Zeichenkette (String) handeln. In unserem Fall sorgt getdate() beispielsweise dafür, dass wir unter dem Schlüssel hours die Stunden der aktuellen Zeit und unter mday den jeweiligen Tag im Monat finden (also zum Beispiel den 23.). Im Prinzip recht einfach, oder? Wie aber kommen wir an die Werte in einem assoziativen Array heran? Das sehen wir in den nächsten Zeilen. Der Bequemlichkeit halber speichern wir die für uns interessanten Werte des Arrays dort gleich wieder in einzelnen Variablen ($jahr, $monat usw.) ab. Damit müssen wir später nicht immer auf die assoziative Array- Syntax zurückgreifen. Die Befehle, die Array-Werte in die Einzelvariablen umkopieren, illustrieren die nötige Array-Syntax, wie z.b. im ersten Befehl: $jahr = $datumundzeit["year"]; Hier sehen Sie, wie Sie z.b. auf den Eintrag für das Jahr in $datumundzeit zurückgreifen können: Sie setzen den Schlüssel (in unserem Fall die Zeichenkette "year") in eckige Klammern direkt hinter den Namen des Arrays. Dieser Ausdruck wird von PHP als dasjenige Element des Arrays ausgewertet, das unter dem entsprechenden Schlüssel abgespeichert wurde. Ausgabe als zusammengesetzter String Bisher haben wir also ein Array erzeugt, es umkopiert und einige seiner Elemente in einzelnen Variablen abgespeichert. Das Ganze spielt sich bei der Ausführung aber komplett im Verborgenen ab. Da der erste PHP-Programmschnipsel damit keinerlei Ausgabe produziert hat, fällt er in der Ausgabe an den Browser ersatzlos weg. Im Anschluss an diesen ersten Teil enthält die PHP-Datei erst einmal etwas HTML: ein <html>-tag, ein <head>-tag und ein <title>-tag sowie etwas Text. Diese werden später unverändert an den Browser weitergereicht. Dann treffen wir wieder auf ein <?php-tag: <?php echo $tag.".".$monat.". anno domini ".$jahr;?> Das Tag enthält nur einen einzigen PHP-Befehl, aber der hat es in sich! Der Befehl echo gibt die jeweils folgende Zeichenkette (String) an dieser Stelle an den Browser aus. Ein String kann bestehen aus 1. einer Variablen; beispielsweise lassen sich $tag, $monat und $jahr jeweils als Strings verstehen. 2. einer expliziten Zeichenkette, die zur Unterscheidung von anderem PHP-Code durch einzelne oder doppelte (hochgestellte) Anführungszeichen umgeben ist: Ein PHP-Skript zur Datumsausgabe 53

6 ' anno domini ' Links ist ein Beispiel, aber " anno domini " ist genauso erlaubt (siehe oben). 3. dem Rückgabewert einer Funktion. 4. einer Kombination aus Strings der drei vorhergehenden Typen, wobei zwei benachbarte Strings jeweils durch einen Punkt»zusammengeklebt«werden. Dreimal dürfen Sie raten, mit welcher Sorte String wir es hier zu tun haben: natürlich mit einem zusammengesetzen String, der aus den Teil-Strings $tag, ".", $monat, " anno domini " und $jahr besteht. Die Werte der Variablen sind ja noch aus dem ersten PHP-Programmschnipsel bekannt. Wenn also $tag den Wert 23 hätte, $monat den Wert 2 und $jahr den Wert 2003, würde der obige echo-befehl an Stelle des PHP-Tags den String anno domini 2003 an dieser Stelle in die Datei einfügen. Wie es weitergeht, können Sie sich wahrscheinlich denken. Als Übung könnten Sie vielleicht probieren, den Code des dritten PHP-Tags in der Datei datum.php zu analysieren. Alles schon bekannt? Na sehen Sie, ist doch gar nicht so schwer! Was der Browser sieht Sehen wir uns noch einmal kurz an, was der Server dem Browser nun letztendlich zuschickt: Beispiel 4-2: Eine typische HTML-Ausgabe von datum.php <html> <head> <title> Das heutige Datum ist der anno domini 2003 </title> </head> <body> <h1>die momentane Uhrzeit an diesem Webserver ist 14:22:37 </h1> </body> </html> Wie Sie sehen, ist nun kein PHP-Code mehr in dieser Ausgabe enthalten. Das ist auch gut so, weil der Browser kein PHP versteht. Der gesamte verbliebene Code ist HTML für den Browser also ein Kinderspiel. 54 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

7 Rechts Wenn Sie das obige Beispiel in der Praxis ausprobieren, werden Sie sehr schnell einen optischen Bug finden: Wenn die Sekunden oder Minuten kleiner als 10 sind, wird jeweils nur eine Stelle ausgegeben. Am Ende des Abschnitts»Formulardatenverarbeitung durch PHP-Skripte«in diesem Kapitel unter der Überschrift»Probieren Sie s selbst!«gibt es eine kleine Übung, mit der Sie dieses Problem beheben können. PS: Die Ausgabe von formatierten Daten und Zeiten in PHP ist übrigens auch erheblich einfacher möglich: mit der PHP-Funktion date(). So gibt Ihnen z.b. echo date("g:i"); die momentane Uhrzeit in Stunden und Minuten aus. Warum ich Ihnen das erst jetzt erzähle? Ganz einfach: Weil ich Ihnen eine schonende Einführung in Variablen, Arrays und zusammengesetzte Strings geben wollte. Außerdem sollten Sie sich frühzeitig an den Gedanken gewöhnen, dass auch bei einer so umfangreichen Sprache wie PHP die passende Funktion manchmal einfach nicht vorhanden oder aufzufinden ist. Dann ist Selberbasteln angesagt. Und genau dazu will ich Sie ja ermutigen! Formulare für Benutzereingaben Der Hauptgrund, aus dem Skriptsprachen wie PHP so beliebt sind, besteht darin, dass ein Webserver mit Hilfe von Skripten auf Eingaben des Browser-Benutzers reagieren kann zum Beispiel auf eine Bestellung in einem Online-Versandgeschäft. Bevor der Webserver reagieren kann, muss der Benutzer aber erst einmal ein Formular im Browserfenster ausfüllen, dessen Daten dann vom Browser an den Server geschickt werden. Dieses Formular wird im Normalfall durch den Browser beim Webserver angefordert und von diesem geliefert. Obwohl HTML-Formulare eigentlich nicht PHP-spezifisch sind, so sind sie doch hauptsächlich für den Einsatz in Verbindung mit Skriptsprachen wie PHP gedacht. Sie erinnern sich vielleicht an unser Projekt, das sich wie ein roter Faden durch dieses Buch zieht. Die Hauptseite dieser Website kennen Sie bereits. Wenn Sie aber dem Link»Ich will spenden«folgen, erwarten Sie, auf einer Seite zu landen, auf der Sie Ihre persönlichen Daten und die Einzelheiten zur Spende eingeben können bei einem Formular also. Sehen wir uns dieses Spendenformular namens spendenformular.php in Abbildung 4-2 einmal an. Hier sehen Sie eine ganze Anzahl von Formularelementen, von denen Ihnen die meisten bereits aus anderen Internetseiten bekannt vorkommen dürften: ein einzeiliges Texteingabefeld (für den Namen), ein mehrzeiliges Eingabefeld für die Adresse, eine Auswahlliste für die Höhe der Spende, ein Dateiauswahlfeld, um ein Foto des edlen Spenders beifügen zu können, drei Radio-Buttons zur Auswahl des Kreditkartentyps sowie zwei Texteingaben zur Angabe von Kreditkartennummer und -ablaufdatum. Schließlich bitten wir mit einer Checkbox um Erlaubnis, den Namen des Spenders veröffentlichen zu dürfen. Formulare für Benutzereingaben 55

8 Links Abbildung 4-2: Das Spendenformular in unserem Browser Wenn Sie das Formular in Ihren Browser laden, werden Sie feststellen, dass wir diese Genehmigung frecherweise schon einmal vorweggenommen haben lichtscheue Spender müssen sie also quasi aktiv widerrufen. Um die Spende auch abschicken zu können, gibt es einen Submit-Button mit der Aufschrift»Spende abschicken!«. Der Code unseres Spendenformulars So weit, so gut. Sehen wir uns einmal an, wie die Seite mittels PHP erzeugt wird und was sich sonst noch»unter der Motorhaube«verbirgt: Beispiel 4-3: Der Code in spendenformular.php <html> <head> <title>spendenformular für bedrohte Vögel</title> </head> <body> <form name="spende" action="spende.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="ausgabezeit" value="<?php echo time();?>"> <h1>spendenformular</h1> Wir freuen uns, dass Sie spenden möchten! Bitte geben Sie Ihren Namen, Ihre Adresse, die Höhe der Spende und Ihre Kreditkartendaten ein. Drücken Sie 56 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

9 Rechts Beispiel 4-3: Der Code in spendenformular.php (Fortsetzung) dann auf "Spende abschicken!"</p> <p> <b>name:</b> <input type="text" name="spendername" size="80"></p> <p><b>adresse:</b><br> <textarea name="adresse" rows="4" cols="40" align="top"></textarea></p> <p><b>höhe der Spende:</b> <select name="betrag"> <?php for($i = 5; $i < 101; $i = $i + 5) { echo "<option value=\"".$i."\">".$i." \n";?> </select> <b>ihr Foto</b> (optional): <input name="spenderfoto" type="file"></p> <p><b>kreditkartentyp:</b> <input type="radio" name="kartentyp" value="visa">visa <input type="radio" name="kartentyp" value="mastercard">mastercard </p> <p><b>kreditkartennummer:</b> <input type="text" name="kreditkarte" size="20" maxlength="20"> <b>verfallsdatum der Kreditkarte:</b> <input type="text" name="ablaufdatum" size="4" maxlength="4"></p> <p> <b>klicken Sie hier, wenn wir Ihren Namen veröffentlichen dürfen:</b> <input type="checkbox" name="oeffentlich" checked></p> <p><input type="submit" value="spende abschicken!"></p> </form> </body> </html> Der Kopf der Datei birgt keine großen Überraschungen. Bis zum <body>-tag dürfte Ihnen eigentlich alles bekannt vorkommen. Nach dem <body>-tag fängt auch gleich unser Formular an. Wie das Formular zum Formular wird: das <form>-tag Um ein Formular zu einem Formular werden zu lassen, müssen sämtliche Eingabeelemente des Formulars von einem <form>-tag umgeben sein. Für jedes Formular darf es nur ein solches Tag geben, das auch andere Elemente der Seite (hier z.b. die Überschrift und den erklärenden Text) enthalten darf. Das muss aber nicht so sein: Wir hätten hier die Überschrift im <h1>-tag auch genauso gut aus dem <form>-tag herausziehen können. Die Attribute des <form>-tags geben an, wie das Formular heißt (eine Eigenschaft, die Sie später in Verbindung mit JavaScript in einer Erweiterung des Formulars nutzen können), an welches Skriptdokument die ausgefüllten Formulardaten geschickt Formulare für Benutzereingaben 57

10 werden sollen und ob dies mit einem HTTP-Request vom Typ GET oder POST geschehen soll. Weil wir hier unter Umständen auch eine Datei (das Foto des Spenders) zum Server heraufladen wollen, muss außerdem das enctype-attribut gesetzt werden, und zwar zu multipart/form-data. Versteckte Eingabefelder Als nächstes Formularelement begegnet uns ein etwas seltsames Konstrukt, das wir bisher noch nicht gesehen haben: <input type="hidden" name="ausgabezeit" value="<?php echo time();?>"> Kein Grund zur Panik: Der Typ des Eingabeelements <input> ist hidden (versteckt) das Element soll also absichtlich nicht zu sehen sein. In diesem Fall verwenden wir das Element, um mittels PHP die Formularausgabezeit in das Formular zu schreiben. Dazu nehmen wir die PHP-Funktion time(), die uns die Anzahl der Sekunden angibt, die seit dem 1. Januar 1970, 00:00:00 Uhr GMT, verstrichen sind. Als Inhalt des value-attributs wird dieser Wert unter dem Namen ausgabezeit an den Server zurückgegeben, wenn das Formular ausgefüllt an den Server zurückgeschickt wird. Wozu das Ganze? Versteckte Eingabefelder wie dieses werden in der Praxis recht häufig eingesetzt. Sie ermöglichen dem Server, Daten auf dem Browser zwischenzuspeichern, während das Formular vom Benutzer ausgefüllt wird, und sie beim Einreichen des Formulars wieder zurückzubekommen. Damit ist es beispielsweise möglich, komplizierte Eingabevorgänge über mehrere Formulare zu erstrecken und jedem neuen Formular die Eingabedaten der jeweils vorhergehenden Formulare in versteckter Form wieder beizufügen. In anderen Fällen lassen sich versteckte Felder zur Identifizierung des Benutzers verwenden, was zur Authentifizierung und/oder zur Untersuchung von Benutzerverhalten verwendet werden kann. In unserem Fall könnte uns z.b. interessieren, wie lange ein Benutzer typischerweise braucht, um unser Formular auszufüllen. Vielleicht interessiert uns in diesem Zusammenhang ob Spender größerer Beträge länger brauchen, um sich von ihren Euros zu trennen. Wir könnten den Zeitstempel aber auch dazu verwenden, bei Software-Upgrades eventuell veraltete Formulare anders zu behandeln. Die Benutzung versteckter Eingabefelder zur Benutzeridentifizierung birgt allerdings gewisse Sicherheitsrisiken wir werden das in Kapitel 7 noch näher besprechen. Hier dient das versteckte Element erst einmal dazu, Ihnen zu zeigen, was ein verstecktes Eingabeelement ist: im Prinzip ein Texteingabeelement, dessen Wert bereits gesetzt ist. Wenn die Daten des Elements (Name und Wert/Value) an den Server zurückgeschickt werden, sind sie dort von denen eines gewöhnlichen Texteingabeelements nicht mehr zu unterscheiden. Links 58 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

11 Rechts Texteingabefelder Ein solches gewöhnliches Texteingabefeld ist das nächste Eingabeelement, das uns erwartet: <input type="text" name="spendername" size="80"> Da der Benutzer hier den Wert durch Tastatureingabe selbst setzen soll, ist kein value-attribut angegeben (obwohl dies zur Angabe eines Default-Texts verwendet werden kann). Dafür haben wir die Größe des Texteingabefelds in Zeichen über das size-attribut angegeben. Beachten Sie, dass das size-attribut nur kontrolliert, wie groß das Eingabefeld im Browser dargestellt wird. Sie können hier auch einen Spendernamen eingeben, der über 80 Zeichen lang ist. Für mehrzeilige Texteingaben empfiehlt sich eine <textarea>. Dieses Eingabeelement unterscheidet sich etwas von den üblichen <input>-tags: <textarea name="adresse" rows="4" cols="40"></textarea> Wie ein <input>-tag verfügt auch die Textarea über einen Namen, der zusammen mit dem in der Textarea eingegebenen Text an den Server übergeben wird. Die Größe wird allerdings über die Attribute rows (Zeilen) und cols (Spalten) eingestellt. Ein value-attribut wird nicht verwendet, Default-Texte können stattdessen zwischen das öffnende <textarea>-tag und das abschließende </textarea>-tag geschrieben werden, z.b. so: <textarea name="adresse" rows="4" cols="40"> Geben Sie hier Ihre Adresse ein </textarea> <select>-auswahllisten Das nächste Eingabeelement des Formulars ist ein <select>-auswahlelement. In einem statischen HTML-Formular würde es so aussehen: <select name="betrag"> <option value="5">5 <option value="10">10... <option value="100">100 </select> Hierbei gibt das <select>-tag den Namen an, unter dem der ausgewählte Wert an den Server übergeben wird. Innerhalb des <select>-tags finden wir eine Anzahl von <option>-tags. Das value-attribut des <option>-tags gibt den Wert an, der an den Server übergeben wird, falls der Benutzer die entsprechende Option auswählt. Der Text, der unmittelbar auf ein <option>-tag folgt, ist der Text, der für diese Option in der Auswahlliste angezeigt wird. Soll eine bestimmte Option vorausgewählt werden, kann dies mittels eines selected-attributs im <option>-tag geschehen, dem kein Wert zugewiesen wird: <option value="50" selected>. Formulare für Benutzereingaben 59

12 <option>-tags in PHP mit for-schleifen schreiben In diesem Fall verwenden wir PHP, um uns etwas Schreibarbeit zu ersparen: Links Beispiel 4-4: Automatisierte Ausgabe einer Auswahlliste in spendenformular.php <select name="betrag"> <?php for($i = 5; $i < 101; $i = $i + 5) { echo "<option value=\"".$i."\">".$i." \n";?> </select> Die tragende Konstruktion, die uns hier das Leben leichter macht, ist eine so genannte for-schleife. Eine for-schleife setzen Programmierer immer dann ein, wenn ein bestimmter Vorgang mehrfach durchgeführt werden soll und die Anzahl der Durchläufe vorbestimmt ist. In unserem Fall ist der Vorgang die Angabe von Optionen für sämtliche Euro- Beträge von 5 bis 100 Euro als <option>-tags in Schritten von 5 Euro. Das können wir über die Durchlaufanweisungen der for-schleife arrangieren. Diese Durchlaufanweisungen befinden sich in der runden Klammer, die unmittelbar auf den for- Befehl folgt: ($i = 5; $i < 101; $i = $i + 5). Sie bestehen aus drei Teilen, die jeweils durch ein Semikolon getrennt sind. Der erste Teil enthält (gegebenenfalls durch Kommata getrennte) Instruktionen, die auszuführen sind, bevor die Schleife zum ersten Mal durchlaufen wird. Das heißt, der erste Teil legt die Ausgangsbedingungen fest (Initialisierung). In unserem Fall wird eine Variable $i mit dem Wert 5 geladen. $i repräsentiert die Beträge, die wir in die Optionen schreiben wollen. Programmierer nennen $i auch die Schleifenvariable der for-schleife. Im zweiten Teil steht eine Bedingung, die am Anfang jedes Schleifendurchlaufs erfüllt sein muss, damit die Schleife abgearbeitet wird. Um sicherzustellen, dass $i nicht größer als 100 wird, verlangen wir, dass $i kleiner als 101 sein muss, um die Schleife nochmals zu durchlaufen. Wenn die Bedingung nicht erfüllt ist, wird die Schleife übersprungen. Der dritte Teil der Durchlaufanweisungen wird unmittelbar vor dem Ende jedes Schleifendurchlaufs und dem Testen der Bedingung im zweiten Teil ausgeführt. Er besteht aus (gegebenenfalls durch Kommata getrennten) Instruktionen, die meist der Änderung der Index-Variablen dienen. Hier ist das auch so: Der Euro-Betrag in der Index-Variablen $i muss um 5 heraufgesetzt werden. Zu diesem Zweck addieren wir 5 zum gegenwärtigen Wert von $i und speichern das Resultat zurück in die Variable $i. Die Befehle, die bei jedem Schleifendurchlauf ausgeführt werden sollen, kann man auch im dritten Teil innerhalb der runden Klammern unterbringen. Es ist aber üblicher, sie separat in geschweifte Klammern zu schreiben, die unmittelbar auf die run- 60 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

13 Rechts den Klammern mit den Durchlaufanweisungen folgen. Hier ist nur ein einziger Befehl auszuführen, der sich allerdings über zwei Zeilen erstreckt das ist möglich, weil PHP-Strings sich über mehr als eine Zeile ausdehnen dürfen: echo "<option value=\"".$i."\">".$i." \n"; Die meisten Teile dieses echo-kommandos können Sie sich vermutlich erklären. Der auszugebende String ist aus vier Strings zusammengesetzt: "<option value=\"" $i "\">" $i " \n" Im ersten und dritten String könnte Ihnen das Konstrukt \" unbekannt vorkommen. Dabei handelt es sich um eine Backslash-Escape-Sequenz. Eigentlich ist es ganz einfach: Weil ein doppeltes Anführungszeichen das Ende des Strings markieren würde, können wir es nicht so einfach in den String hineinschreiben. Indem wir einen Backslash (Rückwärtsstrich) voranstellen, können wir PHP mitteilen, dass dieses Anführungszeichen zum eigentlichen String gehört. Der zweite und der vierte Strings sind jeweils Kopien der Variablen $i. Beachten Sie, dass wir in den Durchlaufanweisungen der for-schleife zunächst einen numerischen Wert in $i gespeichert haben, ihn nun aber als String verwenden. Dieser nahtlose Übergang zwischen numerischen Werten und ihren entsprechenden Zeichenketten-Repräsentationen ist eine der großen Stärken von PHP. Im fünften String finden sich zwei Konstrukte, die einer Erklärung bedürfen. ist einfach der HTML-Code für das Euro-Symbol. \n fügt einen Zeilenumbruch am Ende des Strings ein. Das ist zwar für die Funktionalität nicht zwingend erforderlich, macht aber die Fehlersuche im HTML-Quelltext erheblich einfacher, wenn Sie sich im Browser den»seitenquelltext anzeigen«lassen: 20 Optionen in einer Zeile wären vermutlich etwas schwer zu lesen. Dateieingabeelemente Auf das <select>-element folgt das Eingabeelement, das dem Benutzer den Upload seines Konterfeis ermöglicht. Hier gibt es eigentlich nichts Besonderes zu entdecken: <input name="spenderfoto" type="file"> Halt! Eine Besonderheit gibt es doch. Wie bereits erwähnt, müssen Sie bei Formularen, die Datei-Uploads ermöglichen sollen, das enctype-attribut im <form>-tag auf multipart/form-data setzen. Wenn Ihr Formular dann eingereicht wird, ist der Umgang mit der Fotodatei auf der Serverseite ebenfalls etwas komplizierter als mit einfachen Eingabedaten. Aber dazu kommen wir noch ausführlich im nächsten Abschnitt dieses Kapitels. Formulare für Benutzereingaben 61

14 Auswahl mit Radio-Buttons Als Nächstes gilt es, den Typ der Kreditkarte festzulegen, über den die Spende abgerechnet werden soll. Das könnte man mit einem <select>-tag machen, so wie beim Spendenbetrag auch. Eine Alternative zum <select>-tag sind die hier verwendeten Radio-Buttons: Links Beispiel 4-5: Radio-Buttons in spendenformular.php <p><b>kreditkartentyp:</b> <input type="radio" name="kartentyp" value="visa">visa <input type="radio" name="kartentyp" value="mastercard">mastercard <input type="radio" name="kartentyp" value="american Express">American Express </p> Radio-Buttons sind nach den Tasten benannt, die Sie vielleicht noch von alten Radios her kennen: Wenn Sie eine Taste in einer Gruppe drücken, springt jede bereits gedrückte Taste in der Gruppe wieder in ihre Ausgangsposition zurück. Das ist bei Radio-Buttons genauso: Wird ein Button angeklickt, verschwinden die Markierungen aller anderen Buttons in derselben Gruppe. Jeder Radio-Button in einer Gruppe ist ein eigenes Eingabeelement und hat damit sein eigenes <input>-tag. Die Gruppierung erfolgt über das name-attribut des Tags: Buttons mit demselben Namen gehören zur selben Gruppe. In unserem Fall haben wir also drei Buttons, die alle zu der Gruppe kartentyp gehören. Über das value- Attribut wird festgelegt, welcher Wert mit dem ausgefüllten Formular unter dem Namen kartentyp an den Server übergeben wird, wenn der entsprechende Button angeklickt ist. Die -Zeichen (Leerzeichen ohne Zeilenumbruch im Browser) sorgen dafür, dass ein gewisser Mindestabstand zwischen den Optionen eingehalten wird. Das nächste Eingabeelement in unserem Formular, also das Feld für die Kreditkartennummer, dürfte Ihnen weitgehend bekannt vorkommen. Neu ist hier lediglich das maxlength-attribut, das die maximale Anzahl Zeichen festlegt, die der Benutzer über den Browser in dieses Feld eingeben kann. Dies ist aber lediglich eine Anweisung an den Browser in dem Skript, das das Formular letztendlich verarbeitet, dürfen Sie sich auf keinen Fall darauf verlassen, dass unter dem Namen kreditkarte auch tatsächlich ein String mit maximal 20 Zeichen zurückgeliefert wird. Ähnliches gilt auch für das Eingabeelement für das Ablaufdatum der Kreditkarte. Checkboxen Sein oder Nichtsein? Das Kästchen zum Anklicken in der Zeile darunter, das über die Veröffentlichung des Spendernamens entscheidet, ist eine so genannte Checkbox, auch Kontrollkästchen genannt: <input type="checkbox" name="oeffentlich" checked> 62 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

15 Rechts Checkboxen stehen für sich und werden nicht wie Radio-Buttons gruppiert. Wie ein Radio-Button kann eine Checkbox mittels value-attribut dem Server unter dem angegebenen Namen einen Wert übertragen, wenn sie angeklickt ist. Ist die Checkbox nicht angeklickt, wird kein Wert übergeben. Das value-attribut kann auch weggelassen werden der Browser überträgt dann den String on bei angeklickter Checkbox. Das checked-attribut sorgt dafür, dass die Checkbox beim Laden des Formulars zunächst angeklickt erscheint. Als letztes Element im Formular verbleibt der Submit-Button die Schaltfläche, auf die der Benutzer klicken soll, um das Formular an den Server zur Bearbeitung zu schicken: <input type="submit" value="spende abschicken!"> Das value-attribut kontrolliert in diesem Fall die Beschriftung des Buttons. So, damit kennen Sie nun schon fast alle wichtigen Eingabeelemente, die HTML zur Verfügung stellt. In Tabelle 4-1 sind sie noch einmal zusammengefasst: Tabelle 4-1: Wichtige HTML-Tags zur Formulareingabe Tag <input type="text"> <input type="hidden"> <textarea> Wichtige Attribute Bedeutung Anmerkungen name, id, value, size, maxlength name, id, value name, id, rows, cols Texteingabefeld, einzeilig Verstecktes Eingabefeld Textfeld Wert wird über value-attribut vom Server oder über JavaScript vom Browser gesetzt. Default-Wert wird zwischen öffnendes und abschließendes Tag gesetzt. <select> name, id Auswahlliste Enthält <option>-tags mit Optionen. <option> value, selected Option in Auswahlliste <input type="file"> name, id Dateiauswahlfeld für Uploads <input type="radio"> name, id, value, checked Radio-Button <input type="checkbox"> name, id, Checkbox value, checked <input type="submit"> value Button zum Absenden des Formulars Angezeigter Wert wird hinter das Tag geschrieben. Default-Wert kann nicht gesetzt werden; <form>-tag braucht enctype="multipart/formdata". Radio-Buttons gruppieren sich über das gemeinsame name-attribut. Bei unmarkierter Checkbox wird nichts zum Server übertragen. value-attribut kontrolliert die Beschriftung. Damit können wir nun Daten an unseren Server schicken. Sehen wir uns also an, wie der Server auf die Eingabedaten reagieren kann. Formulare für Benutzereingaben 63

16 Probieren Sie s selbst! Mit den oben besprochenen HTML-Formularelementen können Sie unser Formular etwas erweitern. Wie wäre es, wenn Sie noch ein Textfeld für den Namen hinzufügen, der auf der Kreditkarte angegeben ist? Außerdem könnten wir Spender zu Mehrfachspenden animieren, wenn wir eine Auswahlliste hätten, auf der der edle Spender auswählen kann, wie häufig gespendet werden soll: einmal (alle 0 Tage), wöchentlich (alle 7 Tage), monatlich (alle 30 Tage), vierteljährlich (alle 90 Tage) oder jährlich (alle 365 Tage). Die Lösung finden Sie in der Datei spendenformular- Erweitert.php in den Online-Beispielen zu diesem Kapitel. Links Formulardatenverarbeitung durch PHP-Skripte Sobald der Benutzer Ihr Formular ausgefüllt und auf den Submit-Button (oder wie immer Sie ihn beschriftet haben) geklickt hat, werden die Formulardaten an das im action-attribut des <form>-tags angegebene Skript geschickt. Der Wert des action- Attributs wird vom Browser als URL (Webadresse) interpretiert. Falls weder Protokoll noch Server angegeben ist, so wie in unserem Fall, geht der Browser davon aus, dass HTTP zu verwenden ist und dass das Skript auf demselben Server liegt wie das Dokument, das das Formular enthält. Fremdformulare Vorsicht, Falle! Durch die Verwendung des URL-Formats im action-attribut ergibt sich, dass es auch möglich ist, die Daten an ein Skript zu schicken, das auf einem anderen Server liegt. Das kann unter Umständen ganz erwünscht sein beispielsweise können Sie auf Ihrer Homepage ein Eingabeformular für die Suchfunktion einer bekannten Suchmaschine unterbringen, das nach dem Ausfüllen an diese geschickt wird. Als PHP-Autor (oder ASP-, JSP-, CGI-Autor usw.) ergibt sich für Sie damit allerdings auch ein Problem, das oft übersehen wird: Wer garantiert Ihnen eigentlich, dass die Daten, die Ihr Skript bekommt, auch tatsächlich von dem Formular stammen, das Sie für diesen Zweck geschrieben haben? Die Antwort: niemand! Wieso ist das ein Problem? Nun, PHP-Programmierer für Vogelschutz haben oft zunächst einmal den kreuzbraven Konfirmanden von nebenan im Sinn, der einen Teil seines Taschengelds zur Erhaltung eines Reservats spenden will. Der kriminelle Hacker, der an die Kreditkartendaten der Spender gelangen oder gar unsere Server- Maschine als Angriffsplattform in einer verteilten Denial-of-Service-Attacke auf andere Server nutzen will, ist als Zielgruppe vermutlich gedanklich nicht präsent. Da im Internet aber beide Spezies in ausreichender Zahl vorhanden sind und sich zumindest im Prinzip beide für Ihr Skript interessieren, ist Vorsicht angebracht. Ein Skript, das absichtlich mit falschen Daten gefüttert wird, kann unter Umständen: 64 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

17 Rechts Ihre Datenbank mit inkonsistenten Daten füllen und dadurch korrumpieren Daten Ihrer Datenbank Unbefugten zum Lesen oder sogar zum Verändern oder Löschen öffnen, möglicherweise sogar, ohne dass Sie es bemerken s über Ihren Server verschicken, die eventuell vertrauliche Systemdaten oder andere vertrauliche Dateien oder Daten enthalten Programme auf Ihrem Server ausführen und unter Umständen sogar installieren Ihre Webseite ganz oder teilweise durch Inhalte ersetzen, die der Hacker vorgibt Ihren Server in die Knie zwingen Ihnen den Zugang zu Ihren eigenen Daten versperren Dieses Problem ist übrigens nicht PHP-spezifisch, es betrifft alle Web-Technologien, die an der Schnittstelle zwischen benutzervorgegebenen Daten und der Intimsphäre des Servers sitzen, also auch CGI, Active Server Pages, Java Server Pages, mod_perl, Servlets usw. Entsprechend groß ist die Anzahl der Server, die durch Sicherheitslücken in Skripten»geknackt«worden sind. Viele dieser Angriffe gehen auf das Konto von CGI- Skripten mit bekannten Sicherheitsproblemen, die z.t. in den Distributionen von bekannten Webservern enthalten waren. Es bedarf keines hochbegabten Hackers, um Internetadressen und Webserver nach dem Vorhandensein dieser (oft von den eigentlichen Benutzern nicht verwendeten) Skripte abzusuchen. Ähnlich verhält es sich mit einer ganzen Reihe von Skripten, die kostenlos zum Download angeboten werden. Wie kommt es zu solchen Sicherheitslücken, die auch»alte Hasen«oft nicht erkennen? Dafür gibt es hauptsächlich zwei Gründe: Erstens, Programmierer sind traditionell darauf aus, etwas»zum Laufen zu bekommen«. Deshalb achten sie bevorzugt darauf, dass ein Programm das macht, was es soll. Der Aspekt, dass ein Programm nicht machen darf, was es nicht machen sollte, ist meist eher zweitrangig (die wenigsten Programmierer werden dafür bezahlt, dass ihr Programm etwas nicht macht). Der zweite Grund besteht in der hohen Komplexität moderner Programmiersprachen: Manche Befehle können sich unter»unvorhergesehenen«eingabebedingungen komplett anders verhalten, als ein Programmierer dies beabsichtigt. Diese Warnung sollte Ihnen aber jetzt keinesfalls den Mut nehmen, selbst Hand an die PHP-Programmierung zu legen. Im Gegenteil: Nun, da Ihre Aufmerksamkeit geweckt ist, werden wir an den entsprechenden Stellen sicherheitsrelevante Fragen stellen und auf Gefahren und ihre Vermeidung aufmerksam machen. Das sollte Ihren Blick genügend schärfen, um typische Anfängerfehler vermeiden zu können und Ihre Skripte ausreichend sicher zu halten. Formulardatenverarbeitung durch PHP-Skripte 65

18 Links Apropos Anfängerfehler: Eine Sammlung häufig wiederkehrender Sicherheitsfragen rund um Server und Skripte finden Sie in der WWW-Security-FAQ von Lincoln Stein und John Stewart unter Datenübergabe an das Skript und Überprüfung der Daten Ihr Benutzer hat also Ihr Formular ausgefüllt und schickt es von seinem Browser an Ihren Server. Idealerweise sollten jetzt zwei Dinge passieren: Die Daten sollten in einer geeigneten Datenbank abgelegt werden, und dem Browser des Benutzers sollte eine Bestätigung der Eingabe zugesandt werden. Egal ob Sie Formulardaten in einer Datenbank speichern wollen oder ob Sie sie nur zur Erzeugung einer Webseite benötigen: Sie müssen diese Daten in Ihrem Skript zur Verfügung haben. Wie Sie die Daten in Ihre Datenbank bekommen, besprechen wir in Kapitel 6. In diesem Abschnitt sehen wir uns zunächst an, wie Sie in Ihrem Skript auf die vom Browser gesendeten Daten zugreifen können, wie Sie diese auf Plausibilität prüfen und wie Sie dem Benutzer Rückmeldung über seine Eingaben bzw. Fehleingaben geben können. In Abbildung 4-3 sehen Sie, wie eine Rückmeldung unseres Skripts an den (fiktive) Benutzer des Spendenformulars aussieht. Abbildung 4-3: Die von spende.php versandte Spendenbestätigung Damit ist es jetzt höchste Zeit, uns den Skriptcode in spende.php anzusehen: Beispiel 4-6: Der Code von spende.php <?php // Dieses Skript empfängt die Daten des Spendenformulars. 66 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

19 Rechts Beispiel 4-6: Der Code von spende.php (Fortsetzung) // Die Daten werden überprüft und dem Benutzer zur Bestätigung angezeigt. $hack = false; // Diese Boolsche Variable zeigt an, // ob ein Benutzer inkorrekte Daten eingegeben hat // - das könnte sogar ein Hacking-Versuch sein. // Daten der Bequemlichkeit wegen aus $_POST auslesen: $spendername = $_POST["spenderName"]; $adresse = $_POST["adresse"]; $betrag = $_POST["betrag"]; $kartentyp = $_POST["kartenTyp"]; $kreditkarte = $_POST["kreditKarte"]; $ablaufdatum = $_POST["ablaufDatum"]; $oeffentlich = $_POST["oeffentlich"]; $ausgabezeit = $_POST["ausgabeZeit"]; // Überprüfung der Daten: // $spendername kann ein beliebiger String sein, aber er sollte nicht leer sein! if ($spendername == "") { $hack = true; $feld = "Name"; // $adresse kann auch ein beliebiger nicht-leerer String sein: if ($adresse == "") { $hack = true; $feld = "Adresse"; // Der Betrag muss eine ganze Zahl zwischen 5 und 100 sein: if (!preg_match("/^\d*[05]$/", $betrag)) { // nicht durch 5 teilbar? $hack = true; $feld = "Betrag"; if (($betrag < 5) ($betrag > 100)) { $hack = true; $feld = "Betrag"; // Der Kartentyp sollte Visa oder Mastercard sein: switch ($kartentyp) { case "Visa": break; case "Mastercard": break; default: $hack = true; $feld = "Kartentyp"; // Die Kartennummer sollte aus 15 oder 16 Ziffern bestehen, // die durch nichts, ein Leerzeichen oder einen Bindestrich getrennt sind: if (!preg_match("/^(\d[\s\-]?){15,16$/", $kreditkarte)) { $hack = true; $feld = "Kartennummer"; // Das Ablaufdatum sollte aus vier Ziffern bestehen, wobei die ersten beiden // zwischen 01 und 12 liegen sollten, die dritte (noch) eine 0 sein sollte // und die vierte jetzt zwischen 4 und 9 liegen sollte (es sei denn, die Karte // läuft nach 2009 ab, was im Moment noch unwahrscheinlich ist): if (!preg_match("/^(\d{2)0[4-9]$/", $ablaufdatum, $match)) { $hack = true; $feld = "Kreditkarten-Ablaufdatum"; Formulardatenverarbeitung durch PHP-Skripte 67

20 Beispiel 4-6: Der Code von spende.php (Fortsetzung) else { if (($match[1] < 1) ($match[1] > 12)) { $hack = true; $feld = "Kreditkarten-Ablaufdatum"; // Die Checkbox ist entweder leer, "on", oder jemand versucht zu hacken: if (($oeffentlich!= "") && ($oeffentlich!= "on")) { $hack = true; $feld = "Öffentliche Spende"; // Die Formularausgabezeit muss eine ganze Zahl sein: if (!preg_match("/^\d+$/", $ausgabezeit)) { $hack = true; $feld = "Formularausgabezeit"; // Wurde ein Foto geschickt? if ($_FILES["spenderFoto"]["size"] > 0) { $foto = true; preg_match("/(\.\w+)$/", $_FILES["spenderFoto"]["name"],$match); $typ = $match[1]; // Wir erlauben nur Erweiterungen von Bilddateien, damit die Leute // stattdessen keine PHP-Skripte einschmuggeln können. if (in_array( strtolower($typ), array(".gif",".bmp",".jpg",".png",".jpeg"))) { $dateiname = uniqid("").$typ; $bildpfad = preg_replace("/\/[^\/]+$/","", $_SERVER["SCRIPT_FILENAME"])."/Bilder/"; copy($_files["spenderfoto"]["tmp_name"], $bildpfad.$dateiname); else { $foto = false; Links // Bei inkorrekten Eingaben eine Fehlermeldung anzeigen: if ($hack) {?> <?php <html> <body> <h1>eingabefehler</h1> Ihre Eingabe im Feld <b><?php echo $feld;?></b> war inkorrekt. </body> </html> 68 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

21 Rechts Beispiel 4-6: Der Code von spende.php (Fortsetzung) exit(); // Skript beenden! // An diesem Punkt fügen wir später den Code ein, der die // überprüften Daten in die Datenbank schreibt. // Daten zur Bestätigung an den Benutzer ausgeben:?> <html> <body> <h1>liebe(r) <?php echo $spendername;?></h1> <p>haben Sie vielen Dank für Ihre Spende über <?php echo $betrag;?>. Eine Spendenquittung schicken wir an Ihre Adresse:</p> <p><b><?php echo stripslashes(preg_replace("/\r?\n/","<br>", $adresse));?></b></p> <p>die Spende wird von Ihrer <b><?php echo $kartentyp;?></b>-kreditkarte mit Nummer:</p> <p><b><?php echo $kreditkarte;?></b> gültig bis <b><?php echo $ablaufdatum;?></b> abgebucht.</p> <?php if ($foto) {?> <p>ihr Foto sehen Sie hier:<br> <img src="<?php echo "Bilder/".$dateiName;?>"></p> <?php?> <p>wir nehmen zur Kenntnis, dass wir Ihren Namen <?php if ($oeffentlich == "") { echo "nicht";?> veröffentlichen dürfen.</p> <p>sie haben <?php echo (time() - $ausgabezeit);?> Sekunden zum Ausfüllen unseres Formulars gebraucht</p>. </body> </html> Wie Sie sehen können, ist dieser Code ziemlich umfangreich, deswegen werden wir ihn uns Schritt für Schritt ansehen. Als erste Amtshandlung definieren wir eine Variable namens $hack, die den Booleschen Wahrheitswert false zugewiesen bekommt. Damit legen wir fest, dass wir zu Beginn der Skriptausführung keinen Hinweis darauf haben, dass eine (absichtliche oder unabsichtliche) Fehleingabe des Benutzers vorliegt. Sobald wir einer solchen Fehleingabe auf die Spur kommen, werden wir die Variable auf true setzen, um anzuzeigen, dass ein Problem vorliegt. Wenn die Variable nach Überprüfung aller Formulardaten immer noch auf false steht, wissen wir, dass es kein erkennbares Problem gegeben hat. Formulardatenverarbeitung durch PHP-Skripte 69

22 Die einfachen Formulardaten, die wir mittels eines HTTP-Requests mit der POST- Methode an das Skript geschickt haben, finden sich in einem globalen assoziativen Array namens $_POST, das PHP automatisch zur Verfügung stellt. Links In PHP-Versionen vor 4.10 gibt es $_POST noch nicht. Wenn Sie eine niedrigere Version einsetzen, gibt es ein äquivalentes Array namens $HTTP_POST_VARS, das aber nur bei entsprechender (Default-)Konfiguration (track_vars on in der Konfigurationsdatei php.ini) zur Verfügung steht. Wir kopieren die Daten zunächst in»handlichere«einfache Variablen um: $spendername = $_POST["spenderName"]; $adresse = $_POST["adresse"]; $betrag = $_POST["betrag"]; $kartentyp = $_POST["kartenTyp"]; $kreditkarte = $_POST["kreditKarte"]; $ablaufdatum = $_POST["ablaufDatum"]; $oeffentlich = $_POST["oeffentlich"]; $ausgabezeit = $_POST["ausgabeZeit"]; Die Schlüsselwerte für das assoziative Array entsprechen hier den Namen der Eingabeelemente in unserem Formular, die dort jeweils im name-attribut des entsprechenden Eingabeelements definiert sind. Sie werden vielleicht bemerkt haben, dass die Daten für die optionale Bilddatei hier nicht auftauchen. Dateien, die an den Server geschickt werden, werden unter PHP etwas anders behandelt, wie wir gleich sehen werden. Zunächst einmal ist es aber gute Praxis, sich die Eingabedaten genauer anzusehen. Das ermöglicht Ihnen erstens, dem Benutzer bei Fehleingaben entsprechend Bescheid geben zu können. Zweitens macht es potenziellen Hackern das Leben etwas schwerer, weil ungewöhnliche Eingaben wahrscheinlich abgelehnt werden. Überprüfung von Namenseingaben Die genauen Prüfungen, denen Sie die Eingabedaten unterziehen, hängen in der Regel von Ihren Erwartungen an die Daten ab. In einigen Fällen ist es recht einfach, z.b. weil es so viele unterschiedliche zulässige Eingaben gibt, dass es am besten ist, fast alles zuzulassen. Bei Namen und Adressen beispielsweise können fast alle Zeichen vorkommen. Deshalb ist es oft besser, nur darauf zu bestehen, dass die entsprechende Zeichenkette nicht leer ist, wie hier im Fall des Spendernamens: if ($spendername == "") { $hack = true; $feld = "Name"; Die gleiche Prüfung wird auch für die Adresse ausgeführt. Die hier zur Prüfung verwendeten Konstrukte sind sogenannte if-statements. In PHP bestehen sie aus dem reservierten Wort if, einer Bedingung in runden Klammern und einer oder mehre- 70 Kapitel 4: Einstieg in die Programmierung: Einfache PHP-Skripte

23 Rechts ren PHP-Anweisungen in geschweiften Klammern. Wenn die Bedingung erfüllt ist, werden die Anweisungen in den geschweiften Klammern ausgeführt, wenn nicht, übergeht PHP diese Anweisungen. In unserem konkreten Fall bedeutet das, dass die Variable $spendername (und damit die aus dem Eingabeelement spendername an den Server geschickten Daten) leer sein muss, damit die Bedingung erfüllt ist: $spendername muss gleich dem leeren String sein, der durch zwei einfache ('') oder zwei doppelte ("") Anführungszeichen ausgedrückt wird. Beachten Sie auch, dass die»gleichheit«zweier Ausdrücke in PHP durch ein doppeltes Gleichheitszeichen (==) ausgedrückt wird. Dadurch ist eine klare Unterscheidung zu Wertzuweisungsbefehlen gegeben, wie sie z.b. hier in den geschweiften Klammern verwendet werden. Bedingungen und Vergleichsoperatoren Jetzt ist uns schon zum zweiten Mal eine Bedingung begegnet erinnern Sie sich noch an die for-schleife im letzten Abschnitt, die uns die <option>-tags für den Spendenbetrag an den Browser ausgab? Dort stand in der for-schleife ebenfalls eine Bedingung, die darüber entschied, ob die for-schleife ein weiteres Mal durchlaufen wurde oder nicht. Bedingungen können in PHP an allen möglichen Stellen vorkommen, nicht nur in for- oder if-statements. Höchste Zeit also, dass wir uns ansehen, wie wir eine Bedingung formulieren. Eine Bedingung ist ein Ausdruck, der von PHP entweder als true (wahr) oder als false (falsch) ausgewertet wird. Als false betrachtet PHP außerdem leere Strings, den numerischen Wert 0 sowie leere Arrays. Alle anderen Zahlen, Zeichenketten und Arrays wertet PHP als true. Da sowohl die Werte true als auch false in PHP-Variablen gespeichert werden können, kann eine Bedingung beispielsweise auch aus einer PHP-Variablen bestehen. In der folgenden Zeile wird z.b. immer "Hallo" ausgegeben: $x = true; if ($x) { echo "Hallo!"; Ebenso können diese Werte der Rückgabewert einer Funktion sein, so dass eine Funktion auch als Bedingung herhalten kann. Ein Beispiel dafür ist preg_match() in diesem Kapitel. Sehr oft findet man aber noch eine dritte Variante von Bedingungen: Vergleiche. In diesem Fall (wie z.b. bei der Überprüfung des Spendernamens) vergleichen wir einen Ausdruck (hier den übergebenen Spendernamen) mit einem zweiten Ausdruck (in unserem Fall dem leeren String ""). Für den Vergleich benutzen wir den Operator ==. Es gibt aber noch andere Operatoren, die zu solchen Vergleichen verwendet werden können. Einen haben Sie schon in unserem Spendenformular kennen gelernt, den»kleiner als«-operator < nämlich. Formulardatenverarbeitung durch PHP-Skripte 71

PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03

PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03 PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03 Bei dem vierten Teil geht es um etwas praktisches: ein Emailformular, dass man auf der eigenen

Mehr

Schiller-Gymnasium Hof 20.12.2004

Schiller-Gymnasium Hof 20.12.2004 Erstellen eines HTML-Dokumentes Zum Erstellen einer Homepage benötigen wir lediglich einen Editor. Zum Ansehen der fertigen Site benötigen wir wir natürlich auch einen Browser, z.b. Firefox oder Netscape

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis www.wir-lieben-shops.de 1

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis www.wir-lieben-shops.de 1 Beispiel Shop-Eintrag Ladenlokal & Online-Shop. Als Händler haben Sie beim Shop-Verzeichnis wir-lieben-shops.de die Möglichkeit einen oder mehrere Shop- Einträge zu erstellen. Es gibt 3 verschiedene Typen

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten Anleitung zum Login über die Mediteam- Homepage und zur Pflege von Praxisnachrichten Stand: 18.Dezember 2013 1. Was ist der Mediteam-Login? Alle Mediteam-Mitglieder können kostenfrei einen Login beantragen.

Mehr

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon.

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon. www.blogger.com Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon. Sie müssen sich dort nur ein Konto anlegen. Dafür gehen Sie auf

Mehr

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

IT-Zertifikat: Allgemeine Informationstechnologien II PHP IT-Zertifikat: Allgemeine Informationstechnologien II PHP PHP ( PHP: Hypertext Preprocessor ) ist eine serverseitige Skriptsprache: Der PHP-Code wird nicht wie bei JavaScript auf dem Clientrechner ausgeführt,

Mehr

5. Übung: PHP-Grundlagen

5. Übung: PHP-Grundlagen 5.1. Erstes PHP-Programm 1. Schreiben Sie PHP-Programm innerhalb einer Webseite, d.h. innerhalb eines HTML-Dokument. Ihr PHP-Programm soll einen kurzen Text ausgeben und Komentare enthalten. Speichern

Mehr

Erklärung zum Internet-Bestellschein

Erklärung zum Internet-Bestellschein Erklärung zum Internet-Bestellschein Herzlich Willkommen bei Modellbahnbau Reinhardt. Auf den nächsten Seiten wird Ihnen mit hilfreichen Bildern erklärt, wie Sie den Internet-Bestellschein ausfüllen und

Mehr

Inhalt. Technische Beschreibung - MEDIA3000 NEWSLETTERMODUL-PRO

Inhalt. Technische Beschreibung - MEDIA3000 NEWSLETTERMODUL-PRO Inhalt 01. Nachrichten (Newsletter erstellen) 02. Empfänger 03. Newsletter (Gruppen anlegen) 04. Nachrichtenvorlagen 05. Mailvorlagen 06. Einstellungen 07. Steuerzeichen 08. Newsletter testen Tipps und

Mehr

Schritt 1 - Registrierung und Anmeldung

Schritt 1 - Registrierung und Anmeldung Schritt 1 - Registrierung und Anmeldung Anmeldung: Ihre Zugangsdaten haben Sie per EMail erhalten, bitte melden Sie sich mit diesen auf www.inthega-datenbank.de an. Bitte merken Sie sich die Zugangsdaten

Mehr

Anleitung für die Registrierung und das Einstellen von Angeboten

Anleitung für die Registrierung und das Einstellen von Angeboten Anleitung für die Registrierung und das Einstellen von Angeboten Das FRROOTS Logo zeigt Ihnen in den Abbildungen die wichtigsten Tipps und Klicks. 1. Aufrufen der Seite Rufen Sie zunächst in Ihrem Browser

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Tevalo Handbuch v 1.1 vom 10.11.2011

Tevalo Handbuch v 1.1 vom 10.11.2011 Tevalo Handbuch v 1.1 vom 10.11.2011 Inhalt Registrierung... 3 Kennwort vergessen... 3 Startseite nach dem Login... 4 Umfrage erstellen... 4 Fragebogen Vorschau... 7 Umfrage fertigstellen... 7 Öffentliche

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz Diese Anleitung soll als Kurzreferenz und Schnellanleitung dienen um einfach und schnell Berichte auf der Homepage www.dav-koblenz.de

Mehr

Einfügen von Bildern innerhalb eines Beitrages

Einfügen von Bildern innerhalb eines Beitrages Version 1.2 Einfügen von Bildern innerhalb eines Beitrages Um eigene Bilder ins Forum einzufügen, gibt es zwei Möglichkeiten. 1.) Ein Bild vom eigenem PC wird auf den Webspace von Baue-die-Bismarck.de

Mehr

Standard-Kontaktformular

Standard-Kontaktformular Online-Tutorials Referat VI.5 Internetdienste Standard-Kontaktformular Legen Sie ein neues Dokument an Klicken Sie die Datei an, unter der Sie das Kontaktformular anlegen möchten Legen Sie über Datei >

Mehr

Aufgaben HTML Formulare. Prof. Dr. rer. nat. Claus Brell, http://claus-brell.de, claus.brell@hs-niederrhein.de, Wirtschaftsinformatik, Statistik

Aufgaben HTML Formulare. Prof. Dr. rer. nat. Claus Brell, http://claus-brell.de, claus.brell@hs-niederrhein.de, Wirtschaftsinformatik, Statistik 1 Aufgaben HTML Formulare Aufgabe 1 (Vorbereitung) Google Suche 2 Probieren vor Studieren.. Arbeitsauftrag: 1.) Fügen Sie mit Notepad++ in Ihrer Datei index.html den unten gezeigten Quelltextschnipsel

Mehr

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Wie erzeugt man ein Fotobuch im Internet bei Schlecker Seite Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Punkt 12 bis 24: -Wir arbeiten mit der Software 8-16 -Erstellung

Mehr

Einkaufslisten verwalten. Tipps & Tricks

Einkaufslisten verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Grundlegende Informationen 3 1.2 Einkaufslisten erstellen 4 1.3 Artikel zu einer bestehenden Einkaufsliste hinzufügen 9 1.4 Mit einer Einkaufslisten einkaufen 12 1.4.1 Alle

Mehr

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen? Anleitung für Evident Seite 1 Anleitung für Evident-Anwender: Einbinden der MIZ-Dokumente in Evident. Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen? Zunächst müssen Sie entscheiden,

Mehr

Textgestaltung mit dem Editor TinyMCE Schritt für Schritt

Textgestaltung mit dem Editor TinyMCE Schritt für Schritt Textgestaltung mit dem Editor TinyMCE Schritt für Schritt Folgender Artikel soll veröffentlicht und mit dem Editor TinyMCE gestaltet werden: Eine große Überschrift Ein Foto Hier kommt viel Text. Hier kommt

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Summenbildung in Bauteiltabellen mit If Then Abfrage

Summenbildung in Bauteiltabellen mit If Then Abfrage Summenbildung in Bauteiltabellen mit If Then Abfrage Die in Bauteiltabellen ausgelesenen Werte lassen sich in jeder Spalte als Summe berechnen. So können selbstverständlich die Flächen der in der Tabelle

Mehr

TYPO3-Zusatzkurs für www.durlacher.de

TYPO3-Zusatzkurs für www.durlacher.de TYPO3-Zusatzkurs für www.durlacher.de In diesem Zusatzkurs (Kapitel 14 bis 18) gehen wir die Dinge an, die im alltäglichen Umgang mit TYPO3 auf www.durlacher.de hilfreich sind. Verschieben, Löschen, Blind

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das

Mehr

E-Mail-Verschlüsselung mit S/MIME

E-Mail-Verschlüsselung mit S/MIME E-Mail-Verschlüsselung mit S/MIME 17. November 2015 Inhaltsverzeichnis 1 Zertifikat erstellen 1 2 Zertifikat speichern 4 3 Zertifikat in Thunderbird importieren 6 4 Verschlüsselte Mail senden 8 5 Verschlüsselte

Mehr

MOM - Medienforum Online-Medien Anleitung zum Ändern der Login-Nummer und des Passworts

MOM - Medienforum Online-Medien Anleitung zum Ändern der Login-Nummer und des Passworts Fall 1: Sie wollen die schwer zu merkenden Zugangsdaten des Medienforums ändern Gehen Sie auf die Seite des MOM-Katalogs und klicken Sie rechts auf der Seite auf anmelden Es erscheinen die Eingabefelder

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Zweck dieser Anleitung ist es einen kleinen Überblick über die Funktion Last Minute auf Swisshotelportal zu erhalten. Für das erstellen

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Handbuch ECDL 2003 Basic Modul 3: Textverarbeitung Serienbrief erstellen - Datenquelle

Handbuch ECDL 2003 Basic Modul 3: Textverarbeitung Serienbrief erstellen - Datenquelle Handbuch ECDL 2003 Basic Modul 3: Textverarbeitung Serienbrief erstellen - Datenquelle Dateiname: ecdl3_05_01_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 3 Textverarbeitung

Mehr

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011 Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011 Studiengang: Semester: 3. Gruppe: Wirtschaftsinformatik A & B Datum: 29.06.2011 Dozent: LfbA Dipl.-Hdl. Andreas Heß Hilfsmittel: alle Unterlagen/Bücher

Mehr

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Version 1.0 Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten In unserer Anleitung zeigen wir Dir, wie Du Blogbeiträge

Mehr

Leitfaden zur Nutzung des System CryptShare

Leitfaden zur Nutzung des System CryptShare Leitfaden zur Nutzung des System CryptShare 1. Funktionsweise und Sicherheit 1.1 Funktionen Die Web-Anwendung CryptShare ermöglicht den einfachen und sicheren Austausch vertraulicher Informationen. Von

Mehr

HTML Programmierung. Aufgaben

HTML Programmierung. Aufgaben HTML Programmierung Dr. Leander Brandl BRG Keplerstraße - A-8020 Graz Universität Graz - Institut für Experimentalphysik Fachdidaktik der Physik http://w4.brgkepler.asn-graz.ac.at 1. Die erste Web-Seite

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Die Dateiablage Der Weg zur Dateiablage

Die Dateiablage Der Weg zur Dateiablage Die Dateiablage In Ihrem Privatbereich haben Sie die Möglichkeit, Dateien verschiedener Formate abzulegen, zu sortieren, zu archivieren und in andere Dateiablagen der Plattform zu kopieren. In den Gruppen

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Frames oder Rahmen im Browserfenster

Frames oder Rahmen im Browserfenster In dieser Ausbildungseinheit zeigen wir Ihnen, wie Frames oder auch Rahmen im Browserfenster erstellt werden. Dabei möchten wir anmerken, dass zu Frames bereits sehr viel Gegensätzliches geschrieben wurde.

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Was man mit dem Computer alles machen kann

Was man mit dem Computer alles machen kann Was man mit dem Computer alles machen kann Wie komme ich ins Internet? Wenn Sie einen Computer zu Hause haben. Wenn Sie das Internet benutzen möchten, dann brauchen Sie ein eigenes Programm dafür. Dieses

Mehr

Newsletter. 1 Erzbistum Köln Newsletter

Newsletter. 1 Erzbistum Köln Newsletter Newsletter 1 Erzbistum Köln Newsletter Inhalt 1. Newsletter verwalten... 3 Schritt 1: Administration... 3 Schritt 2: Newsletter Verwaltung... 3 Schritt 3: Schaltflächen... 3 Schritt 3.1: Abonnenten Verwaltung...

Mehr

Ihr CMS für die eigene Facebook Page - 1

Ihr CMS für die eigene Facebook Page - 1 Ihr CMS für die eigene Facebook Page Installation und Einrichten eines CMS für die Betreuung einer oder mehrer zusätzlichen Seiten auf Ihrer Facebook Page. Anpassen der "index.php" Installieren Sie das

Mehr

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von: http://www.firstsurf.de/klietm9950_f.

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von: http://www.firstsurf.de/klietm9950_f. Themen neu 3 Was lernen Sie hier? Sie formulieren Ihre Vermutungen und Meinungen. Was machen Sie? Sie erklären Wörter und Ausdrücke und beurteilen Aussagen. Einkaufen im Internet Lektion 5 in Themen neu

Mehr

DIE ZUKUNFT BEGINNT JETZT: ELEKTRONISCHE UNTERSCHRIFT

DIE ZUKUNFT BEGINNT JETZT: ELEKTRONISCHE UNTERSCHRIFT DIE ZUKUNFT BEGINNT JETZT: ELEKTRONISCHE UNTERSCHRIFT Neue Dokumente hochladen Neue Dokumente hochladen Loggen Sie sich auf unserer Homepage ein, um neue Dokumente bei insign hochzuladen. Neue Dokumente

Mehr

Internationales Altkatholisches Laienforum

Internationales Altkatholisches Laienforum Internationales Altkatholisches Laienforum Schritt für Schritt Anleitung für die Einrichtung eines Accounts auf admin.laienforum.info Hier erklären wir, wie ein Account im registrierten Bereich eingerichtet

Mehr

ÖKB Steiermark Schulungsunterlagen

ÖKB Steiermark Schulungsunterlagen ÖKB Steiermark Schulungsunterlagen Fotos von Online-Speicher bereitstellen Da das hinzufügen von Fotos auf unsere Homepage recht umständlich und auf 80 Fotos begrenzt ist, ist es erforderlich die Dienste

Mehr

Anleitungen für User der Seite TSV AustriAlpin Fulpmes. So erstellen Sie einen Bericht (Beitrag) auf der TSV-AustriAlpin Fulpmes Homepage.

Anleitungen für User der Seite TSV AustriAlpin Fulpmes. So erstellen Sie einen Bericht (Beitrag) auf der TSV-AustriAlpin Fulpmes Homepage. So erstellen Sie einen Bericht (Beitrag) auf der TSV-AustriAlpin Fulpmes Homepage. Seite 1 Walter Mayerhofer 2012 1.) ANMELDUNG Melden Sie sich mit Ihrem Benutzernamen und Passwort an. Als allererstes

Mehr

1 Konto für HBCI/FinTS mit Chipkarte einrichten

1 Konto für HBCI/FinTS mit Chipkarte einrichten 1 Konto für HBCI/FinTS mit Chipkarte einrichten Um das Verfahren HBCI/FinTS mit Chipkarte einzusetzen, benötigen Sie einen Chipkartenleser und eine Chipkarte. Die Chipkarte erhalten Sie von Ihrem Kreditinstitut.

Mehr

EINFACHES HAUSHALT- KASSABUCH

EINFACHES HAUSHALT- KASSABUCH EINFACHES HAUSHALT- KASSABUCH Arbeiten mit Excel Wir erstellen ein einfaches Kassabuch zur Führung einer Haushalts- oder Portokasse Roland Liebing, im November 2012 Eine einfache Haushalt-Buchhaltung (Kassabuch)

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Serienbrief aus Outlook heraus Schritt 1 Zuerst sollten Sie die Kontakte einblenden, damit Ihnen der Seriendruck zur Verfügung steht. Schritt 2 Danach wählen Sie bitte Gerhard Grünholz 1 Schritt 3 Es öffnet

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie kann ich E-Mails schreiben? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory E-Mails schreiben können. In myfactory können Sie jederzeit schnell und einfach E-Mails verfassen egal

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Die Textvorlagen in Microsoft WORD und LibreOffice Writer Die Textvorlagen in Microsoft WORD und LibreOffice Writer Liebe Teilnehmer(-innen) am Landeswettbewerb Deutsche Sprache und Literatur Baden- Württemberg, Diese Anleitung soll Ihnen helfen Ihren Wettbewerbsbeitrag

Mehr

Konfiguration eines DNS-Servers

Konfiguration eines DNS-Servers DNS-Server Grundlagen des Themas DNS sind im Kapitel Protokolle und Dienste in meinem Buch (LINUX erschienen im bhv-verlag) beschrieben. Als Beispiel dient ein Intranet mit mehreren Webservern auf verschiedenen

Mehr

Schritt für Schritt durch Stiftungen online :

Schritt für Schritt durch Stiftungen online : Schritt für Schritt durch Stiftungen online : Stiftungen online ist ein Service, den der Bundesverband Deutscher Stiftungen seinen Mitgliedern bietet. Mit Ihren Zugangsdaten (Benutzername und Kennwort)

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Anleitung: Mailinglisten-Nutzung

Anleitung: Mailinglisten-Nutzung Anleitung: Mailinglisten-Nutzung 1 Mailingliste finden Eine Übersicht der öffentlichen Mailinglisten des Rechenzentrums befindet sich auf mailman.unihildesheim.de/mailman/listinfo. Es gibt allerdings noch

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

zum hochladen von Dateien klicken Sie auf den am unteren Bildrand befindlichen Button "Dateien hinzufügen"

zum hochladen von Dateien klicken Sie auf den am unteren Bildrand befindlichen Button Dateien hinzufügen Melden Sie sich, wie in unserer Mail an Sie von info@bürgervereingundelfingen.de beschrieben wurde, mit Ihrem perönlichen Zugang zum Onlinespeicher des HBV an. Um auf den HBV Onlinespeicher zu gelangen,

Mehr

Computeria Rorschach Mit Excel Diagramme erstellen

Computeria Rorschach Mit Excel Diagramme erstellen Mit Excel Diagramme erstellen 25.12.2010 Roland Liebing Mit Excel Diagramme erstellen Diagramme können Zahlenwerte veranschaulichen, das heisst, mit Hilfe eines Diagramms können Zahlen besser miteinander

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Stammdatenanlage über den Einrichtungsassistenten

Stammdatenanlage über den Einrichtungsassistenten Stammdatenanlage über den Einrichtungsassistenten Schritt für Schritt zur fertig eingerichteten Hotelverwaltung mit dem Einrichtungsassistenten Bitte bereiten Sie sich, bevor Sie starten, mit der Checkliste

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

BEDIENUNGSANLEITUNG: EINREICH-TOOL

BEDIENUNGSANLEITUNG: EINREICH-TOOL BEDIENUNGSANLEITUNG: EINREICH-TOOL Bewerber können ihre maximal 60 Minuten langen Beiträge in neun Kategorien bis zum 07.04.2015 per Upload über die Website www.oesterreichischer-radiopreis.at einreichen.

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Erstellen einer PostScript-Datei unter Windows XP

Erstellen einer PostScript-Datei unter Windows XP Erstellen einer PostScript-Datei unter Windows XP Sie möchten uns Ihre Druckvorlage als PostScript-Datei einreichen. Um Fehler in der Herstellung von vorneherein auszuschließen, möchten wir Sie bitten,

Mehr

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach 34 70 17 28339 Bremen. Friedrich-Mißler-Straße 42 28211 Bremen

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach 34 70 17 28339 Bremen. Friedrich-Mißler-Straße 42 28211 Bremen Grontmij GmbH Postfach 34 70 17 28339 Bremen Friedrich-Mißler-Straße 42 28211 Bremen T +49 421 2032-6 F +49 421 2032-747 E info@grontmij.de W www.grontmij.de DELFI Benutzeranleitung Dateiversand für unsere

Mehr

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11 Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl

Mehr

Öffnen Sie die Albelli Gestaltungssoftware

Öffnen Sie die Albelli Gestaltungssoftware In 10 Schritten zu Ihrem ersten Fotobuch Anleitung Ab Windowsversion 7.4 1 Wählen Sie Ihre besten Fotos aus. Wenn Sie wissen, welche Fotos Sie verwenden möchten, speichern Sie sie am besten in einem Ordner

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden. Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden. Nach den Änderungen die Facebook vorgenommen hat ist es einfacher und auch schwerer geworden eigene Seiten einzubinden und

Mehr

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO

Mehr

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Um mit IOS2000/DIALOG arbeiten zu können, benötigen Sie einen Webbrowser. Zurzeit unterstützen wir ausschließlich

Mehr

Seriendruck mit der Codex-Software

Seriendruck mit der Codex-Software Seriendruck mit der Codex-Software Seriendruck mit der Codex-Software Erstellen der Seriendruck-Datei in Windach Sie können aus der Adressverwaltung von Windach eine sogenannte Seriendruck-Datei erstellen,

Mehr

Hinweise zum neuen Buchungssystem

Hinweise zum neuen Buchungssystem Hinweise zum neuen Buchungssystem Login / Logout Öffnen Sie in Ihrem Browser die Seite www.stadtteilauto.info. Rechts oben finden Sie das Kundenlogin. Oder verwenden Sie den Buchen Button. Erster Login

Mehr

Grafstat Checkliste Internetbefragung

Grafstat Checkliste Internetbefragung Grafstat Checkliste Internetbefragung ( A ) Datensammelpunkt im Formular eintragen ( B ) Befragung auf dem Datensammelpunkt anmelden ( C ) Formular ins Internet stellen (z.b. Homepage) ( D ) Befragung

Mehr

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Lieferschein Lieferscheine Seite 1 Lieferscheine Seite 2 Inhaltsverzeichnis 1. STARTEN DER LIEFERSCHEINE 4 2. ARBEITEN MIT DEN LIEFERSCHEINEN 4 2.1 ERFASSEN EINES NEUEN LIEFERSCHEINS 5 2.1.1 TEXTFELD FÜR

Mehr

Registrierung am Elterninformationssysytem: ClaXss Infoline

Registrierung am Elterninformationssysytem: ClaXss Infoline elektronisches ElternInformationsSystem (EIS) Klicken Sie auf das Logo oder geben Sie in Ihrem Browser folgende Adresse ein: https://kommunalersprien.schule-eltern.info/infoline/claxss Diese Anleitung

Mehr

Pascal-Compiler für den Attiny

Pascal-Compiler für den Attiny Das Attiny-Projekt MikroPascal 1 Pascal-Compiler für den Attiny Manch einer möchte vielleicht unsere Attiny-Platine nicht mit BASCOM programmieren. Verschiedene Alternativen bieten sich an. Ein besonders

Mehr

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH Funktionsbeschreibung Lieferantenbewertung von IT Consulting Kauka GmbH Stand 16.02.2010 odul LBW Das Modul LBW... 3 1. Konfiguration... 4 1.1 ppm... 4 1.2 Zertifikate... 5 1.3 Reklamationsverhalten...

Mehr

Variablen & erweiterte Aktionen nutzen

Variablen & erweiterte Aktionen nutzen 341 In Captivate können Sie mit Hilfe von Variablen Texte & Werte speichern oder Systeminformationen ausgeben. Außerdem können Sie auf Basis von Variablen komplexere Aktionen entwickeln, wie z. B. eine

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

Um in das Administrationsmenü zu gelangen ruft Ihr Eure Seite auf mit dem Zusatz?mod=admin :

Um in das Administrationsmenü zu gelangen ruft Ihr Eure Seite auf mit dem Zusatz?mod=admin : WebsoziCMS 2.8.9 Kurzanleitung Stand: 10.04.2008 Andreas Kesting Diese Kurzanleitung zum WebsoziCMS 2.8.9 beschränkt beschränkt sich auf die häufigsten Tätigkeiten beim Administrieren Eurer Homepage: -

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr