Das Tippsforum
Link zum Forum
Ich diesem Tutorial zeige ich euch, wie man sein eigenes C++ Konsolenprogramm im Fullscreenmodus öffnet. Als erstes kommt der Code un dann die Erklärung:
#include <iostream>
#include <ostream>
#include <windows.h>
int main()
{
keybd_event ( VK_MENU , 0×38 , 0 , 0 );
keybd_event ( VK_RETURN , 0×1c , 0 , 0 );
keybd_event ( VK_RETURN , 0×1c , KEYEVENTF_KEYUP , 0 );
keybd_event ( VK_MENU , 0×38 , KEYEVENTF_KEYUP , 0 );
std::cout << “Fullscreen gestartet”;
system(”PAUSE”);
return 0;
}
In den ersten drei Zeilen werden die verschiedenen Funktionen includet, die man braucht um das Programm auszuführen. Alle diese Funktionen sind Standart Funktionen und müssten mit jedem guten Compiler funktionieren. In Zeile 6-9 wird der Fullscreen Modus gelanden. Diese Funktionen sollten immer so bleiben, wie sie jetzt sind. In Zeile 10 wird dann nur noch eine Text geschrieben, damit der Fullscreen Modus nicht komplett leer bleibt. In Zeile 11 sorgen wir mit dem Befehl system(”PAUSE”) dafür, dass sich das Fenster nicht gleich wieder schließt.
Ziel der Verschlüsselung ist es, den Quelltext(Sourcecode) von PHP-Dateien so zu verschlüsseln, dass fremde Personen ihn nicht mehr Entschlüsseln können. Für die Verschlüsselungen gibt es teuer Programme wie zum Beispiel IonCube oder Zend, die teilweise 1000 Dollar kosten. In diesem Tutorial möchte ich mich mit zwei kostenlosen Alternativen beschäftigen. Das sind PHP Obfuscator und POBS. Diese Programme sind nicht unbedingt so sicher die die teuren Programme, halten aber viele Leute, die keine PHP-Profis sind, davon ab, den Code wiederherzustellen. Außerdem werden ich in diesen Beispieln ein Test PHP-Script verschlüsseln, damit sie sehen, wie der Code nachher aussieht.
error_reporting();
$text = "Test PHP";
echo $text;
?>
Aber nun Fangen wir an:
POBS:
Test PHP-Code:
error_reporting();
$V1cb251ec = "Test PHP";
echo $V1cb251ec;
?>
PHP Obfuscator:
Test PHP-Code:
Fazit: Für Leute mit Windows ist der PHP Obfuscator besser geeignet, da er besser(schwierigere) Namen für Variablen und Funktionen wählt. Trotzdem bieten diese beiden Verschlüsseler keinen optimalen Schutz.
Hier sind die Downloadlinks für die Leute, die sich die Programme angucken wollen:
Hattet ihr auch schon einmal das Problem, das euch andere Mitglieder im Forum nerven, weil ich angeblich zu viele Rechtschreibfehler macht oder wollt ihr an euer Internetseite weitermachen und keine Rechtschreibfehler. Dann gibt es jetzt die neue Lösung für den Firefox. Das Wörterbuch für den Firefox kann man hier downloaden und es ist in fast jeder Sprache verfügbar. Wenn du in irgendein Textfeld schreibst, prüft die Erweiterung automatisch ob das aktuelle Wort im Wörterbuch enthalten ist. Wenn das Wort falsch geschrieben ist, wird es rot unterstrichen. Dies sieht dann ungefähr so aus:

