ImageCreate

gmspace

Grünschnabel
Hey Ihr;

Ich habe probiert, ein Kontaktformular per Dyn. Captcha Image Abzusichern, nur jetzt kommt immer ein Error 500.
(Siehe anhang)

lG
 

Anhänge

Sorry, ich öffne keine externen Daten einfach so. Poste bitte die wesentliche Stelle hier ins Forum.
 
Hallo,

das Mischen von Image-Code und Formularausgabe ist nicht möglich. Du kannst höchstens ein image-Tag im Formular einbetten, was als src ein PHP-Script hat. Also etwa so:

PHP:
    <div id="content">
        <div id="content_top">
        </div>
        <div id="content_bg">
            <div id="content_text-topic">Kontaktieren sie uns!
            </div>
            <div id="content_text">
                <p></br><center>
            
            <form action="" method="POST">
            Name:<input type="text" name="name" value="<?php echo $aUser['firstname']; ?> <?php echo $aUser['lastname']; ?>"><br>
            Email-Adresse:<input type="text" name="email" value="<?php echo $aUser['email']; ?>"><br>
            Betreff:    <select name="betreff">
                        <option value="">Bitte W&auml;hlen!</option>
                        <option value="Fragen">Fragen?</option>
                        <option value="Interesse">Interesse?</option>
                        <option value="Anregungen">Anregungen?</option>
                        <option value="Linktausch">Link-/Banner- Tausch</option>
                        <option value="Sonstiges">Sonstiges</option>
                        </select><br>
            Empf&auml;nger: <select name="empf">
                            <option value="">Bitte W&auml;hlen!</option>
                            <option value="luca">Luca Postiglione</option>
                            <option value="max">Maximilian Grollmann</option>
                            <option value="support">Allgemeiner Support</option>
                            <option value="ts3">TS3 Support/Fragen </option>
                            </select>
                            
            <br>Text:<br><textarea name="text" cols="40" rows="5"></textarea>
            <br>Captcha:<img src="captcha.php"/><input type="text" name="captcha" maxlength="8">
            <br><br>
            <input type="submit" name="senden" value="Absenden!">
            <br>
            <?php
            If($_POST['senden']){
            $betreff = $_POST['betreff'];
            $name = $_POST['name'];
            $email = $_POST['email'];
            $empf = $_POST['empf'];
            $text = $_POST['text'];
            $cap = $_POST['captcha'];
            If($betreff == "" OR $empf == "" OR $text == "" OR $name == "" OR $email == ""){
            echo '<br><font color="red"><b>Bitte Alle Felder ausf&uuml;llen.!</b></font>';
            }else{
            
            
            If($text == $cap){
            
            
            $Empfaenger = "".$empf."@gmspace.de";
            $Mailbetreff = $betreff;
            $Mailnachricht = "Name: ".$name." \n\n Email: ".$email." \n\n Text: \n\n\n ".$text."";
            mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$email."");
            echo '<br><b>Ihre Mail wurde <font color="green">Erfolgreich</font> gesendet.!</b>';
            
            
            }else{
            echo '<br><font color="red"><b>Captcha Falsch!</b></font>';
            
            }
            }
            
            }
            
            ?>
    </center></br></p>
            </div>
            <div id=\"hr\"><hr />
            </div>
        </div>
        <div id=\"content_foot\">
        </div>
    </div>

Dann musst du das PHP-Script erstellen, was im Image-Tag als Quelle verwendet wird. In diesem kannst du dann den Captcha-Code hinterlegen. Hier als Beispiel die captcha.php:

PHP:
<?php 
function text() { 

    $chars = "abcdefghijkmnopqrstuvwxyz023456789"; 
    srand((double)microtime()*1000000); 
    $i = 0; 
    $pass = '' ; 

    while ($i <= 8) { 
        $num = rand() % 33; 
        $tmp = substr($chars, $num, 1); 
        $pass = $pass . $tmp; 
        $i++; 
    } 

    return $pass; 

} 

            $text = text();
            $im = @ImageCreate (100, 32);
            or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
            $background_color = ImageColorAllocate ($im, 255, 255, 255);
            $text_color = ImageColorAllocate ($im, 233, 14, 91);
            ImageString ($im, 10, 10, 10, $text, $text_color);
            header ("Content-type: image/png");
            ImagePNG ($im); 
?>
 
Zurück