Genau, mich auch, denn es steht nichts drin. Oder wie erklärst du dir dann, dass immer 'Kein Text vorhanden' ausgegeben wird?
Captcha-Experiment
-
-
Kopiere dieses kleine Testscript auf den Server
PHP<?php error_reporting(E_ALL); if (isset($_GET['text'])) echo "Text = " . $_GET['text']; else echo "Verdammt, der Server spinnt"; ?>
Und rufe es auf mit
http://www.deineDomain.de/scriptname.php?text=Hallo -
Kopiere dieses kleine Testscript auf den Server
PHP<?php error_reporting(E_ALL); if (isset($_GET['text'])) echo "Text = " . $_GET['text']; else echo "Verdammt, der Server spinnt"; ?>
Und rufe es auf mit
http://www.deineDomain.de/scriptname.php?text=HalloSo geht es. Aber nicht, wenn ich in einer Datei1 der Textvariablen namens 'text' per Input einen Stringinhalt zuweise. Dann rufe ich von Datei1 aus eben Datei2 auf, in der ich auf die GET-Abfrage einen leeren String erhalte.
-
Kleiner Nachtrag. Wenn ich 'text' direkt übergebe und nicht mit $_GET['text'] abfrage geht es, somit ist mein Problem gelöst.
Vielen Dank nochmals.
MfG -
PHP
Alles anzeigen<html> <body> <form method="POST" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>"> Text: <input type="text" name="text"><br> <input type="submit" name="submit" value="Anzeigen"> </form> <br> <?php if (isset($_POST['text'])) echo "<img src='captcha.php?text=" . $_POST['text'] . "'>"; ?> </body> </html>
PHP
Alles anzeigen<?php error_reporting(E_ALL); $strBeschriftung = isset($_GET['text']) ? $_GET['text'] : "Kein Text vorhanden"; if (! file_exists("captcha.gif")) die ("captcha.gif nicht vorhanden"); $hBild = imagecreatefromgif("captcha.gif") or die ("Bild konnte nicht erzeugt werden"); $nBreite = 60; // Breite des vorhandenen Bildes $nHoehe = 30; // Höhe des vorhandenen Bildes $farbe = ImageColorAllocate ($hBild, 255, 255, 0); // Schriftgröße, Winkel, x, y, Farbe, Font, Text ImageTTFText ($hBild, 30, 5, 20, 45, $farbe, "./comic.ttf",$strBeschriftung); header("Content-type: image/gif"); imagegif($hBild); imagedestroy($hBild); ?>
-
Kleiner Crashkurs Captcha
Wenn du ein Bild per ./captcha.php?text=abcd einbindest und der User dann "abcd" eintippen muss, verfehlt das Captcha seinen SInn, jeder Bot kann die URL des Bildes lesen und dann den String eingeben, machs mit Sessions.
Das Bild wird so aufgerufen ./bild.php und dieses wird nach dem Inhalt der Session gemacht oder es wird gleich eine neue Session gemacht und dann überprüfst du ob das Eingegebene mit dem Session-Inhalt übereinstimmt, !!Achtung: Das Bild darf zwischen Formular ausfüllen und absenden nicht neu geladen werden, ansonsten wird die Session überschrieben und es kann nie richtig sein.
Das Inhalt des Captcha darf nie als Text an den User gesendet werden auch nicht verschlüsselt.Tipp kaputte generierte Bilder.
Im Firefox (<3) kannst du den Quellcode anzeigen lassen, dann solltest du am anfang eine PHP fehlermeldung angezeigt bekommen, oder du deaktivierst zur überprüfung das ""header('Content-Type...". error_reporting(E_ALL); und display_errors auf true. -