Flashcard Info

Here you can learn everything about this flashcard

Web Engineering



Multiple choice cards
Normal cards
Cards total
Category
Language
From

Wie kann das HTTP anfragende System über den Status informiert werden?

Über den Status Code, in der Antwort

Notieren Sie den PHP-Code, um zu überprüfen, ob der Verbindungsaufbau zur DB geklappt hat. Falls der Verbindungsaufbau nicht geklappt hat, soll die Fehlermeldung „keine Verbindung“ ausgegeben werden.

$db = mysqli_connect("localhost", "Benutzername", "Passwort", "Datenbankname");
if(!$db) {

exit("Verbindungsfehler: ".mysqli_connect_error());

}

Objektorientiert

$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');
if ($mysqli->connect_error) {
    die('Connect Error: ' . $mysqli->connect_error);
}
?>

Prozedural

$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Connect Error: ' . mysqli_connect_error());
}
?>

Welches sind die vier häufigsten HTTP-Methoden für REST-Services?

GET Read, PUT Update, POST Create, DELETE Remove/delete

Was ist der Unterschied zwischen den Funktionen «include» und «require»?

Wozu noch die Funktion «include_once»? Wozu werden diese Funktionen verwendet?

include wird gerne genutzt, um wiederkehrende Abschnitte einzubinden

Include: bindet eine angegebene Datei ein und führt sie als PHP-Skript aus

Warum require: Findet das Programm die einzubindende Datei nicht vor, bricht es ab
Dateien, die für die korrekte Programmausführung nicht "wichtig" sind, können über include eingebunden werden
 

include_once: gleich wie include - aber wenn schon eingebunden, nicht nochmals

Wofür steht das "w" in folgendem Statement: fopen("kommentar.txt","w"))?

'r' Nur zum lesen geöffnet, platziere Dateizeiger auf Dateianfang

'w' Nur zum schreiben geöffnet, platziere Dateizeiger auf Dateianfang und kürze Datei auf eine Länge von 0. Existiert die Datei nicht versuche diese zu erzeugen

effektives schreiben in die Datei:

$dz = fopen("test.txt","w"); -> öffnen mit "w" für Absicht zu schreiben
fwrite($dz, $Text); -> effektives schreiben
close ($dz); -> das ganze wieder schliessen

Was sind DAOs und gibt es für Einsatzszenarien von DAOs?

Klassen die nur den Datenbankzugriff handeln. Also Create, Update, Delete und View handeln

Was ist JSON und was sind die wichtigsten Bausteine davon?

Datenaustauschformat, Eine Sammlung von Name/Wert-Paaren, werden in eckige Klammern geschrieben

myObj = { "name":"John", "age":31, "city":"New York" };

a) Wie wird in PHP die Datei info.txt zum Lesen geöffnet und über die DateiHandle-Variable $file verfügbar gemacht?
b) Welche Parameter könnten noch genutzt werden anstelle von "r"?

a)

$file = file_get_contents('info.txt');

$file = fopen($filename, "r");

$filename = '\test.txt';
$file = file($filename);
for($i=0;$i < count($file); $i++){
   echo $i.": ".$file[$i]."<br><br>";
}

 

oder 

$inhalt = file("test.txt");

$anzahl = count($inhalt);

for ($i = 0; $i<=($anzahl-1); $i++) {
echo $inhalt[$i]."<br/>";

}

 

b) 

a+ append - anfügen lesen und schreiben,

a append - anfügen nur schreiben,

w+ write - schreiben lesen und schreiben,

w write - schreiben nur schreiben,

r+ read - lesen lesen und schreiben,

r    read - lesen nur lesen

Wie empfehlen Sie mit Sessions zu arbeiten?

Eine Sitzung ist eine Möglichkeit, um Informationen zu speichern (in Variablen) auf mehreren Seiten verwendet werden. Im Gegensatz zu einem Cookie, wird die Information nicht auf dem Computer des Benutzers gespeichert.
 

session_regenerate_id() 

ersetzt die aktuelle Session-ID durch eine neue und übernimmt die aktuellen Session-Informationen.

Wofür wird «fpdf» benötigt? Was muss bei der Verwendung dieser Bibliothek bedacht werden?

ist eine PHP Klasse die das Erzeugen von PDF Dokumenten auf Basis von PHP ermöglicht, ohne das Erweiterungen oder andere Biblitheken erforderlich sind

Wie können Lambda-Funktionen oder Callbacks genutzt werden? 

$helloLamdaFunction = function (){
    return "hallo Lamda";
};

 

function iWillReturnCallback($callBackHere){
    return $callBackHere;
}

