StartSeiteAdressen, TelefonNr, Servicezu den WorkshopsKontakt, eMail schreiben
homepage
promotions Programmierung   das unsichtbare Herz der Seiten


NewsFeeds (Aktualität von oben nach unten):

dot von php4 auf php5

hier: übergabe von variablen
ab der version 4.2 sollte die register_globals=off gesetzt sein. php4 war viel zu anfällig bei fehlerhafter programmierung, so dass die variablen nicht mehr über sämtliche websites derselben serverdomain ausgetauscht werden durften. ab 4.32 wurde global on standardmässig in $_server[SCRIPT_FILENAME] auf off gesetzt.
jetzt müssen die übergebenen variablen (z.b. $xyz) mit $get[xyz] eingelesen werden. formularinhalte wie aus <input type=text NAME="text1" size=23 MAXLENGTH="50" value=""> werden mit $text1=$_POST['text1'] weitergegeben.
eine ausnahme bildet include "xyz.php". hier bleiben die variablen erhalten, die datei muss allerdings ohne klammern und fragezeichen eingebunden sein.
auch bei update "xyz.php" gilt die schreibweise nur ohne klammern.
um variablen an eine andere domain weiterzuleiten, reicht http://www.xyz.de?abc=1 aus. in der aufgerufenen datei werden sie dann mit $abc=$_GET['abc']; eingearbeitet.


dot random mit zufallsausgangswert in php

zunächst soll der zufallsgenerator nicht immer mit derselben zahl beginnen, sonst würden sich die ergebnisse zu sehr ähneln.
srand (microtime () * 1000000);
dabei setzt microtime einen zufallsausgangswert.
die eigentliche funktion in php für random heisst: $zufall = rand (1,10);
ihre zahl wird mit der variable $zufall aufgefangen. in diesem fall wird eine zahl zwischen 1 .. 10 ermittelt.


dot eine neue tabelle für eine mySQL-datenbank aus php heraus erstellen

zunächst müsst ihr die datenbank öffnen:

