tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
492
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Oklino Oklino ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    44
    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)
    PHP-Code:
    <?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-Code:
    //html
    <?php include("kontakt/kontakt.php"); ?>
    //html


    kontakt.php
    PHP-Code:
    <?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 :
    1
    
    <img class="captcha" src="kontakt/captcha_image.php<?php echo '?'.SID; ?>" alt="CAPTCHA" width="180" height="40"/>

    Captcha_image.php
    PHP-Code:
    <?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!
     

  2. #2
    Oklino Oklino ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    44
    So ich bin jetzt etwas weiter gekommen... setze ich ein session_start(); in die kontakt.php, funktioniert das captcha (zumindest das generieren)... das problem ist nur dass ja der header schon gesendet wurde... *würg*....

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\xampp\htdocs\alt\content\formular.php:8) in D:\xampp\htdocs\alt\kontakt\kontakt.php on line 2
     

  3. #3
    Registriert seit
    Mar 2004
    Beiträge
    1.856
    Blog-Einträge
    2
    Dieser Fehler wurde hier im Forum schon sehr oft besprochen und auch bei Google gibt es mehr als 360.000 Einträge zu diesem Fehler:
    http://www.google.de/search?source=i...s+already+sent
    unter anderem eine Seite die ich jedem Neuling empfehle: http://www.php-fehlermeldungen.de/to...u1/index0.html
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  4. #4
    Oklino Oklino ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    44
    Zitat Zitat von ZodiacXP Beitrag anzeigen
    Dieser Fehler wurde hier im Forum schon sehr oft besprochen und auch bei Google gibt es mehr als 360.000 Einträge zu diesem Fehler:
    http://www.google.de/search?source=i...s+already+sent
    unter anderem eine Seite die ich jedem Neuling empfehle: http://www.php-fehlermeldungen.de/to...u1/index0.html
    ich weiß was der fehler bedeutet - nur nicht wie ich bei meiner seitenstruktur darauf reagiere bzw. wie es es nun ohne diesen fehler ABSICHTLICH zu produzieren das captcha zum laufen kriege.

    So die lösung war dass ich von der index seite includiert habe... und dann hat die includierte seite wieder eine includiert... ZACK und schon ist im dritten script die session nicht mehr gültig

    forumlar.php habe ich einfach entfernt und fertig.


    hilfe zur selbsthilfe...

    naja...
     

Ähnliche Themen

  1. Antworten: 37
    Letzter Beitrag: 13.01.10, 13:09
  2. Captcha Session Problem
    Von Lenox im Forum PHP
    Antworten: 8
    Letzter Beitrag: 18.06.09, 21:04
  3. Captcha in Formular include
    Von smyle im Forum PHP
    Antworten: 2
    Letzter Beitrag: 10.02.09, 10:11
  4. Captcha in html-Formular einfügen
    Von MagZero im Forum PHP
    Antworten: 6
    Letzter Beitrag: 17.12.07, 13:52
  5. Session und Zufallsbild (Captcha)
    Von Microhome im Forum PHP
    Antworten: 3
    Letzter Beitrag: 23.02.06, 00:18