function iAmCallBack(){
    echo "I am returned with the help of another function";
}

iWillReturnCallback(iAmCallBack());

//--Output -> I am returned with the help of another function

Wie können Sie in PHP bereits geschriebenen Code einfügen (Mehrfachverwendung von Code)? Wozu wird diese Möglichkeit oft verwendet?

include / require oder als Methode wiederverwenden

Was sind REST-Services

REST steht für Representational State Transfer und basiert auf dem hypermedialen Architekturstil.

Web Services werden meist mit SOAP oder XML-RPC in Verbindung gebracht. Mit REpresentational State Transfer oder kurz REST, einem Architekturstil, können ebenfalls Web Services realisiert werden. 

In PHP können Werte miteinander verglichen werden. Was bedeuten die Vergleichsoperatoren «=», «==» und «===»? Wie kann auf Ungleichheit geprüft werden?

= Zweisungsoperator

== wen gleich ist

=== wenn gleich ist und selber Typ

!= Wenn ungleich

!== nicht identisch

String Operatoren

a) Mit welcher Funktion lässt sich die Länge eines Strings bestimmen?

b) Wie kann ein Wort in einem Text ersetzt werden?

a) strlen();

b) str_replace('search', 'replace');

Wie können Sie mittels PHP eine Verbindung zu einer MySQL-DB bzw. einer MariaDB herstellen.

a) Wie heisst die entsprechende Funktion oder Methode?

b) Welche Parameter müssen mitgegeben werden?

a) mysqli_connect();

b) mysqli_connect("localhost", "Benutzername", "Password", "Datenbankname");

Welche Datentypen kennt PHP und wie müssen Variablen deklariert werden?

boolean, integer, Float, string, Array, iterable, object, null

 

Eine explizite Deklaration und Initialisierung lässt sich natürlich ebenfalls machen und wird im Allgemeinen auch als saubere Programmierung betrachtet. Dabei wird allen Variablen vor ihrem ersten möglichen(!) Auftreten entweder ein neutraler oder ein Standard-Wert zugewiesen. Dies kann zum Beispiel am Anfang der Datei oder vor einer Schleife sein, in der die Variable verwendet werden soll. Die Zuweisung erfolgt generell über den Zuweisungsoperator =.

$variable = 0; // Deklaration und Initialisierung als INTEGER (Ganzzahl)
$text = “”; // string (Zeichenkette)

Wie kann das HTTP anfragende System über das Datenformat der Antwort informiert werden?

Über den Header

a) Wozu werden Cookies in PHP eingesetzt? Wie erstellen Sie ein Cookie?

b) Welche 3 Parameter müssen für die Erstellung eines Cookies mitgegeben werden?

a)

setcookie() - Cookies machen das Surfen im Internet leichter. Personalisierung (Apassung von Angeboten), Nutzungsanalysen (wann besucht wer was)? Cookies uns Werbung (zugeschnittene Werbung)

b) setcookie("username", "Max", time()+(3600*24));

Erste Angabe: Name des Cookies

Zweite Angabe: Wert der im Cookie gespeichert wird

Dritte Angabe: Zeit wielange der Cookie gültig ist in sekunden

löschen = setcookie("username","Max",time() - (3600 * 24));

Wie können Klassen in einer anderen Klasse verwendet werden?

Mit einer Vererbung

<?PHP 
class mutter { 
    function muttermeckert() { 
        echo "du bist böse"; 
    } 

    function muttergibtgeld() { 
        echo "kauf dir was"; 
    } 


class tochter EXTENDS mutter { 
    function verhaltenvontochter( $ver ) { 
        if ( $ver == "frech" ) { 
            $this->muttermeckert(); 
        } elseif ( $ver == "brav" ) { 
            $this->muttergibtgeld(); 
        } 
    } 


$obj = new tochter(); 
$obj->verhaltenvontochter( "brav" ); 
?>

Was ist jQuery

JavaScript im Leichtgewicht.
Man muss weniger Schreiben um auf
dasselbe Resultat zu kommen
Es muss aber eine Library 
eingebunden werden

a) Wie können in PHP Strings einfach verbunden werden?

b) Wozu wird die Funktion trim() in PHP verwendet?

a) Mit einem . dazwischen = $v . $s

b) Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings

Was ist ein Router in PHP und wie kann dieser konfiguriert werden? 

Der Router nimmt die eingegebene Ziel-Variable und setzt dann das benötigte zusammen, resp. macht den nötigen Aufruf für die gewünschte Seite. Die Ziel-Variable muss eingeben werden und dann definiert werden was genau aufgerufen werden soll