Sie haben auch das Problem. Sie wollen jetzt schnell den PC beenden, aber er lässt sich nicht runterfahren. Dann ist das hier genau das richtige für dich. Hier ist eine 4 Schritte Anleitung wie du deinen PC dazu bringst schneller herunterzufahren.
Um einen HTTP-Request mittels JavaScript an einen Server absetzen zu können, benötigt man eine Instanz einer Klasse, welche diese Funktionalität bietet. Solch eine Klasse, genannt XMLHTTP, wurde ursprünglich im Internet Explorer als ein ActiveX-Objekt eingeführt. Später implementierten Mozilla, Safari und andere Browser eine Klasse namens XMLHttpRequest, welche die Methoden und Eigenschaften des originalen ActiveX-Objektes von Microsoft unterstützt.
Einige Versionen einiger Mozilla-basierter Browser werden nicht korrekt arbeiten, wenn die Antwort des Servers keinen XML mime-type im Header hat. Um dem entgegenzuwirken, kann man einen zusätzlichen Methodenaufruf absetzen, um den vom Server gesendeten Header zu überschreiben - für den Fall, dass dessen mime-type nicht text/xml lautet. Im nächsten Schritt entscheidet man, was zu tun ist, nachdem man vom Server eine Antwort zu dem abgesetzten Request bekommen hat. An dieser Stelle muss man dem HTTP Request-Objekt lediglich mitteilen, welche JavaScript-Funktion die Antwort abarbeiten soll. Dies erreicht man, indem man die onreadystatechange-Eigenschaft des Objektes genauso nennt wie die JavaScript-Funktion, welche man benutzen möchte. Zur Erinnerung: beim Abschicken des Requests wurde der Name einer JavaScript-Funktion mitgegeben, welche die Antwort abarbeiten soll.
http_request.onreadystatechange = nameDerFunktion;
Schauen wir mal, was diese Funktion tun sollte. Zuerst muss die Funktion den Status des Requests abfragen. Hat dieser den Wert 4, bedeutet das, dass die Antwort des Servers vollständig empfangen wurde und dass sie nun bearbeitet werden kann. Methoden des XMLHttpRequest Objekts abort() Bricht die aktuelle Anfrage ab
getAllResponseHeaders()
Gibt den Antwort Header als String zurück
getResponseHeader(”xyz”)
Gibt Den Header xyz zurück
open(”method”, “URL“[, asyncFlag[, “userName”[, “password”]]])
Stellt die Verbindung zur Zielseite her
send(daten)
Sendet Daten an den Server
setRequestHeader(”key”, “value”)
Setzen von Header
setMimeType(”mimetype”)
Überschreibt den MimeType der angeforderten Daten
Eigenschaften des XMLHttpRequest Objekts
onreadystatechange
Callbackfunktion, die bei Events aufgerufen werden soll
readyState
Aktueller Status der Anfrage:
0 : Noch keine Verbindung hergestellt (open nicht aufgerufen?)
1 : Noch keine Anfrage gestellt (send nicht aufgerufen?)
2 : Anfrage gestellt, aber noch nicht abgeschlossen. Header und Status verfügbar
3 : Response Daten werden übertragen
4 : Anfrage abgeschlossen, alle Daten übertragen
responseText
Ergebnis der Anfrage als Text
responseXML
Ergebnis als XML (Falls gültiges XML-Dokument. Sonst null)
status
HTTP-Status der Anfrage (200=OK)
statusText HTTP-Status im Textformat
Jetzt könnten wir Beispielsweise ein Script schreiben, welches eine Datei ausließt und diese dann ausgiebt:
ajax1.html
<script type="text/javascript" language="javascript"> var http_request = false;function macheRequest(url) {http_request = false;if (window.XMLHttpRequest) { // Mozilla, Safari,...http_request = new XMLHttpRequest();if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); // zu dieser Zeile siehe weiter unten } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('EndeKann keine XMLHTTP-Instanz erzeugen'); return false; } http_request.onreadystatechange = alertInhalt; http_request.open('GET', url, true); http_request.send(null); } function alertInhalt() { if (http_request.readyState == 4) { var answer = http_request.responseText; if(document.getElementById("inhalt").innerHTML != answer){ document.getElementById("inhalt").innerHTML = answer; } else{ document.getElementById("inhalt").innerHTML = ""; } } } </script> <span style="cursor: pointer; text-decoration: underline" onclick="macheRequest('test.html')">Einen Request absetzen </span> <div id="inhalt"></div>
Dieses Script ließt den Inhalt der test.html aus. Diese hat den Inhalt:
Natürlich kann man auch XML-Dateien auslesen, das geht so:
Ich bin die Ausgabe
ajax2.html:
<script type="text/javascript" language="javascript"> var http_request = false;function macheRequest(url) {http_request = false;if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); // zu dieser Zeile siehe weiter unten } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('EndeKann keine XMLHTTP-Instanz erzeugen'); return false; } http_request.onreadystatechange = alertInhalt; http_request.open('GET', url, true); http_request.send(null); } function alertInhalt() { if (http_request.readyState == 4) { var xmldoc = http_request.responseXML; var root_node = xmldoc.getElementsByTagName('nachricht').item(0); var answer = root_node.firstChild.data; //var answer = http_request.responseText; if(document.getElementById("inhalt").innerHTML != answer){ document.getElementById("inhalt").innerHTML = answer; } else{ document.getElementById("inhalt").innerHTML = ""; } } } </script> <span style="cursor: pointer; text-decoration: underline" onclick="macheRequest('test.xml')">Einen Request absetzen </span> <div id="inhalt"></div>
In der XML-Datei “test.xml” steht dann:
<?xml version="1.0"?><nachricht>Wie gehst?!</nachricht>
Mit unserem bissherigem Können, könnten wir auch ein Script schreiben, welches mit AJAX und PHP arbeitet. D.h. wir rufen mit Hilfe einer PHP-Datei die aktuelle Uhrzeit ab.
ajax3.html
<script type="text/javascript" language="javascript"> var http_request = false;function macheRequest(url) { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); // zu dieser Zeile siehe weiter unten } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('EndeKann keine XMLHTTP-Instanz erzeugen'); return false; } http_request.onreadystatechange = alertInhalt; http_request.open('GET', url, true); http_request.send(null); } function alertInhalt() { if (http_request.readyState == 4) { var answer = http_request.responseText; //var answer = http_request.responseText; if(document.getElementById("inhalt").innerHTML != answer){ document.getElementById("inhalt").innerHTML = answer; } else{ document.getElementById("inhalt").innerHTML = ""; } } } setInterval("macheRequest('uhrzeit.php')",1000); </script> Dieses Script gibt die aktuelle Serverzeit aus:<br> <div id="inhalt">Lade..</div>
In der uhrzeit.php müsste dann folgendes stehen:
uhrzeit.php
<?php echo date("H:i:s", time()); ?>
Abschluss Im ersten Kapitel haben wir angesprochen, dass das Navigieren mit den Vor- und Zurückbutton sehr schwierig ist, doch so schwierig ist es nun auch wieder nicht…
Hier ein Beispiel, wo das Navigieren mit den Buttons klappt: http://ajax.solin.ch/
Wie man sieht Arbeitet dieser “Ajaxaner” mit Ankern (<a name=”so_und_so”>) dadurch ist das Navigieren möglich… (näheres siehe Source-Code auf der Seite).
Dieses Tutorial wurde von Netbuster geschrieben und von Think bearbeitet. ES steht unter Creativ Commons 2.0. Copyright by ajax-community.de