mysql_connect ("serverAdresse", "dboberName", "pw");
mysql_select_db ("dbName");
mysql_query ("CREATE TABLE ". $ip ." (nr INT(10), var1 INT(3), var2 INT(3))");
$ip ist eine variable, die erst während der anwendung erstellt wird (deshalb kann die db auch nicht vorher manuell festgelegt werden:
INT(10) deklariert den typ integer mit 10 stellen. VARCHAR (3) würde z.b. einen character mit 3 stellen angeben.

$query = "INSERT INTO ". $ip ." (nr, var1, var2) VALUES (1, 0, 0)";
oder:
$query = "INSERT INTO ". $ip ." (nr, var1, var2) VALUES (". $id .", 100, 100)";
die einzelnen werte der variablen werden dann in die db eingefügt. dabei kann so ein wert auch aus einer variablen bestehen ($id). hierzu bedarf es allerdings einer aufhebung der befehlsinternen anführungsstriche und zweier punkte, die die variable in den code einfügen.

mysql_close ();


dot client-ip statt cookies.

viele verwahren sich gegen cookies auf ihrer festplatte. aber oftmals müssen sie sie akzeptieren, da sonst anwendungen nicht laufen, die sie haben möchten.
aber es geht auch anders. onlinesoft benutzt z.b. für cyberearth die client-ip, die meistens einmalig ist und vom server dem surfer am anfang seiner session gegeben wird. ausnahmen sind feste ips in firmen oder sammelzugänge, wo die angeschlossenen computer über eine einzige hauptleitung (internet sharing) laufen.
der browser des besuchers bringt viele informationen mit, auch die client-ip. diese legen wir mit ihrem namen auf unserem server temporär ab. wird eine seite neu aufgerufen, und die variablen werden nicht bei jedem schritt mit übergeben, so sind sie beim nächsten aufruf der datei unbekannt. also müssen sie in einer datenbank niedergelegt und abgefragt werden. doch woher weiss das programm, wie diese db heisst? wenn diesbezüglich keine variablen weitergereicht wurden...
beim verlassen des spiels werden sie dann gelöscht und beim nächsten besuch geht alles von vorn los - nur mit einer anderen ip. diese werden ja in der regel bei jedem internetauftritt neu vergeben.

<?php
$ip2 = $_SERVER["REMOTE_ADDR"];
echo $ip2;
echo "
";

// ************ datei erstellen + ip eintragen
$ip='a'; // 1. buchstabe darf keine zahl sein + code darf keine punkte enthalten
for($i=0; $i {
while ($ip2[$i] != "." && $i != strlen($ip2))
{
$ip .= $ip2[$i];
$i++;
}
}
mysql_connect ("servername", "db", "pw");
mysql_select_db ("db196297166");
mysql_query ("CREATE TABLE ". $ip ." (id VARCHAR(3), wissen VARCHAR(3), schnelligkeit VARCHAR(3))");
$query = "INSERT INTO ". $ip ." (id, wissen, schnelligkeit) VALUES ('123', '100', '100')"; // 1. eintragung mit insert
mysql_query ($query);
mysql_close();

// ************ daten auslesen
mysql_connect ("servername", "db", "pw");
mysql_select_db ("db");
$alles = mysql_query("SELECT * FROM ". $ip);
while ($ergebnis = mysql_fetch_array ($alles))
{
echo ('id: '.$ergebnis["id"]);
echo ('
wissen: '.$ergebnis["wissen"]);
echo ('
schnelligkeit: '.$ergebnis["schnelligkeit"]);
break;
}
mysql_close();

// ************ daten aendern, eintragen + ausgeben,
mysql_connect ("servername", "db", "pw");
mysql_select_db ("db");
$query = "UPDATE ". $ip ." SET wissen=50"; // sobald der ds vorhanden ist, mit update aktualisieren
mysql_query ($query);
$query = "UPDATE ". $ip ." SET schnelligkeit=50";
mysql_query ($query);
$alles = mysql_query("SELECT * FROM ". $ip);
while ($ergebnis = mysql_fetch_array ($alles))
{
echo ('id: '.$ergebnis["id"]);
echo ('
wissen: '.$ergebnis["wissen"]);
echo ('
schnelligkeit: '.$ergebnis["schnelligkeit"]);
break;
}
mysql_close ();

// ************ datei loeschen
mysql_connect ("servername", "db", "pw");
mysql_select_db ("db");
$query = "DROP table ". $ip;
mysql_query ($query);
mysql_close ();
echo "
";
?>

die abfrage $ip2 = $_SERVER["REMOTE_ADDR"]; kann auch je nach server und betriebssystem anders lauten:
um das herauszukriegen, müsst ihr folgendes testen:
if ($_SERVER["HTTP_X_FORWARDED_FOR"])
{
if ($_SERVER["HTTP_CLIENT_IP"])
{
$proxy1 = $_SERVER["HTTP_CLIENT_IP"];
}
else
{
$proxy2 = $_SERVER["REMOTE_ADDR"];
}
$ip1 = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else
{
if ($_SERVER["HTTP_CLIENT_IP"])
{
$ip2 = $_SERVER["HTTP_CLIENT_IP"];
}
else
{
$ip3 = $_SERVER["REMOTE_ADDR"];
}
}


dot Zähler in PHP.

Voraussetzung ist ein WebServer, da PHP serverseitig arbeitet, und eine TextDatei zaehler.txt.

<?
if (file_exists("zaehler.txt"))
{
$datei = fopen("zaehler.txt", "r");
$zaehler = fgets($datei, 255);
fclose($datei);
}
$zaehler++;
$datei = fopen("zaehler.txt", "w");
fputs($datei, "$zaehler");
fclose($datei);
echo "Zugriffe: $zaehler";
?>

"r" (read) steht für datei auslesen, "w" (write) für reinschreiben.


dot PHP

PHP ist mittlerweile die Sprache des Internets. Es ist schnell, leicht zu lernen, eingebettet im HTML-Code und sein QuellCode nicht zu lesen.
Es hat zwar nicht die VariablenVielfalt und -strenge wie C oder andere Hochsprachen, ist ihnen aber sehr ähnlich und kann wunderbar mit mySQL und den UNIX-BetriebsSystemen harmonieren. Dass heisst, es ist also auch plattformunabhängig.
Einzig die Ausführung am heimischen PC bedeutet noch Probleme. Es braucht einen Interpreter, der auf WindowsSystemen schwierig ist zu implantieren. Microsoft selbst bietet mit PWS ein eher unbedarften WebServerTool an. Apache ist natürlich das beste, aber auch OmniHTTPd kann als Webserver für Perl und PHP empfohlen werden.


dot RSS

RSS ist mittlerweile ein gängiges Protokoll für das Schreiben von Blogs. Mit seiner ScriptSprache XML baut es auf HTML auf und ist leicht zu lernen (s. Workshop NewsFeeds). Es dient aber auch allgemein dem Schreiben von NewsFeeds. Dies sind Nachrichten und Informationen. Ein gängiges Format ist folgendes:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="rss.css" type="text/css"?>
<div class="rss.css">
<rss version="0.91">
<channel>
<title>in die Top­Ten von Google</title>
<link>http://www.onlinesoft.de</link>
<description>Anmel­dung Op­ti­mie­rung Pro­mo­ti­on bei Google</description>
<language>de-de</language>
<item>
<title>Legal und ga­ran­tiert ho­hes Ran­king!</title>
<description>Anmeldung und Op­ti­mie­rung bei Such­maschi­nen, spe­zi­ell Google</description>
<date>16/11/2004</date>
</item>
</channel>
</rss>
</div>

Mittels PHP ist es auch möglich, den eigenen Feed in die eigene Seite einzubauen. Dabei wird sich allgemein eines Moduls von MagPie bedient, dass auf dem Server installiert werden muss. Zusätzlich bedarf es PHP, um alle Komponenten zu integrieren (s. Workshop NewsFeeds).


dot PHP

PHP ist eine der besten ScriptSprachen des Internets. Sie ist plattformunabhängig und überall einsetzbar. Obwohl der HTML-Bereich ganz leicht einzubetten ist, ist der QuellCode nun nicht mehr zu lesen.
DatenBanken werden jetzt mit PHP und mySQL programmiert. Sämtliche Formulare, Listen und externe Dateien können mit PHP erzeugt werden. Wobei die VariablenÜbergabe wie in Javascript kein Problem bedeutet. Das System Linux/Apache/mySQL/PHP (LAMP) ist eine Institution.


dot Programmierung ist oftmals das HerzStück einer anspruchsvollen Homepage. Dennoch sollte sie so sparsam wie möglich eingesetzt werden. Es gibt immer noch alte Browser im Netz, die z.B. kein JavaScript verstehen.
Andererseits sind kleinere Datenbanken, Listboxen usw. oft ein notwendiger Schritt für die Firma, ihre Informationen dazulegen.
Um dabei Variablen weiterzugeben, Berechnungen anzustellen oder Formulare zu verwalten, ist Programmierung unerläßlich.


dot In neueren Browser (ab Version 4) ist es sogar möglich, kleinere Animationen und ähnliche Tricks zu fahren, um eine WebSite interessanter zu gestalten. Faszinierend sind hier BewegungsAbläufe und das Erscheinen und Verschwinden lassen von Objekten in ZusammenArbeit mit den Containern von CSS (cascading style sheets).

dot JavaScript verhilft außerdem auf recht einfache und schnelle Weise, Browser und deren innewohnenden Informationen über den Surfer abzufragen. Hier kann nicht nur die Kompatibilität der Seite angeglichen, es können auch aufgrund von Statistiken KundenAnalysen durchgeführt werden.
CGI-Sprachen wie Pearl, C und Java ermöglichen zudem, extern gespeicherte Daten auszulesen und auch einzuschreiben (sei es auch nur die fortzählende Zahl eines Counters). Sie sind zudem das geeignete WerkZeug, um aus speziellen Applikationen (wie Excel, Access usw.) dem Kunden seinen Eingaben entsprechende Informationen herauszugeben.




zurück zur Vorseite

balken
  Home Marketing Design Promotion
homepage

developed by onlineSoft © '98-20011