Mai 14

In diesem Beispiel wird erklärt wie man ein Token generiert und dies als Form Post Schutz verwendet.

1. Füge den folgenden Code in jede Form ein

  1. <input type="hidden" name="token" value="’.$_SESSION['token'].’" />

2. Der folgende Code muss in jeder Datei die geschützt werden soll enthalten sein. Im besten Fall fügt man den Code in eine Config.

  1. <?
  2. define("TOKEN_PROTECTED", true);
  3. if(isset($_SESSION["userid"])) {
  4.     // your function to check if a user is logged in
  5.     if (empty($_SESSION[‘token’]) || !isset($_SESSION[‘token’])) {
  6.         // if there is no token set
  7.         $_SESSION[‘token’] = strrev(md5($_SESSION[‘password’]));
  8.         //set a token with a reverse string and md5 encryption of the user’s password
  9.     }
  10.     if (TOKEN_PROTECTED != false) {
  11.         // if you did not define CSRF_PROTECTED as false
  12.         if ($_POST) {
  13.             // if there is a form present
  14.             if ($_POST[‘token’] != $_SESSION[‘token’]) {
  15.             // if the input token does not equal the session token
  16.                 header("Location: /index.php");
  17.                 // redirect to index
  18.                 die(); // stops all $_POST data from being sent
  19.             }
  20.         }
  21.     }
  22. }
  23. ?>
Mai 14

Der Download Manager von Firefox öffnet sich bei jedem Download.
Doch viele Downloads sind bei einer schnellen Internetverbindung beendet, bevor sich das Fenster öffnen kann. Dies ist auf Dauer lästig. Es gibt eine möglichkeit das Dialogfenster bei kurzen Ladezeiten zu unterdrücken. Dazu muss man wie folgt vorgehen:

1. In die Adresszeile about:config eingeben.
2. Doppelklicken auf den Eintrag “browser.download.manager.openDelay”
3. Eingabe der Zeit in Milisekunden, die der Download benötigen darf, ohne dass sich das Dialogfenster öffnet.

Mai 14

