<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Power Tutorials</title>
	<atom:link href="http://www.power-tutorials.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.power-tutorials.de</link>
	<description>Die geballte Power PHP und Javascript</description>
	<lastBuildDate>Thu, 27 Oct 2011 23:11:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Kalenderwoche in JavaScript berechnen</title>
		<link>http://www.power-tutorials.de/mit-javascript-kalenderwoche-berechnen/</link>
		<comments>http://www.power-tutorials.de/mit-javascript-kalenderwoche-berechnen/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 23:10:44 +0000</pubDate>
		<dc:creator>Jelsch</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Berchnung der Kalenderwoche mit JavaScript]]></category>
		<category><![CDATA[Kalenderwoche]]></category>

		<guid isPermaLink="false">http://www.power-tutorials.de/?p=163</guid>
		<description><![CDATA[Da das Date Objekt in JavaScript keine Möglichkeit bietet, die Kalenderwoche durch eine vorgefertige Funktion zu berechnen, muss dies leider von uns selbst gemacht werden: &#160; var date = new Date(); var newYear = new date(date.getFullYear(), 0, 1); var secDiff = newYear.getTime()-(newYear.getDay())*(24*60*60*1000); alert(Math.ceil((date.getTime()-secDiff)/(7*24*60*60*1000))-1); &#160; Was wird hier eigentlich gemacht? Die Variable newYear enthält das Date [...]]]></description>
			<content:encoded><![CDATA[<p>Da das Date Objekt in JavaScript keine Möglichkeit bietet, die Kalenderwoche durch eine vorgefertige Funktion zu berechnen, muss dies leider von uns selbst gemacht werden:</p>
<p>&nbsp;</p>
<pre class="brush:js">var date = new Date();

var newYear = new date(date.getFullYear(), 0, 1);
var secDiff = newYear.getTime()-(newYear.getDay())*(24*60*60*1000);

alert(Math.ceil((date.getTime()-secDiff)/(7*24*60*60*1000))-1);</pre>
<p>&nbsp;</p>
<p><strong>Was wird hier eigentlich gemacht?</strong></p>
<p>Die Variable <span style="text-decoration: underline;">newYear</span> enthält das Date Objekt zum Zeitpunkt des 1. Januars des ausgewählten Jahres.</p>
<p>Die Variable <span style="text-decoration: underline;">secDiff </span>enthält die Anzahl an Milisekunden, welches den 1. Januar anhand des Wochentags auf den Montag unterscheidet.</p>
<p>Aus diesem Unterschied wird durch Teilung unsere gewünschte Kalenderwoche ausgerechnet.</p>
<p>&nbsp;</p>
<p>Et voilà, wir haben unser gewünschtes Ergebnis.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.power-tutorials.de/mit-javascript-kalenderwoche-berechnen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sessions Tutorial (PHP-Grundlagen)</title>
		<link>http://www.power-tutorials.de/sessions-tutorial/</link>
		<comments>http://www.power-tutorials.de/sessions-tutorial/#comments</comments>
		<pubDate>Thu, 12 May 2011 20:33:43 +0000</pubDate>
		<dc:creator>Jelsch</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Session allgmein]]></category>
		<category><![CDATA[Session speichern]]></category>
		<category><![CDATA[Sessions einzeln löschen]]></category>
		<category><![CDATA[Sessions erstellen]]></category>
		<category><![CDATA[Sessions löschen]]></category>

		<guid isPermaLink="false">http://www.power-tutorials.de/?p=25</guid>
		<description><![CDATA[Was sind Sessions? Durch Sessions erhält jeder Browser beim Besuch einer Website (Sitzung) eine eindeutige Identifikationsnummer zugewiesen. &#160; Wofür braucht man Sessions? Sessions werden in erster Linie für den Zugriff auf gespeicherte Werten über Seitenaufrufe hinweg benötigt. Zudem weisen sie jedem Besucher eine eindeutige Session-ID zu. &#160; Wie funktionieren Sessions allgemein? Durch das anlegen einer [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Was sind Sessions?</strong></p>
<p>Durch Sessions erhält jeder Browser beim Besuch einer Website (Sitzung) eine eindeutige Identifikationsnummer zugewiesen.</p>
<p>&nbsp;</p>
<p><strong>Wofür braucht man Sessions?</strong></p>
<p>Sessions werden in erster Linie für den Zugriff auf gespeicherte Werten über Seitenaufrufe hinweg benötigt. Zudem weisen sie jedem Besucher eine eindeutige Session-ID zu.</p>
<p>&nbsp;</p>
<p><strong>Wie funktionieren Sessions allgemein?</strong></p>
<p>Durch das anlegen einer Session wird eine Session-ID generiert. PHP speichert alle Daten, die unter dieser ID anfallen, zentral und abrufbereit auf dem Server. Im Normalfall merkt sich der Browser nur die Session-ID mithilfe eines Cookies.</p>
<p>&nbsp;</p>
<p><strong>Warum werden bei mir keine Session-IDs gespeichert?</strong></p>
<p>Hat der Besucher in seinem Browser das speichern von Cookies aus diversen Gründen nicht erlaubt, kann sich der Browser die erstellte Session-ID nicht merken. Es muss eine andere Lösung gefunden werden.</p>
<p>Die Möglichkeiten sind eher begrenzt. Die Session-ID kann jedem Link mittels <span style="text-decoration: underline;">GET</span></p>
<pre class="brush:php;">&lt;a href="seite_2.php&lt;?php echo session_id(); ?&gt;"&gt;Seite 2&lt;/a&gt;</pre>
<p>oder bei jedem Formular mittels <span style="text-decoration: underline;">POST</span></p>
<pre class="brush:php">&lt;input type="hidden" name="&lt;?php echo session_name(); ?&gt;" value="&lt;?php echo session_id(); ?&gt;"&gt;</pre>
<p>übergeben werden.</p>
<p>&nbsp;</p>
<p>&#8220;Uh, das hört sich etwas kompliziert an, ich lass die Finger lieber davon!&#8221; &#8211; Neeein, es ist nur halb so schlimm!</p>
<p>&nbsp;</p>
<p><strong>Session in PHP starten:</strong></p>
<p>Um eine Session zu starten wird folgende Funktion benötigt:</p>
<pre class="brush:php">session_start();</pre>
<p>Beispiel:</p>
<pre class="brush:php">&lt;?php

// Session starten
session_start();

echo "Session ID: ".session_id();
echo "&lt;br/&gt;";
echo "Session Name: ".session_name();

?&gt;</pre>
<p><span style="text-decoration: underline;">Hinweis:</span></p>
<p>Es ist wichtig, dass keine Zeichen vor dem Aufruf der Funktion ausgegben werden, ansonsten wird folgende Warnung von PHP ausgegeben:</p>
<p>&nbsp;</p>
<blockquote><p><strong>Warning</strong>:  session_start() [<a href="http://php.net/manual/de/function.session-start.php">function.session-start</a>]:  Cannot send session cookie &#8211; headers already sent by (output started at C:\htdocs\sessions\session.php:2) in <strong>C:\htdocs\sessions\session.php</strong> on line <strong>8</strong></p>
<p>&nbsp;</p>
<p><strong>Warning</strong>:  session_start() [<a href="http://php.net/manual/de/function.session-start.php">function.session-start</a>]:  Cannot send session cache limiter &#8211; headers already sent (output  started at C:\htdocs\sessions\session.php:2) in <strong>C:\htdocs\sessions\session.php</strong> on line <strong>8</strong></p></blockquote>
<p>&nbsp;</p>
<p>Hier zwei kurze Beispiele, die diese PHP Warnung erzeugen:</p>
<pre class="brush:php">&lt;?php

echo "Irgendeine Ausgabe!";

// Session starten
session_start();

echo "Session ID: ".session_id();
echo "&lt;br/&gt;";
echo "Session Name: ".session_name();

?&gt;</pre>
<pre class="brush:php">&lt;!-- Leerzeichen in HTML --&gt;
&lt;?php

// Session starten
session_start();

echo "Session ID: ".session_id();
echo "&lt;br&gt;";
echo "Session Name: ".session_name();

?&gt;</pre>
<p>&nbsp;</p>
<p><strong>Anwendung &#8211; Session benutzen</strong></p>
<p>Nachdem die Session mit <em>session_start();</em> erzeugt bzw. neu geladen wurden, steht dem Programmierer in PHP das globale Array <strong>$_SESSION</strong> zur Verfügung. In diesem Array können nun Werte gespeichert werden.</p>
<p>In diesem Beispiel werden auf der ersten Seite der Name und das Land mit den Werten &#8220;Mustangore&#8221; und &#8220;Deutschland&#8221; in die Session gespeichert. Auf der zweiten Seite werden diese Werte, falls existent, ausgegeben.</p>
<pre class="brush:php">&lt;?php

/* Datei: seite_1.php */

// Session starten
session_start();

echo "Session ID: ".session_id();
echo "&lt;br/&gt;";
echo "Session Name: ".session_name();

// Werte 'name' und 'land' in die Session speichern
$_SESSION["name"] = "Mustangore";
$_SESSION["land"] = "Deutschland";

?&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
	&lt;body&gt;
		&lt;br/&gt; &lt;br/&gt;
		&lt;a href="seite_2.php"&gt;Weiter zu Seite zwei&lt;/a&gt;
	&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Auf die gespeicherten Werte wird folgendermaßen zugegriffen:</p>
<pre class="brush:php">&lt;?php

/* Datei: seite_2.php */

// Session starten
session_start();

// Überprüfen, ob die Werte in der Session vorhanden sind
if(isset($_SESSION["name"]) &amp;&amp; isset($_SESSION["land"])) {
	echo "Dein Name lautet: ".$_SESSION["name"];
	echo "&lt;br/&gt;";
	echo "Du kommst aus: ".$_SESSION["land"];
	echo "&lt;br/&gt;&lt;br/&gt;";
	echo "&lt;a href=\"seite_3.php\"&gt;Weiter um Wert 'land' zu entfernen&lt;/a&gt;";
} else {
	echo "Fehler: Der Wert 'name' oder 'land' existiert nicht!";
	echo "&lt;br/&gt;";
	echo "&lt;a href=\"seite_1.php\"&gt;Zurück zur Startseite&lt;/a&gt;";
}

?&gt;</pre>
<p>&nbsp;</p>
<p><strong>Einzelne Werte aus der Session entfernen</strong></p>
<p>Um einzelne Werte aus der Session zu löschen, wird die Funtkion <em>unset()</em> benötigt. Wir bleiben beim oben genannten Beispiel und erstellen die Datei &#8216;seite_3,php&#8217;:</p>
<pre class="brush:php">&lt;?php

/* Datei: seite_3.php */

// Session starten
session_start();

if(isset($_SESSION['land'])) {
	unset($_SESSION['land']);

	echo "Der Wert 'land' wurde entfernt!";
	echo "&lt;br/&gt;";

	if(isset($_SESSION['land'])) {
		echo "'land':".$_SESSION['land'];
	} else {
		echo "Der Wert 'land' wurde erfolgreich aus der Session entfernt!";
	}

	echo "&lt;br/&gt;&lt;br/&gt;";
	echo "&lt;a href=\"seite_4.php\"&gt;Komplette Session löschen&lt;/a&gt;";
} else {
	echo "Fehler: Der Wert 'land' existiert nicht!";
	echo "&lt;br/&gt;";
	echo "&lt;a href=\"seite_1.php\"&gt;Zurück zur Startseite&lt;/a&gt;";
}

?&gt;</pre>
<p>&nbsp;</p>
<p><strong>Die komplette Session löschen<br />
</strong></p>
<pre class="brush:php">&lt;?php

/* Datei: seite_4.php */

// Session starten
session_start();

// Löschen aller Session Werte.
$_SESSION = array();

// Da die komplette Session gelöscht werden soll, muss auch das Session-Cookie 'gelöscht' werden
if(ini_get("session.use_cookies")) {
	$params = session_get_cookie_params();
	setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
}

// Löschen der Session
session_destroy();

?&gt;</pre>
<p>&nbsp;</p>
<p>Hier findest Du in einem .zip Archiv die vier Beispielseiten aus diesem Artikel:</p>
<p><strong><a rel="attachment wp-att-155" href="http://www.power-tutorials.de/sessions-tutorial/sessions/">Session Beispielseiten</a></strong></p>
<p>&nbsp;</p>
<p>- Mustangore</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.power-tutorials.de/sessions-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ausgabe der Funktion parseInt() falsch?</title>
		<link>http://www.power-tutorials.de/5/</link>
		<comments>http://www.power-tutorials.de/5/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 07:35:58 +0000</pubDate>
		<dc:creator>Jelsch</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Dezimalzahl]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Oktalzahl]]></category>
		<category><![CDATA[parseInt]]></category>

		<guid isPermaLink="false">http://www.power-tutorials.de/?p=5</guid>
		<description><![CDATA[Warum gibt die Funktion parseInt(&#8217;08&#8242;) und parseInt(&#8217;09&#8242;) bei JavaScript jeweils den Wert 0 zurück? &#160; Problem: // Ergebnis: number = 0; var number = parseInt('08'); // Ergebnis: number = 0; var number = parseInt('09'); Mir ist dieses, nennen wir es mal Phänomen, aufgefallen als ich einen Kalender programmiert habe. Handelt es sich hierbei um einen [...]]]></description>
			<content:encoded><![CDATA[<p>Warum gibt die Funktion <em>parseInt(&#8217;08&#8242;)</em> und <em>parseInt(&#8217;09&#8242;)</em> bei JavaScript jeweils den Wert <em>0</em> zurück?</p>
<p>&nbsp;</p>
<p><strong>Problem:</strong></p>
<pre class="brush:js">// Ergebnis: number = 0;
var number = parseInt('08');

// Ergebnis: number = 0;
var number = parseInt('09');</pre>
<p>Mir ist dieses, nennen wir es mal Phänomen, aufgefallen als ich einen Kalender programmiert habe. Handelt es sich hierbei um einen Bug?</p>
<p>&nbsp;</p>
<p>Wir schauen uns hierzu die <a title="offizielle" href="http://www.w3schools.com/jsref/jsref_parseInt.asp" target="_blank">offizielle</a> Beschreibung der Funktion parseInt() genauer an:</p>
<blockquote class="javascript"><p><strong><em>parseInt(string, radix)</em></strong></p></blockquote>
<blockquote><p><strong><em>string</em></strong>: die Zeichenkette, welche zu einer Ganzzahl umgewandelt werden soll<br />
<strong><em>radix</em></strong>: Basis des Zahlensystems, in welches die Zeichenkette interpretiert wird</p>
<p>&nbsp;</p>
<p><strong>Besonderheiten:</strong><br />
Zeichenketten die mit &#8217;0x&#8217; anfangen werden ohne Angabe des zweite Arguments automatisch als Hexadezimalzahlm also zur Basis 16, interpretiert.<br />
Zeichenketten die mit einer &#8217;0&#8242; anfangen werden ohne Angabe des zweiten Arguments automatisch als Oktalzahl, also zur Basis 8, interpretiert.</p></blockquote>
<p>&nbsp;</p>
<p>Warum gibt jedoch parseInt(&#8217;08&#8242;) und parseInt(&#8217;09&#8242;) den Wert 0 zurück?<br />
Es handelt sich hierbei um einen Fehlerwert. Eine Oktalzahl enthält Ziffern von 0 bis 7.<br />
Äquivalent dazu ergibt beispielsweise parseInt(&#8217;06&#8242;, 6) den Wert 0 zurück.<br />
In den meisten Fällen wollen wir jedoch eine schöne Dezimalzahl ausgegeben bekommen.</p>
<p>&nbsp;</p>
<p><strong>Lösung:</strong><br />
Wir benutzen den zweiten Parameter <em>radix</em> und erzwingen die Funktion, uns eine schöne Dezimalzahl auszugeben:</p>
<pre class="brush:js">// Ergebnis: number = 8
var number = parseInt('08',10);

// Ergebnis: number = 9
var number = parseInt('09',10);</pre>
<p>&nbsp;</p>
<p>- Mustangore</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.power-tutorials.de/5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

