| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Gast
Beiträge: n/a
| Also ich nehme mal an, dass das heißen sollte, dass ich die Ausführung des Scripts davon abhängig machen muss, ob das Formular schon abgeschcikt wurde, oder nicht. Das hab ich versucht (weiß nicht, ob das, wie ich es gemacht habe bei jedem neuen "<?php" nötig ist. Scheint aber so zu sein). Jedenfalls stellt sich dabei ja schon wieder das Problem, dass das Script im ersten Teil die Bedingung, unter der es sich selbst ausführen soll nicht erkennen kann. Undefined index 'decrypt'. Warum 'encrypt nicht undefined ist, bleibt mir ein Rätsel. Außerdem werden beim Abschicken des Formulars die Variablen $pout und $cout als nicht definiert angesehen. Also irgendwie bin ich darüber ziemlich ratlos. Also helft mir bitte! Gibt es eventuell noch eine andere möglichkeit abzufragen, ob ein Formular abgesendet wurde. Das könnte ich dann in den Textareas einsetzen. Und warum sind $pout und $cout nicht definiert?? Hier nochmal das modifizierte Script: Code: <html>
<head>
<title>mscrypt</title>
<meta name="author" content="Thomas Huit">
<meta name="generator" content="Chainsaw Homepage Editor">
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<textarea name="ptext" cols="33" rows="20">
<?php
error_reporting(E_ALL);
if (isset ($_REQUEST['encrypt']) xor ($_REQUEST['decrypt']))
{
echo $pout; //Ausgabe Plaintext
}
?>
</textarea>
<input type="Submit" value="encrypt" name="encrypt">
<input type="reset" value="reset">
<textarea name="ctext" cols="33" rows="20">
<?php
if (isset ($_REQUEST['encrypt']) xor ($_REQUEST['decrypt']))
{
echo $cout; //Ausgabe Ciphertext
}
?>
</textarea>
<input type="Submit" value="decrypt" name="decrypt">
<input type="reset" value="reset">
</form>
<?php
//BEDINGUNG ZUR AUsFUEHRUNG DES SCRIPTS
if (isset ($_REQUEST['encrypt']) xor ($_REQUEST['decrypt']))
{
//EINSTELLUNGEN
error_reporting(E_ALL);
//DEKLARATIONSTEIL
$pin=$_POST['ptext'];
$cin=$_POST['ctext'];
//Verschluesselungsalgorithmus
function encrypt ($xin)
{
$xout=strtr($xin, "abcdefghijklmnopqrstuvwxyz1234567890", "pxn781r0zmu3eafb6hj2cgkwosvq5ydi4dl9");
return $xout;
}
//Entschluesselungsalgorithmus
function decrypt ($yin)
{
$yout=strtr($yin, "pxn781r0zmu3eafb6hj2cgkwosvq5ydi4dl9", "abcdefghijklmnopqrstuvwxyz1234567890");
return $yout;
}
//HAUPTPROGRAMM
if (isset($_REQUEST['encrypt']))
{
$cout = encrypt($pin);
$pout=$pin;
}
else
{
$pout = decrypt($cin);
$cout=$cin;
}
}
?>
</body>
</html>
|
| | |
| Gast
Beiträge: n/a
| wo kommen denn $pout und $cout her, wenn Du sie innerhalb von <textarea> ausgeben lassen willst? Sie müssten vorher gesetzt worden sein, werden sie aber nicht. Was soll denn isset ($_REQUEST['encrypt']) xor ($_REQUEST['decrypt']) aussagen? meinst Du vielleicht isset ($_REQUEST['encrypt']) or isset($_REQUEST['decrypt']) ? |
| | |
| Gast
Beiträge: n/a
| Ja, das mit dem isset wusste ich nicht. Hab das mal so eingegeben. Wegen der Variablen $pout und $cout habe ich die Deklaration und das Hauptprogramm einfach vor die Textareas verschoben. Ich habe erst nicht gedacht, dass das so einfach klappt. Denn, diese Maßnahme behebt zwar das Problem der Variablen, aber mir ist immer noch unklar, wieso $pin=$_POST['ptext'] und $cin=$_POST['ctext'] jetzt nicht als undefiniert gelten? Ist es vielleicht so, dass es für die Variable, die aus einer Formulareingabe erzeugt wird, völlig egal ist, an welcher Stelle diese (die Eingabe) in Relation zum PHP Code steht Naja, ich möchte mich jedenfalls schonmal für die Hilfe bedanken. Denn wo ich jetzt das Grundgerüst fertig habe, kann ich mich ganz dem kryptografischen Algorithmus zuwenden, der ja, wie unschwer zu erkennen, bisher nicht gerade sinnbringend ist. Jedes Kleinkind könnte mit Hilfe einfachen Ausprobierens mühelos einen Ciphertext dieser Art entschlüsseln. |
| | |
| Gast
Beiträge: n/a
| Wie gesagt, wirf php alles weg, nachdem es eine Anfrage bearbeitet hat. $_GET/_POST/_REQUEST/_COOKIE enthalten nur genau die Werte, die mit der aktuellen Anfrage mitgesendet wurden. Spätestens wenn Dein browser anzeigt, dass die Seite komplett geladen wurde, ist die ANfrage komlett abgearbeitet. Sämtliche server-seitigen php-Variablen sind dann weg weg weg. Darüberhinaus ist http stateless, d.h. es wird nicht ermittelt, dass eine Anfrage die Folge einer anderen Anfrage ist. Anfrage #1 liefert das Dokument zurück, das den client das Formular anzeigen läßt - Ende - alles weg. Mit Anfrage #2 liefert der client die Werte mit, die der Benutzer in das Formular eingetragen hat - völlig neue Anfrage - das php-Skript läuft wieder von Anfang bis Ende, völlig eigenständig, kein Bezug zu Anfrage #1; d.h. auch die Variablen aus der Instanz, die Anfrage #1 behandelt hat, stehen nicht zur Verfügung. Wie sich das bei Bedarf überwinden läßt, kannst Du unter http://php.net/session nachlesen. Für diesen Fall hier brauchst Du das aber nicht. Man könnte einen client auch so programmieren, dass er gleich Anfrage #2 schickt, ohne vorher das Formular abzuholen; php würde ohne weiteres den Unterschied nicht merken. Du brauchst also eine Fallunterscheidung anhand der übermittelten Werte - nur diese stehen zur Verfügung. @AxelF: register_globals hat ausnahmsweise mal garnichts mit dem Problem zu tun. Im Skript wird $_REQUEST verwendet, um die von aussen übergebenen Parameter anzusprchen. |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Relay Script | PHP-Fortgeschrittene | 11 | 01.06.2005 16:02 | |
| [Erledigt] Hilfe bei Download Verwaltungs Script | PHP Tipps 2005 | 8 | 04.05.2005 10:29 | |
| Fehler bei Script, welches Ordner erstellt | PsychoEagle | PHP Tipps 2005 | 3 | 23.04.2005 16:03 |
| Perl Script von PHP aus aufrufen? | PHP Tipps 2005 | 9 | 11.03.2005 01:39 | |
| kurze frage zu script im script | PHP Tipps 2005 | 4 | 04.02.2005 08:53 | |
| Suche Counter Script | Beitragsarchiv | 8 | 17.01.2005 13:42 | |
| Brauche Script | Beitragsarchiv | 11 | 27.11.2004 00:21 | |
| Suche Script um Pics zu hosten | Beitragsarchiv | 4 | 25.11.2004 14:10 | |
| Ganze Objekte an Script weitergeben | dreamingof8a | PHP Tipps 2004-2 | 6 | 23.11.2004 12:17 |
| Watermark zu vorhandem Script hinzufügen? | PHP-Fortgeschrittene | 0 | 21.11.2004 18:20 | |
| [Erledigt] python script mit php aufrufen... | PHP-Fortgeschrittene | 1 | 17.11.2004 17:11 | |
| Suche Script: Kommentieren von Textabschnitten | Beitragsarchiv | 1 | 08.11.2004 21:38 | |
| PHP Script aus PHP aufrufen | Stümper | PHP Tipps 2004 | 5 | 26.09.2004 08:15 |
| "das" Script oder "der" Script?? | Simbo | Off-Topic Diskussionen | 31 | 16.09.2004 17:04 |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.