Als erstes Braucht man eine Tabelle.

  1. CREATE TABLE `banned_ip` (
  2. `id` INT( 25 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `ip` VARCHAR( 25 ) NOT NULL ,
  4. `reason` TEXT NOT NULL
  5. )

login.php

  1. $con = mysql_connect("localhost", "test", "test");
  2.  
  3. if(!$con) { die("Can not connect to database: ".mysql_error()); }
  4.  
  5. $db = mysql_select_db("test", $con);
  6.  
  7. if(!$db){ die("Can not select database: ".mysql_error()); }

admin.php

  1. <?php
  2. include("connect.php");
  3.  
  4. function ban(){
  5.         echo "<form action=’?act=ban’ method=’post’>" .
  6.              "<table width=’500′ border=’1′>" .
  7.                  "<tr>".
  8.              "<td><center><font size=’+2′>Ban!</font></center></td>".
  9.              "</tr>".
  10.              "<tr>".
  11.              "<td>IP:<br> <input type=’text’ name=’ip’ size=’30′ />
  12. ".
  13.              "Reason:
  14. ".
  15.              "<textarea rows=’10′ cols=’55′ name=’reason’></textarea><br>".
  16.              "<input type=’submit’ value=’Ban!’>".
  17.              "</td>".
  18.              "</tr>".
  19.              "</table>".
  20.                  "<br><br>";
  21.  
  22.         $result = mysql_query("SELECT * FROM banned_ip");
  23.         $rows = mysql_num_rows($result);
  24.        
  25.         if($rows > 0){
  26.  
  27.                 //Display banned IPs
  28.                 echo "<table width=’700′ border=’1′>" .
  29.                     "<tr>" .
  30.                     "<td><center><font size=’+2′>Banned IPs</font></center></td>" .
  31.                     "</tr><tr><td>" .
  32.                     "<table border=’1′ width=’100%’>" .
  33.                     "<tr><td width=’25%’><b>Id</b></td><td width=’25%’><b>Ip</b></td><td width=’25%’><b>Reason</b></td><td width=’25%’><b>Action</b></td>" .
  34.                     "</tr>";
  35.  
  36.                 while($row = mysql_fetch_array($result)){
  37.                         echo "<tr><td width=’25%’>".$row[‘id’]."</td><td width=’25%’>".$row[‘ip’]."</td><td width=’25%’>".$row[‘reason’]."</td><td width=’25%’><a href=’?act=del&id=".$row[‘id’]."’>Delete</a></td></tr>";
  38.                 }
  39.  
  40.                 echo "</table></td></tr></table>";
  41.         }
  42. }
  43.  
  44. //This function will ban a IP
  45. function ban_ip(){
  46.  
  47.         $ip = $_REQUEST[‘ip’];
  48.         $reason = $_REQUEST[‘reason’];
  49.  
  50.         //If there are errors display them in here
  51.         if(empty($ip)){ die("Please insert a IP!"); }
  52.  
  53.         if(empty($reason)){ die("Please insert a reason!"); }
  54.  
  55.         //Let’s insert this ip and reason into your database
  56.  
  57.         $insert = mysql_query("INSERT INTO banned_ip (ip, reason) VALUES (‘$ip’, ‘$reason’)");
  58.  
  59.         //If there was problems with inserting those things into database, lets display the error
  60.         if(!$insert){ die(mysql_error()); }
  61.  
  62.         echo "<table width=’500′ border=’1′>"
  63.             ."<tr>"
  64.             ."<td><center>Info</center></td>"
  65.             ."</tr>"
  66.             ."<tr>"
  67.             ."<td><br>IP: <b>$ip</b> was banned, Reason: <b>$reason</b><br><a href=’admin.php’>Back</a><br></td>"
  68.             ."</tr>"
  69.             ."</table>";
  70. }
  71.  
  72.  
  73. function del() {
  74.  
  75.         $id = $_GET[‘id’];
  76.  
  77.         $del = mysql_query("DELETE FROM banned_ip WHERE id=’$id’");
  78.  
  79.  
  80.         if(!$del){ die(mysql_error()); }
  81.  
  82.         echo "<table width=’500′ border=’1′>"
  83.             ."<tr>"
  84.             ."<td><center>Info</center></td>"
  85.             ."</tr>"
  86.             ."<tr>"
  87.             ."<td><br>Ban deleted, <a href=’admin.php’>Go back</a><br></td>"
  88.             ."</tr>"
  89.             ."</table>";
  90.  
  91. }
  92.  
  93. switch($act){
  94.         default;
  95.                 ban();
  96.                 break;
  97.  
  98.         case "ban";
  99.                 ban_ip();
  100.                 break;
  101.  
  102.         case "del";
  103.                 del();
  104.                 break;^
  105. }
  106. ?>

bans.php

  1. <?php
  2. include("connect.php");
  3. $ip = $_SERVER[‘REMOTE_ADDR’];
  4. $find_ip = mysql_query("SELECT * FROM banned_ip WHERE ip=’$ip’");
  5. $ban = mysql_fetch_array($find_ip);
  6. if($ip == $ban[‘ip’]){ die("You are banned from this site!");}
  7. ?>

Den folgenden Code in die Datei z.B. index.php einfügen und du bist gesichert.

  1. <?php
  2. include("bans.php");
  3. ?>
Mai 14

1. Die Bibliothek und das Stylesheet in den Header bereich einfügen.

  1. <head>
  2. <script type = "text/javascript" src = "js/prototype.js"></script>
  3. <script type = "text/javascript" src = "js/scriptaculous.js?load=effects"></script>
  4. <script type = "text/javascript" src = "js/prototip.js"></script>
  5. <link rel="stylesheet" type="text/css" href="css/prototip.css" />
  6. </head>

2. Ein Element mit dem gewünschten Style und Javascript-Funktion versehen.

  1. <img src="questionmark.jpg" id="tooltipeaACC"></div>
  2. <script language="JavaScript" type="text/javascript">
  3.         new Tip(‘tooltipeaACC’, ‘InfoBox …’, { title: ‘Hilfe:’, className: ‘test’, effect: ‘blind’});
  4. </script>

Thats it !

Prototip Download

Mai 14

PHP Data Objects oder kurz PDOs stellt eine Datenbankabstraktionsebene dar und ermöglicht einen einheitlichen Zugriff von PHP auf unterschiedliche SQL-Datenbanken, wie zum Beispiel MySQL, PostgreSQL oder SQLite. Dabei wird etwa der Portierungsaufwand beim Umstieg auf eine andere Datenbank minimiert.

PHP Data Objects existieren seit PHP 5.1, bzw davor als PECL Modul.

Beispiel 1. Fetching rows using different fetch styles

  1.  
  2. <?php
  3. $sth = $dbh->prepare("SELECT name, colour FROM fruit");
  4. $sth->execute();
  5.  
  6. /* Exercise PDOStatement::fetch styles */
  7. print("PDO::FETCH_ASSOC: ");
  8. print("Return next row as an array indexed by column name\n");
  9. $result = $sth->fetch(PDO::FETCH_ASSOC);
  10. print_r($result);
  11. print("\n");
  12.  
  13. print("PDO::FETCH_BOTH: ");
  14. print("Return next row as an array indexed by both column name and number\n");
  15. $result = $sth->fetch(PDO::FETCH_BOTH);
  16. print_r($result);
  17. print("\n");
  18.  
  19. print("PDO::FETCH_LAZY: ");
  20. print("Return next row as an anonymous object with column names as properties\n");
  21. $result = $sth->fetch(PDO::FETCH_LAZY);
  22. print_r($result);
  23. print("\n");
  24.  
  25. print("PDO::FETCH_OBJ: ");
  26. print("Return next row as an anonymous object with column names as properties\n");
  27. $result = $sth->fetch(PDO::FETCH_OBJ);
  28. print $result->NAME;
  29. print("\n");
  30. ?>
  31.  
Mai 10

Diese Statistik sollte ich meinem Chef zeigen :)

