Session löschen PHP

Wenn man eine Session in PHP beenden will, muss man einfach folgenden Befehl nutzen:

session_destroy();

Natürlich nicht ohne vorher nochmal session_start aufzurufen. Die Session ist dann aber erst beim nächsten Seitenaufruf gelöscht, weswegen ist es sicherer nach einem session_destroy() auf eine Logoff-Seite umzuleiten, um ein wirkliches Zerstören der Session sicherzustellen.

Mit PHP XML – Ausgabe für Actionscript 3 erzeugen

Will man dynamische Daten in Flash mittels AS3 verarbeiten, so bietet sich der XML-Import an. PHP bietet einfachste Möglichkeiten, eine XML-Ausgabe zu erzeugen. Folgendermaßen erzeugen Sie eine XML-Datei mittels PHP für die Verarbeitung mit Actionscript 3.

Die Datei selbst benennen sie z.B.mit xml_output.php. Nun müssen sie den Dateityp mittels folgender Anweisung festlegen:

header("Content-Type: text/xml");

Nun geben sie bereits die ersten XML-Elemente aus. Ob sie die Daten aus einer Datenbank holen oder aus irgendeiner anderen Quelle beziehen, sei egal. Im vorliegenden Falle werden die Daten aus einer MYSQL-DB geholt und in einer Schleife verarbeitet:

echo "<?xml version='1.0' encoding='ISO-8859-1' ?>". "\n";
echo "<wurzel>";

while ($row = mysql_fetch_assoc($result_of_db_query))
{
	echo "<element>".$row['elemente']."</element>";
}

echo "</wurzel>";

Das soll es aus PHP-Sicht gewesen sein. Als zu importierende Datei steht nun die xml_output.php für Flash zur Verfügung.

Contenido Navigation als XML exportieren

Um die Contenido-Navigation als XML auszugeben, wird zuerst eine Klasse xmlnav angelegt und mit einer Datenbankverbindungsfunktion versehen, weils für das Beispiel einfach praktisch ist:

class xmlnav
{
	function connect()
	{
		include "config.inc.php"; //enthält nur Datenbanklogin
		$this->dbuser = $DBUSER;
		$this->dbpass = $DBPASS;
		$this->dbhost = $DBHOST;
		$this->dbname = $DBNAME;

		$dbh = mysql_pconnect($this->dbhost,$this->dbuser,$this->dbpass);

		if(!is_resource($dbh))
		{
			echo "Es gab einen schwerwiegenden Fehler. Bitte versuchen Sie es sp&auml;ter wieder";
		}
		else
		{
			mysql_select_db($this->dbname,$dbh);
			return $dbh;
		}
	}
}

Danach braucht es Funktionen die die Tabelle mit der Navi auslesen und daraus XML erstellen:

/*
Funktion zur Rückgabe der
URL-Namen aus der Tabelle con_art_lang
Feld = urlname;
*/


function get_urlname()
{
	$arrUrlname = array(); //Array zum Auffangen der urlnamen

	$query = "SELECT * FROM con_art_lang";
	$result = mysql_query($query,$this->connect());

	while($row = mysql_fetch_assoc($result))
	{
		array_push($arrUrlname,$row["urlname"]);
	}

	return $arrUrlname; //Rückgabe des Arrays mit den urlnamen
}


/*
Funktion zur Erstellung des xml-Files mit der
URL-Namen-Navigation.
*/


function create_xml_from_urlname()
{
	$arrUrlnameFromFunction = $this->get_urlname(); //Array zum Speichern der urlnamen aus der Rückgabe der o.s. Funktion

	echo "<xmlnav>";

	foreach($arrUrlnameFromFunction as $value)
	{
		//Kleinschreibung
		$value = strtolower($value);

		//Startseite erkennen
		if(eregi("artseite",$value))
		{
			$value = "/";
		}
		
		echo "<nav name='$value' />";
	}

	echo "</xmlnav>";

}

Die ganze Klasse sieht dann so aus:


/*
* Created on 29.01.2007
*
* To change the template for this generated file go to
* Window – Preferences – PHPeclipse – PHP – Code Templates
*/


class xmlnav
{
	function connect()
	{
		include "config.inc.php";
		$this->dbuser = $DBUSER;
		$this->dbpass = $DBPASS;
		$this->dbhost = $DBHOST;
		$this->dbname = $DBNAME;

		$dbh = mysql_pconnect($this->dbhost,$this->dbuser,$this->dbpass);

		if(!is_resource($dbh))
		{
			echo "Es gab einen schwerwiegenden Fehler. Bitte versuchen Sie es später wieder";
		}
		else
		{
			mysql_select_db($this->dbname,$dbh);
			return $dbh;
		}
	}

	
	/*
	Funktion zur Rückgabe der
	URL-Namen aus der Tabelle con_art_lang
	Feld = urlname;
	*/
	

	function get_urlname()
	{
		$arrUrlname = array(); //Array zum Auffangen der urlnamen

		$query = "SELECT * FROM con_art_lang";
		$result = mysql_query($query,$this->connect());

		while($row = mysql_fetch_assoc($result))
		{
			array_push($arrUrlname,$row["urlname"]);
		}

		return $arrUrlname; //Rückgabe des Arrays mit den urlnamen
	}

	
	/*
	Funktion zur Erstellung des xml-Files mit der
	URL-Namen-Navigation.
	*/
	

	function create_xml_from_urlname()
	{
		$arrUrlnameFromFunction = $this->get_urlname(); //Array zum Speichern der urlnamen aus der Rückgabe der o.s. Funktion
		
		echo "<xmlnav>";

		foreach($arrUrlnameFromFunction as $value)
		{
			//Kleinschreibung
			$value = strtolower($value);

			//Startseite erkennen
			if(eregi(‚artseite‘,$value))
			{
				$value = "/";
			}
			
			echo "<nav name='$value' />";
		}

	echo "</xmlnav>";

	}
}

Jetzt beötigen wir lediglich noch eine PHP-Datei, welche die Klasse includiert und PHP zurückgibt:

header("Content-Type: text/xml");
echo "<?xml version='1.0' ?>". "\n";
include "class.xmlnav.php";
$xmlnav = new xmlnav();

$xmlnav -> create_xml_from_urlname();

Diese Datei kann nun als XML-Quelle verwendet werden.

Datenbankverbindung aufbauen

Folgende Funktion liefert ein Handle auf eine Datenbankverbindung zurück:

function connect()
{
	$DB_HOST = "hostname";
	$DB_NAME = "datenbankname";
	$DB_USER = "dbuser";
	$DB_PASS = "pass";

	//Datenbank -> Verbindung aufbauen
	$link_id = mysql_connect($DB_HOST,$DB_USER,$DB_PASS);
	if(!mysql_select_db($DB_NAME,$link_id))
	{
		echo "Connection Error";
	}
	else
	{
		return $link_id;
	}
}

Favicon in Contenido einbinden

Zuerst muss man die Datei front_content.php öffnen, welche im Verzeichnis /cms liegt.
Dort sucht man in etwa nach Zeile 982, nach folgendem Ausdruck:

$code = str_ireplace_once("<head>", "<head>\n".$baseCode, $code);

Genau davor setzt man folgende Zeile:

$baseCode = $baseCode.'<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">';

Nun muss man noch das favicon.ico in das /cms-Verzeichnis laden und das wars schon.
Wie man ein Favicon erstellt steht hier.