Das Resultat einer "SELECT * FROM adressen" sei in $resultat gespeichert.

Geben Sie das Resultat in einer while- oder foreach-Schleife aus.

while ($zeile=mysqli_fetch_assoc($resultat)) {
}

while ($zeile=mysqli_fetch_array($resultat)) {

while (list($schluessel, $wert)=each($zeile)) {

echo $wert;

 } 
}

 

 

foreach ($zeile as $key => $value) {

echo "<td>" .$value. "</td>";

}

Was ist AJAX und wofür steht es

AJAX ermöglicht die asynchrone Aktualisierung von Webseiten durch den Austausch von Daten mit einem Webserver hinter den Kulissen. Das bedeutet, dass es möglich ist, Teile einer Webseite zu aktualisieren, ohne dass die ganze Seite neu geladen werden muss.

Asynchronous JavaScript And XML
AJAX ist keine Programmiersprache.
AJAX verwendet nur eine Kombination aus: - Einem im Browser eingebauten XMLHttpRequest-Objekt (um Daten von einem Webserver anzufordern) - JavaScript und HTML DOM (um die Daten anzuzeigen oder zu verwenden)

Was sind Template-Engines und wie funktionieren sie?

Vorlage, somit muss sich der Programmierer nur noch um die Implementierung kümmern

Wann benutzt man self:: und wann $this?

$this-> Aufruf Methode in Klasse
self::->Aufruf statische Methode in Klasse

Was sind HTTP-Methoden?

Sie ermöglichen es dem Browser des Clients Informationen zum Server zu senden, um Dateien abzurufen, ein Formular abzusenden oder eine Datei hochzuladen

GET, POST, HEAD, PUT, DELETE, TRACE

Was ist ein „assoziatives“ Array? Gibt es andere Arten von Arrays?

Bei großen Arrays wird es irgendwann umständlich zu wissen, welche Nummer/Index zu welchem Wert gehört, darum gibt es assoziative Arrays.

Das heißt, man kann für einen Wert einen Schlüssel (auch Key genannt) zuweisen, dies kann z.B. eine andere Zeichenkette sein. Die Zuweisung erfolgt per =>

<?php
$termin[] = array('Datum' => 20121208, 
                  'Ort'   => "Wangen", 
                  'Band'  => "cOoL RoCk oPaS");
 
$termin[] = array('Datum' => 20120311, 
                  'Ort'   => "Stuttgart", 
                  'Band'  => "Die Hosenbodenband");
 
$termin[] = array('Datum' => 20120628, 
                  'Ort'   => "Tübingen", 
                  'Band'  => "flying socks");
 
$termin[] = array('Datum' => 20120628, 
                  'Ort'   => "Stuttgart", 
                  'Band'  => "flying socks");

foreach($termin as $key => $value) {
   echo $key . "=>" . $value;
}
 
echo "<pre>";
print_r ( $termin );
?>

Weitere Arrays: 

Mehrdimensionale
Array's
Indizierte Array's

Was ist ein Konstruktor und wie können Sie mehrere Konstruktoren implementieren?

Funktion, existiert per Default, neues Objekt instanzieren

Möglich mit Nummerierung __construct1 / __construct2 und anderen Paramater (Anzahl)

Was ist der Unterschied zwischen GET und POST?

GET = Parameter werden in der URI getrennt durch ? hinzugefügt.

POST wird auch übergeben, aber nicht sichtbar (durch Leerzeile an Header gehängt)

Welche Möglichkeiten für die Datums- und Zeitangabe kennen Sie in PHP? Wie kann ich «timestamps» erstellen und wozu werden diese verwendet?

time() alle Sekunden seit dem 1.1.1970 

$nextWeek = time() + (7 * 24 * 60 * 60);

 Funktion date($format, $timestamp) um die Zeit zu formatieren mit d, j, m, n, y, H etc.

$heute = date("m.d.y");

 

Was sind Authentifizierungs- / Sicherheitstoken und was sind mögliche Anwendungsfälle?

 

Selektor (zufälliger Schlüssel) und

Validator (zufälliger Schlüssel, der vor speichern gehasht werden muss)

Remember me, E-Mail and Password reset

Wie funktioniert MVC?

Model: Speichert Daten, Logik, Reglen
Controller: Löst Aktionen aus, läd zugehörige View
View: Representation - Ansicht

Wie können Authentifizierungs- / Sicherheitstoken implementiert werden?

AuthToken-Domänenobjekt (wie im Domänenmodell gezeigt) mit einem entsprechenden AuthTokenDAO (wie im Data Access Model gezeigt) erstellt.

