Hallo Leute!
Derzeit arbeite ich mal wieder an so einem ungeliebten kleinen Projekt damit meine CSS und PHP-Kenntnisse nicht ganz einschlafen.
Ein Jungunternehmer hat mich gebeten ihm eine Seite zu gestalten. Am besten erkläre ich zuerst die Struktur und zeige euch dann den threadrelevanten Code.
Es besteht eine index.php in der in der ersten Zeile via session_start(); eine primitive Session gestartet wird. Auf der gleichen Seite befindet sich code zum einbinden (include) von Inhalten. Sobald ein Link angeklickt wird, wird ein DIV erzeugt in dem der Content dargestellt wird - genauer gesagt ein großer grauer Kasten mit einem X oben rechts. binde ich nun in diesen DIV mein Kontaktformular mit Captcha ein, wird immer nur ein dummy image generiert. Meine Vermutung ist dass das scritpt keine session ID bekommt. Warum - um das zu beantworten bin ich noch nicht erfahren genug. Aber irgendwer von euch mit Sicherheit!
Hyperlink Struktur:
<a href="index.php?content=yes&page=formular">
Nun zum Code:
index.php (html ausgespart)
formular.php
kontakt.php
fürs captcha noch mittendrin folgendes:
Captcha_image.php
So die captcha.php ist einwandfrei und funktioniert unter anderen Bedingungen (Struktur der Seite)
Verzeichnisstruktur:
/index.php
/content/formular.php
content/kontakt/kontakt.php
content/kontakt/captcha_image.php
content/kontakt/captcha.php
content/kontakt/config.inc.php
Vielen Dank im Voraus!
Derzeit arbeite ich mal wieder an so einem ungeliebten kleinen Projekt damit meine CSS und PHP-Kenntnisse nicht ganz einschlafen.
Ein Jungunternehmer hat mich gebeten ihm eine Seite zu gestalten. Am besten erkläre ich zuerst die Struktur und zeige euch dann den threadrelevanten Code.
Es besteht eine index.php in der in der ersten Zeile via session_start(); eine primitive Session gestartet wird. Auf der gleichen Seite befindet sich code zum einbinden (include) von Inhalten. Sobald ein Link angeklickt wird, wird ein DIV erzeugt in dem der Content dargestellt wird - genauer gesagt ein großer grauer Kasten mit einem X oben rechts. binde ich nun in diesen DIV mein Kontaktformular mit Captcha ein, wird immer nur ein dummy image generiert. Meine Vermutung ist dass das scritpt keine session ID bekommt. Warum - um das zu beantworten bin ich noch nicht erfahren genug. Aber irgendwer von euch mit Sicherheit!
Hyperlink Struktur:
<a href="index.php?content=yes&page=formular">
Nun zum Code:
index.php (html ausgespart)
PHP:
<?php session_start(); ?>
// haufenweise HTML code
<?php
if($_GET['content'] == 'yes')
{
echo "<div id=\"content\">";
echo "<div id=\"exitbutton\"><a href=\"index.php?content=no\">[x]</a></div>";
echo "<iframe src=\"content/".$_GET['page'].".php\" width=\"95%\" height=\"95%\" frameborder=\"0\">moep</iframe>";
echo "</div>";
}
?>
formular.php
PHP:
//html
<?php include("kontakt/kontakt.php"); ?>
//html
kontakt.php
PHP:
<?php
require('kontakt/config.inc.php');
require('kontakt/captcha.php');
$captcha = new captcha();
if(isset($_POST['form_submit']))
{
if($captcha->check_captcha($_SESSION['captcha_session'],$_POST['captcha_word'])!=TRUE) $errors[] = 'Fehlerhafte Codeeingabe';
if(empty($errors))
{
$action = 'passed';
}
else $action = 'main';
}
if(isset($_REQUEST['action'])) $action = $_REQUEST['action'];
if(empty($action)) $action = 'main';
?>
fürs captcha noch mittendrin folgendes:
Code:
<img class="captcha" src="kontakt/captcha_image.php<?php echo '?'.SID; ?>" alt="CAPTCHA" width="180" height="40"/>
Captcha_image.php
PHP:
<?php
require('captcha.php');
$captcha = new captcha();
if(isset($_SESSION['captcha_session']))
{
$captcha -> generate_image($_SESSION['captcha_session'],'kontakt/backgrounds/','kontakt/fonts/');
}
else
{
$captcha -> generate_dummy_image();
}
?>
So die captcha.php ist einwandfrei und funktioniert unter anderen Bedingungen (Struktur der Seite)
Verzeichnisstruktur:
/index.php
/content/formular.php
content/kontakt/kontakt.php
content/kontakt/captcha_image.php
content/kontakt/captcha.php
content/kontakt/config.inc.php
Vielen Dank im Voraus!