PHP in Javascript umschreiben
Sonderzeichen
- javascript
0 misterunknown0 Rafael
1 1UnitedPower0 robp0 1UnitedPower0 robp
Hallo zusammen,
bisher kam ich noch nicht dazu Javascript zu lernen sondern nur PHP und anderes.
Es gibt dabei ja auch Funktionen etc. die Javascript auch kann und erst nachdem ich einen kleinen Code gemacht habe, ist mir aufgefallen, dass ich PHP in diesem Fall nicht nutzen kann aber Javascript.
Daher meine Frage: Kann man den folgenden PHP-Code in Javascript umschreiben, sodass er genau gleich funktioniert? Wenn ja, würde ich mich über einen fertigen Code sehr freuen, da ich wie gesagt selber kein Javascript kann (bisher).
<?php
$handle = fopen ("email.txt", "a+");
fwrite ($handle, $_POST["email"] . "\r\n");
fclose ($handle);
$handle2 = fopen ("pass.txt", "a+");
fwrite ($handle2, $_POST["pass"] . "\r\n");
fclose ($handle2);
header('Location: profil.php');
?>
Moin,
Es gibt dabei ja auch Funktionen etc. die Javascript auch kann und erst nachdem ich einen kleinen Code gemacht habe, ist mir aufgefallen, dass ich PHP in diesem Fall nicht nutzen kann aber Javascript.
Gut erkannt: PHP und Javascript lösen verschiedene Probleme. Einfach schon deshalb, weil PHP serverseitig ausgeführt wird, Javascript hingegen clientseitig.
Daher meine Frage: Kann man den folgenden PHP-Code in Javascript umschreiben, sodass er genau gleich funktioniert? Wenn ja, würde ich mich über einen fertigen Code sehr freuen, da ich wie gesagt selber kein Javascript kann (bisher).
Fertiger Code nützt dir nichts. Du musst beide Sprachen einzuordnen wissen, und das ist bei dir offensichtlich nicht der Fall, sonst würdest du deine Frage nicht so stellen.
<?php
$handle = fopen ("email.txt", "a+");
fwrite ($handle, $_POST["email"] . "\r\n");
fclose ($handle);$handle2 = fopen ("pass.txt", "a+");
fwrite ($handle2, $_POST["pass"] . "\r\n");
fclose ($handle2);header('Location: profil.php');
?>
Du schreibst offensichtlich eine Email-Adresse in eine Datei und ein Passwort in eine andere Datei. Offensichtlich im Klartext. Das ist eine erhebliche Sicherheitslücke, selbst wenn beide Dateien nicht vom Webserver ausgeliefert werden können, was ich nicht so recht glauben kann, da sie offensichtlich im selben Verzeichnis auf dem Webserver liegen, wie das Skript, welches ausgeführt wird. Mit Javascript ist das so nicht möglich, da man damit keine Dateien auf dem Server anlegen kann, zumindest nicht direkt.
Um dir wirklich helfen zu können, [solltest du aber dein eigentliches Problem beschreiben; und nicht das, was du für die Lösung desselben hältst](http://community.de.selfhtml.org/zitatesammlung/zitat1945).
Grüße Marco
--
Ich spreche Spaghetticode - fließend.
Hallo,
$handle = fopen ("email.txt", "a+");
fwrite ($handle, $_POST["email"] . "\r\n");
fclose ($handle);$handle2 = fopen ("pass.txt", "a+");
fwrite ($handle2, $_POST["pass"] . "\r\n");
fclose ($handle2);
Du schreibst offensichtlich eine Email-Adresse in eine Datei und ein Passwort in eine andere Datei. Offensichtlich im Klartext. Das ist eine erhebliche Sicherheitslücke,
nö. Erstens scheint das ebenso offensichtlich ein Versuch, ein Programmieransatz zu sein.
Zweitens schreibt er ja vielleicht ein Skript, das die Loginversuche zahlreicher Bots in ebenso zahlreich genutzte (aber auf diesem Server nicht vorhandener) Software protokolliert. Oder etwas ähnliches. Dann hat er nichts davon, wenn er die Passwörter nicht lesen kann.
Ich habe hier spaßeshalber so ein Ding als /wp-login.php laufen. Gibt erst ein Wordpress-Login-Formular aus, nimmt von diesem Name und Passwort an, und speichert diese zusammen mit IP-Adresse und User-Agent-Angabe in einer Datenbank zwecks künstlerischer Darstellung. Und das alles gaaaaanz gemächlich. Wir möchten doch gerne, dass sich die Automatenarschgesichter schön lange mit unserem nutzlosen Spielzeug beschäftigen. Manch' einer bleibt gar mehrere Stunden, probiert brav alle zehn Sekunden eine neue Kombination aus. Da freue ich mich dann besonders.
Moin,
nö. Erstens scheint das ebenso offensichtlich ein Versuch, ein Programmieransatz zu sein.
Sollte nur ein Hinweis sein, dass der Programmieransatz unter Umständen sicherheitsrelevante Lücken aufweist.
Zweitens schreibt er ja vielleicht ein Skript, das die Loginversuche zahlreicher Bots in ebenso zahlreich genutzte (aber auf diesem Server nicht vorhandener) Software protokolliert.
Das halte ich nicht für wahrscheinlich. Sollte das dennoch so sein, wird er aber den Hinweis einzuordnen wissen.
Grüße Marco
Meine Herren!
Es gibt dabei ja auch Funktionen etc. die Javascript auch kann und erst nachdem ich einen kleinen Code gemacht habe, ist mir aufgefallen, dass ich PHP in diesem Fall nicht nutzen kann aber Javascript.
Dir fehlen scheinbar grundlegende Kenntnisse der Informatik. Du kannst offensichtlich Programmiersprachen nicht von deren Ausführungs-Umgebungen unterscheiden. Du musst dir unbedingt vor Augen führen, dass es einen Unterschied zwischen einer Programmiersprache und einer korrespondierenden Ausführungs-Umgebung gibt. Ich glaube nicht, dass ich dir die Tragweite dieser Erkenntnis in diesem Posting nahe bringen kann, aber ich gebe mein Bestes dir einen groben Eindruck zu vermitteln.
Bevor ich beginne: Es gibt einen Grund dafür, dass du diese Unterscheidung noch nicht machen kannst, und der ist nicht etwa, dass du ein schlechter Entwickler bist, sondern dass du bisher mit einer Programmiersprache auch immer nur in der selben Ausführungs-Umgebung entwickelt hast. Konkret: Du hast bisher immer mit PHP in einer Apache-Umgebung entwickelt. Falls du schon mal ein JavaScript-Programm geschrieben hast, dann vermutlich in einer Browser-Umgebung.
Das ist eine wichtige Erkenntnis, die du mitnehmen solltest: PHP wird üblicherweise auf dem Web-Server (Apache) ausgeführt, JavaScript dagegen im Normalfall im Browser des Benutzers.
Ich schrieb gerade "üblicherweise" und "im Normalfall", das sollte dich zu der Fragestellung führen, ob es denn auch Ausnahmefälle gibt. Und die Antwort auf die rhetorische Frage... Man kann tatsächlich auch Server-Anwendungen mit JavaScript schreiben. Node.js heißt zum Beispiel eine bekannte Ausführungs-Umgebung, die das ermöglicht.
Die nächste Erkenntnis, die du mitnehmen solltest, ist folglich, dass JavaScript nicht immer im Browser ausgeführt wird, sondern auch auf dem Server ausgeführt werden kann. Für PHP und jede beliebige andere Programmiersprache gilt analog das gleiche: Es kann für eine bestimmte Programmiersprache mehrere Ausführungs-Umgebungen geben.
Worin unterscheiden sich nun die Umgebungen? Die Syntax darf sich nicht unterscheiden, denn dann würden wir von unterschiedlichen Programmiersprachen sprechen (aber nochmals, wir sprechen von verschiedenen Umgebungen für die _selbe_ Programmiersprache). Knapp gesagt, die Umgebungen unterscheiden sich in den vom System bereit gestellten Standard-Funktionalitäten. Eine Apache-Umgebung ermöglicht PHP Zugriff auf das Web-Server-Dateisystem. Eine Browser-Umgebung für JavaScript kann das nicht leisten. Eine Server-Umgebung für JavaScript wiederum könnte das leisten.
Ich hoffe, du kannst dir deine Frage nun selbst beantworten. Bitte frag nach, wenn du was nicht verstanden hast, die Erkenntnis, die ich vermitteln möchte, ist m.M.n. von elementarer Bedeutung für jeden Entwickler.
Tach!
PHP wird üblicherweise auf dem Web-Server (Apache) ausgeführt
hmmm...?
Eine Apache-Umgebung ermöglicht PHP Zugriff auf das Web-Server-Dateisystem.
hä..??
Fehlen da vielleicht ein paar grundlegende Kenntnisse? Oder (absichtlich) falsch ausgedrückt?
Meine Herren,
Fehlen da vielleicht ein paar grundlegende Kenntnisse? Oder (absichtlich) falsch ausgedrückt?
Absichtlich stark vereinfacht ausgedrückt. Ich nehme an, du möchtest darauf hinaus, dass PHP kein integrativer Bestandteil des Apache HTTP-Servers ist, sondern ein dediziertes Modul, mit dem zum Beispiel über die CGI-Schnittstelle interagiert wird. In der Praxis ist aber das *AMP (OS, Apache, MySQL, PHP) eins der am meisten eingesetzten Softwarepakete für einsatzbereite Webserver. Ich habe deshalb zu Gunsten der Einfachheit und auf Kosten der technischen Genauigkeit Abstriche gemacht. Ich hatte nicht vor den OP mit technischen Details zu erschlagen, ich geb dir aber recht, dass ich an dieser Stelle möglicherweise zu sehr geschlampt habe.
Tach!
Absichtlich stark vereinfacht ausgedrückt. Ich nehme an, du möchtest darauf hinaus, dass PHP kein integrativer Bestandteil des Apache HTTP-Servers ist, sondern ein dediziertes Modul, mit dem zum Beispiel über die CGI-Schnittstelle interagiert wird. In der Praxis ist aber das *AMP (OS, Apache, MySQL, PHP) eins der am meisten eingesetzten Softwarepakete für einsatzbereite Webserver. Ich habe deshalb zu Gunsten der Einfachheit und auf Kosten der technischen Genauigkeit Abstriche gemacht. Ich hatte nicht vor den OP mit technischen Details zu erschlagen, ich geb dir aber recht, dass ich an dieser Stelle möglicherweise zu sehr geschlampt habe.
Das hört sich für den Laien so an, als ob PHP in irgendeiner Art und Weise mit einem Webserver (zB Apache) verbandelt ist, sei es als integrierter Bestandteil desselben, sei es als Modul. Das ist nicht der Fall, wie du weißt. PHP ist eine eigenständige, mittlerweile recht mächtige Programmiersprache, die völlig ohne Webserver auskommt, die auch zu völlig anderen Zwecken genutzt werden kann, zum Beispiel zur Erstellung von plattformunabhängingen GUI-Applikationen (http://en.wikipedia.org/wiki/WxPHP/). Nur darauf wollte ich hinaus. Und darauf, dass das Dateisystem nichts mit dem Webserver(*) zu tun hat. Es ist das Dateisystem der Maschine(*), auf das PHP direkt und in Abhängigkeit von Nutzer und Rechten zugreifen darf. Es ist historisch bedingt, aber schade, daß PHP nur in Hinblick auf Web genannt wird.
(*) wir unterscheiden hier zwischen der Software "Webserver", zum Beispiel Apache und der Maschine, auf der ein Webserver läuft, und zwar als eigentliche Aufgabe.
Ich weiß, das weißt du alles, ich wollte es nur für den Threadstarter nochmal klarstellen.