Nennen Sie Funktionen bzw. Methoden, welche Sie für die Formularvalidierung auf PHP-Seite verwenden können? Sind PHP-Methoden notwendig, wenn mit JavaScript bereits einiges abgefangen wurde?

PHP:

  • trim() -> entfernt Leerzeichen
  • mysqli_real_escape_string() -> Schützt vor SQL-Injection
  • stripslashes() -> gibt String zurück aus dem alle \ entfernt wurden
  • empty($_POST[..])oder isset($_POST[..]) -> prüfen der Formulareinträge
  • is_numeric(), is_int(), strlen(), usw. -> Stimmen Datentypen
  • checkdate($monat, $tag, $jahr) -> Datum checken

 

 

Auf HTML:

- type="email"

- type="number"

- type="password"

- required

Es ist notwendig, weil JavaScript sind Clientseitig. Der User könnte diese abgeschaltet haben oder aber einen Browser (resp. Version) verwenden, die es nicht unterstützt.

Weshalb realisieren Sie für Ihre Kunden lieber eine dynamische PHP-Seite, als dass Sie JavaScript-Elemente in die Webseiten des Kunden einbauen?

Weil JavaScript vom Client her aus abgeschaltet werden kann, oder der Browser nicht alles korrekt interpretiert (Version, alter etc.) PHP ist Server-Seitig und gibt die Anweisungen so an den Browser weiter (immer)

Was ist die «Template View»?

sobald instanziert: magische __set()-Methode in die View injiziert werden. Abschliessend wird die Ansicht mit der Methode render() gerendert. Auf die injizierten Daten kann mit __get() zugegriffen werden.

Was ist ein Business Service, woraus besteht er und was sind Nutzungsszenarien?

Business Services beinhalten die Geschäftsentscheidungen wie in PHP übertragene Geschäftsregeln. Ein Beispiel für eine solche Regel könnte sein, dass ein Agent nur die Kunden bearbeiten darf, für die er verantwortlich ist.

z.B. Interface

a) Was versteht man unter SQL-Injection?

b) Was kann dagegen unternommen werden?

a) Das Ausnutzen einer Sicherheitslücke im Zusammenhang mit SQL-Datenbanken, die mangelnde Maskierung oder Überprüfung von Metadaten in Benutzereingaben entsteht

b) Benutzer mit beschränkten Rechten für Verbindung, Prepared Statements verwenden (PDO, MySQLI)

  • mysqli_real_escape_string() -> Schützt vor SQL-Injection

Input erwarteter Datentypen überprüfen

a) Welches ist der korrekte Aufruf, um dem Skript „berechnung.php“ mit der Methode "get" eine Zahl zu übergeben?
b) Wie kann ich im File "berechnung.php" auf die übergebene Variable zugreifen?

a)

<form action=""berechnung.php" method="GET">
<input type="number" name="zahl">
<input type="submit" value="senden">
</form>

b) $variable = $_GET['zahl'];

Was ist eine API?

Application Programming Interface
Eine API ist ein Satz von Funktionen, die von Informationssystemen verwendet werden, um auf Dienste und Daten aus anderen Informationssystemen zuzugreifen.

Wie kann eine Passwort-reset-Funktionalität so sicher wie möglich implementiert werden?

Mit einem gehashten Authentifizierungs-Token. Also ein Selektor und einen Validator und diese werden gesendet via Mail und sind z.B. nur eine Stunde lang gültig. Neues Passwort sofort setzen lassen.

a) Was versteht man unter Cross Site Scripting?

b) Was kann dagegen unternommen werden?

a) Damit ist es einem Angreifer möglich, auch Skripte indirekt an den Brwoser des Opfers zu senden und damit Schadcode auf der Seite des Clients auszuführen

b) htmlentities - wandelt von aussen kommende Inhalte und Zeichen in HTML Code um - so ist keine Ausführung möglich

Was ist CRUD und was gibt es für Einsatzszenarien von CRUD?

Create, Read, Update, Delete - braucht es fast überall. z.B. Userverwaltung
Basisfunktionen DB

a) Wie lässt sich die Variable $var in einer PHP-Funktion ein Parameter als "Call by Reference" übergeben?
b) Welche Alternative gibt es zu "Call by Reference" und was ist der Unterschied?

a) $new =& $var;

b) Call by Value = Wert mitgeben, so wird die ursprüngliche Referenz nicht verändert

Schreiben Sie ein PHP-Skript, das die Zahlen 1 – 100 auf einer Webseite ausgibt. Nach jeweils 10 Zahlen soll auf eine neue Zeile geschrieben werden. Die Zahlen sollen mit Hilfe von Schleifen erzeugt werden.