programmieren

Quelle: isnichwahr.com

Mai 09

Alt gegen Neu, wer macht das Rennen.
Um dies herrauszufinden wurde ein Vergleich gestartet.

Der Sieger heisst: Mac Book Air.

air_vscommodore

Quelle: isnichwahr.com

Mai 09

Gerade hab ich mich am Flashmob Freeze beteiligt.
Begonnen hat es um 14:00 Uhr am Odeonsplatz in München und hat 5 Minuten gedauert.
Organisiert wurde das ganze von einer Facebook Gruppe im Internet.

Ablauf
Einem Aufruf aus dem Internet folgend treffen sich die Teilnehmer an einem Ort, an dem sie weitere Instruktionen über den eigentlichen Aktionsort und Ablauf des Flashmobs bekommen. Typisch für Flashmobs sind die blitzartige Bildung des Mobs aus dem Nichts, das identische Handeln im Mob (z. B. applaudieren, telefonieren mit gleichen inhaltlichen Texten), und die schlagartige Auflösung nach wenigen Minuten.

Die Beteiligten, “Blitzaufläufer”, “Smart Mobber” oder “Flash Mobber” genannt, tauchen am vereinbarten Ort zur vereinbarten Zeit auf, um dort kurz und für die unwissenden Passanten völlig überraschend einer gänzlich sinn- und inhaltslosen Tätigkeit nachzugehen.

So schnell wie die Menschen zusammengekommen sind, löst sich ihre Gruppe vor den Augen der verdutzten Zuschauer dann auch wieder auf. Dieses merkwürdige Verhalten wird vor allem durch die immer schnelleren zwischenmenschlichen Kommunikationsmöglichkeiten beeinflusst und unterstützt.

Eine verwandte Aktionsform ist der Smart Mob, der mit dem öffentlichen Auftritt einem politischen oder gesellschaftlichen Ziel zu Aufmerksamkeit verhelfen will. Der Begriff geht auf einen Bestseller des amerikanischen Psychologen Howard Rheingold aus dem Jahr 2003 zurück.


Eine technische Variante ist das Radioballett, eine im Jahre 2002 in Leipzig erstmals aufgeführte Form des Straßenprotestes oder der gewollten Irritation von Passanten. Die Akteure führen ein Radio mit sich und erhalten durch dieses Anweisungen, wie sie sich zu verhalten haben. So werden die Teilnehmer etwa aufgefordert zu winken, zu tanzen, gebückt umherzulaufen, sich auf den Boden zu legen oder zu sammeln.

