nmartin89
Goto Top

Captcha Bild wird nicht angezeigt

Guten Tag Leute,

für meine Schulische Ausbildung zum FIS bin ich Aktuell im Bereich PHP unterwegs und soll dort in ein erstelltes Projekt in die Login und Registrierungs Seite eine Captcha abfrage einbauen.

Da habe ich soweit auch gemacht nur wird mir das Captcha nicht Angezeigt sondern nur ein kleines Bild.

Vllt hat jemand eine Idee was hier der Fehler sein kann?

Benutzt wird xampp in der Version 8.2.4
xampp


captchagenerieren.php

<?php
session_start();

unset($_SESSION['captchacode']);  
// Zeichen, die der Captchacode enthalten darf
$moeglicheZeichen = "abcdefghiklmnpqrstuvwxy123456789" .  
  "ABCDEFGHIJKLMNOPQRSTUVWXYZ";  
// Anzahl der Zeichen, die das Captcha enthalten soll
$anzahlZeichen = 4;
// Captcha-Variable
$captchacode = "";  
// Füllen der Captcha-Variable mit der festgelegten 
// Anzahl zufälliger Zeichen
for ($i = 0; $i < $anzahlZeichen; $i++) {
  $captchacode .= substr(
    $moeglicheZeichen,
    (rand() % (strlen($moeglicheZeichen))),
    1
  );
}
// Schreiben des Captchacodes in die Session
$_SESSION['captchacode'] = $captchacode;  
header('Content-type: image/jpg');  
$image = imagecreate(350, 130);
$farben = array();
for ($i = 0; $i < $anzahlZeichen; $i++) {
  $farben[$i] = imagecolorallocate(
    $image,
    rand(0, 255),
    rand(0, 255),
    rand(0, 255)
  );
}
$bgc = imagecolorallocate($image, 230, 230, 230);
imagefill($image, 0, 0, $bgc);
for ($i = 0; $i < $anzahlZeichen; $i++) {
  ImageTTFText(
    $image,
    rand(20, 80),
    rand(-20, 60),
    50 + ($i * 50),
    rand(80, 120),
    $farben[rand(0, $anzahlZeichen - 1)],
    "fonts/Anorexia.ttf",  
    $captchacode[$i]
  );
}
for ($i = 0; $i < $anzahlZeichen; $i++) {
  imageline(
    $image,
    rand(0, 10),
    rand(0, 150),
    rand(330, 340),
    rand(0, 150),
    $farben[$i]
  );
}
imagejpeg($image);
imagedestroy($image);

login.inc.php

<form action="login.php" method="post">  
	<label class="reg_label">Userid</label><span class="pflichtmarker"> * </span>  
	<input name="userid" maxlength="20">  
	<span class="fehlermeldung"></span>  
	<br>
	<label class="reg_label">Passwort</label><span class="pflichtmarker"> * </span>  
	<input name="pw"  type="password"  maxlength="50">  
	<span class="fehlermeldung"></span>  
	<br>
	<img src="captchagenerieren.php" alt="Captcha">  
	<br>
	<label class="reg_label">Captcha</label><span class="pflichtmarker"> * </span>  
	<input name="captcha">  
	<br>
	<input type="submit">  
</form>


registrieren.inc.php


<!-- Registrierungsformular -->
<form action="registrieren.php" method="post">  

	<label class="reg_label">Name</label><span class="pflichtmarker"> * </span>  
	<input name="name" maxlength="30" <?php  
										if (isset($_POST['name']))  
											echo "value='" . $_POST['name'] . "'";  
										?> />
	<span class="fehlermeldung"></span>  
	<br />

	<label class="reg_label">Vorname</label><span class="pflichtmarker"> * </span>  
	<input name="vorname" maxlength="30" <?php  
											if (isset($_POST['vorname']))  
												echo "value='" . $_POST['vorname'] . "'";  
											?> />
	<span class="fehlermeldung"></span>  
	<br />

	<label class="reg_label">E-Mail</label><span class="pflichtmarker"> * </span>  
	<input name="email" maxlength="30" <?php  
										if (isset($_POST['email']))  
											echo "value='" . $_POST['email'] . "'";  
										?> />
	<span class="fehlermeldung"></span>  
	<br />

	<label class="reg_label">Userid</label><span class="pflichtmarker"> * </span>  
	<input name="userid" maxlength="20" />  
	<span class="fehlermeldung"></span>  
	<br />

	<label class="reg_label">Passwort</label><span class="pflichtmarker"> * </span>  
	<input name="pw" type="password" maxlength="50" />  
	<span class="fehlermeldung"></span>  
	<br />

	<label class="reg_label">Zusatzinfos</label><span class="pflichtmarker"> </span>  
	<textarea name="zusatzinfos" rows="5" cols="30">  
        <?php
		if (isset($_POST['zusatzinfos']))  
			echo $_POST['zusatzinfos'];  
		?>
    </textarea>
	<span class="fehlermeldung"></span>  

	<br>
	<img src="captchagenerieren.php" alt="Captcha">  
	<br>
	<label class="reg_label">Captcha</label><span class="pflichtmarker"> * </span>  
	<input name="captcha">  
	<br>
	<input type="submit">  
</form>

Im Visual Studio Code gibt mir der Debug der captchagenerieren.php folgendes aus.

Fatal error: Uncaught Error: Call to undefined function imagecreate() in C:\xampp2\htdocs\vv22\captchagenerieren.php:24
Stack trace:
{main}
thrown in C:\xampp2\htdocs\vv22\captchagenerieren.php on line 24

log
reg

Content-Key: 7656141006

Url: https://administrator.de/contentid/7656141006

Printed on: April 27, 2024 at 11:04 o'clock

Member: mbehrens
Solution mbehrens Jun 26, 2023 at 16:06:49 (UTC)
Goto Top
Zitat von @nmartin89:

Fatal error: Uncaught Error: Call to undefined function imagecreate() in C:\xampp2\htdocs\vv22\captchagenerieren.php:24
Stack trace:
{main}
thrown in C:\xampp2\htdocs\vv22\captchagenerieren.php on line 24

Es könnte sein, dass die gd Extension nicht aktiviert ist.
Member: nmartin89
nmartin89 Jun 26, 2023 at 16:12:40 (UTC)
Goto Top
Sche...... ich danke dir ...da liest man stunden lang aber nach dem Fehler mal googlen war nicht face-sad