for($i=0; $i<=100; $i++){

echo "$i";

if(($i % 10) == 0 {

echo "<br>";

   }

}

Sie möchten die "$query" auf eine bereits verbundene Datenbank ($link) anwenden.

a) Wie heisst der Code, damit das Resultat in der Variablen $resultat steht?

b) Im Fehlerfall soll "Insert hat nicht geklappt!" ausgegeben werden

a)

$resultat = mysqli_query($link, $query);

PDO

$statement = $pdo->prepare($query);

$statement->execute();

b)

if(mysqli_affected_rows($result) = 0) {

echo "Insert hat nicht geklappt"; 

PDO

if($stmt->rowCount()) == 0){

echo "Insert hat nicht geklappt";

}

 

Was sind die Unterschiede der Methoden „get“ und „post“ bei der Übergabe der Parameter aus Webformularen?

get = Variablen werden in der Adresszeile angezeigt und so weitergeben
post = die Variablen werden ohne anzeigen weitergeben, meist bei Formularen

 

Get

  • Durch get wird eine URL aufgerufen, an die sämtliche Formulardaten angehängt werden.
  • Vorteil: • Wenn man überprüfen möchte, ob und welche Daten übertragen werden (z.B. Ablaufsteuerungen wie Suche).
  • Nachteil: • Die maximale Länge von URLs beschränkt und wenn zuviel Inhalt mitgeschickt werden soll, funktioniert es daher nicht mehr. Alle übertragenen Daten sind sichtbar (Problem bei Passwörtern).

Post

  • Bei post werden die Formulardaten als Teil der Anfrage an den Webserver gesendet und sind in der Adresszeile nicht sichtbar.
  • Empfehlung des W3C, wenn Daten vom auswertenden Programm weiterverarbeitet werden.
  • Vorteil: Beliebig lange Inhalte können mit übertragen werden. Passwörter nicht sichtbar

Wie funktioniert die API-Autorisierung / -Authentifizierung?

Sicherheit wird meist im Request-Header verschoben (im Header werden Infos hinzugefügt) -> User / Passwort oder eben ein Token

Holen Sie Daten aus einem Formular und weisen Sie diese den Variablen $username und $passwort zu. Verschlüsseln Sie das Passwort mit md5 und weisen Sie das Ergebnis der Variablen $pass zu.

$username = $_POST['username'];

$passwort = $_POST['password'];

$pass = md5($passwort);

Wie definieren Sie in PHP die Konstante Mehrwertsteuer ist 0.08?

define("Mehrwertsteuer", 0.08);

Was ist ein Destruktor und was ist der Unterschied zwischen einem Konstruktor?

Memory frei schaufeln oder Methode beenden

Sessions:

<?php
session_start(); ?>


a) Was bewirkt dieser Code?

b) Was muss bei Sessions beachtet werden?

a) Erzeugt eine Session oder nimmt die aktuelle wieder auf, die auf der Session-Kennung basiert, die mit einer GET- oder POST-Anfrage oder einem Cookie übermittelt wurde.

b) gut für zum Informationen übergeben resp. über den Benutzer zu speichern. Webserver kann so identifizieren und Infos laden

Am Schluss die Session zerstören

// remove all session variables
session_unset(); 

// destroy the session 
session_destroy(); 

Wozu wurden die Methoden, bzw. die Funktionen von mysqli verbessert? Wofür steht das «i»?

i steht für Improved

Im Gegensatz zur ursprünglichen Variante, die seit PHP 7.0 nicht mehr angeboten wird, lässt sie sich nicht nur prozedural, sondern auch objektorientiert benutzen. Ein wesentlicher Vorteil ist, dass mithilfe von sogenannten Prepared Statements SQL-Injection-Angriffe verhindert werden können.

Wie kann eine Remember-me-Funktionalität so sicher wie möglich implementiert werden?

Mit einem Cookie, das den Authentifierzungs-Token beinhaltet, aber nach einer gewissen zeit soll das ablaufen

a) Wie wird in einem PHP-Skript der Inhalt eines Formularfeldes namens betrag ausgelesen, wenn die Anfrage mit POST übertragen wurde?
b) Wie können Sie überprüfen, ob wirklich eine Zahl eingegeben wurde?

a) $variable = $_POST['betrag'];

b) is_numeric($variable);

Was sind die wichtigsten Technologien für die Implementierung einer API?

Rest, Soap, Java-Script

Was ist ein Webservice?

A Webservice kapselt klar definierte Funktionalitäten einer Informationssystemkomponente. Es ist ein technologischer Rahmen für die Implementierung und Integration verteilter Informationssysteme.

© 2024 MemoCard