Flashmobs gelten als spezielle Ausprägungsformen der virtuellen Gesellschaft (virtual community, Online-Community), die neue Medien wie Mobiltelefone und Internet benutzen, um kollektive Aktionen zu organisieren.

Mai 09

Wer schonmal ein Kontaktformular in PHP erstellt hat kennt das Problem, dass die meisten User das E-Mail Feld entweder leer lassen oder falsch ausfüllen.

Um dies zu vermeiden sollte man mit Regular-Expressions arbeiten um die Gültigkeit der E-Mail Adresse zu überprüfen.

  1. <?PHP
  2. .
  3. .
  4. .
  5. public function EmailValidating($emailAdress) {
  6.     if(!empty($emailAdress) && preg_match("/^[\w.+-]{2,64}\@[\w.-]{2,255}\.[a-z]{2,6}$/", trim($emailAdress))) {
  7.         /**
  8.         SEND CONTACT FORM
  9.         */
  10.     else {
  11.         return "Email ist ungültig";
  12.     }
  13. .
  14. .
  15. .
  16. ?>

Die Funktion prüft ob die Eingabe leer ist und ob die E-Mail Adresse keine Sonderzeichen ausser . + und – hat, die Anzahl der Zeichen zwischen 2 und 64 liegen, ob ein @-Zeichen vorhanden ist, und ob eine Top-level domain (TLD) zwischen 2 – 6 Zeichen hat wobei alle Buchstaben zwischen a – z erlaubt sind.

Mai 09

Wer hätte das gedacht dass so viele Menschen an meinem Geburtstag starben.
Es waren Weltweit schätzungsweise 141.490 Menschen.

141,490 People

Menschen die am 12 November starben (unabhängig vom Jahr)

* 2006 – General Jacob E. Smart, US Air Force leader World War II
* 2005 – William G. Adams, former mayor of St. John’s, Newfoundland, Canada.
* 2004 – Tito Francona, baseball player
* 2003 – Tony Thompson, American drummer (Chic, Power Station)
* 2003 – Penny Singleton, American actress
* 2003 – Kay E. Kuter, American actor
* 2003 – Cameron Duncan, New Zealand director
* 2001 – Tony Miles, English chess player
* 2000 – Franck Pourcel, French popular orchestra leader
* 2000 – Leah Rabin, wife of Israeli Prime Minister Yitzhak Rabin,
* 1997 – Carlos Surinach, Spanish composer
* 1994 – Wilma Rudolph, American runner
* 1993 – H. R. Haldeman, White House Chief of Staff
* 1990 – Eve Arden, American actress
* 1984 – Chester Himes, American author
* 1981 – William Holden, American actor
* 1976 – Walter Piston, American composer
* 1972 – Rudolf Friml, composer of operettas
* 1965 – Syedna Taher Saifuddin, Bohra Spiritual Leader
* 1955 – Alfréd Hajós, Hungarian swimmer
* 1948 – Umberto Giordano, Italian composer
* 1944 – Otto Blumenthal, German mathematician
* 1941 – Abe “Kid Twist” Reles, American mobster
* 1939 – Norman Bethune, Canadian doctor and humanitarian
* 1916 – Percival Lowell, American amateur astronomer, founder of Lowell Observatory in Flagstaff, Arizona
* 1865 – Elizabeth Gaskell, English novelist
* 1836 – Juan Ramón Balcarce, Argentine military leader and politician
* 1757 – Colley Cibber, English poet
* 1742 – Friedrich Hoffmann, German physician and chemist
* 1671 – Thomas Fairfax, English Civil War general
* 1667 – Hans Nansen, Danish statesman
* 1595 – John Hawkins, English shipbuilder and trader
* 1567 – Anne de Montmorency, Constable of France
* 1555 – Stephen Gardiner, English statesman
* 1434 – King Louis III of Naples
* 1094 – King Duncan II of Scotland
* 1035 – Canute the Great
* 607 – Pope Boniface III