Session Problematik

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von Neverball, 28.03.2009.

  1. #1 Neverball, 28.03.2009
    Neverball

    Neverball Benutzer

    Dabei seit:
    20.11.2005
    Beiträge:
    39
    Zustimmungen:
    0
    Schönen guten Tag an alle,

    ich muss von der Schule her ein Fomular schreiben was erstmal nur überrpüft werden soll, was bis jetzt auch ohne schwierigkeiten funktioniert hatte. Ich hatte nun die Idee einen Captcha Code einzubaen das hat bis jetzt auch wunderfunktioniert es wird angezeigt. Nur bei der Überprüfung hängt es ein bisschen denn ich bekomme die Variable von der Captcha nicht in mein Fomular und ich weiss nicht wieso! Ich denke es happert an der Session nur bin ich das grad am lernen und kanns nicht selbst lösen^^
    Wäre schön wenn einer die Lösung findet
    Ich liste die Quellcodes der einzelnen PHP Dateien auf:


    reg.php
    PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>Registration</title>
    </
    head>
    <
    link href="style.css" rel="stylesheet" type="text/css" />

    <
    body>
    <
    h3>Registrierung</h3>
    <
    form  action="index.php?site=reg=step2" method="post">
    <
    table>
     <
    tr>
         <
    td>Benutzername: </td>
        <
    td><input type="text" maxlength="15" name="bn" /></td>
     </
    tr>
     <
    tr>
         <
    td>Password: </td>
        <
    td><input type="password" maxlength="15" name="pw1" /></td>
     </
    tr>  
     <
    tr
         <
    td>Password Wiederholen: </td>
        <
    td><input type="password" maxlength="15" name="pw2" /></td>
     </
    tr>
     <
    tr>    
         <
    td>E-Mail Adresse: </td>
        <
    td><input type="text" maxlength="20" name="ea" /></td>
     </
    tr>
     <
    tr
     <
    tr>
         <
    td>[img]captcha.php[/img]</td>
        <
    td><input type="text" name="sicherheitscode" maxlenghth="15" size="15"></td>     
     </
    tr>     
         <
    td></td>
        <
    td><input type="submit" value="Senden"  /></td
     </
    tr>        
    </
    table>
    </
    form
      
    </
    body>
    </
    html>
    captcha.php
    PHP:
    <?php 
       session_start
    ();
       unset(
    $_SESSION['captcha_spam']); 

       function 
    randomString($len) { 
          function 
    make_seed(){ 
             list(
    $usec $sec) = explode (' 'microtime()); 
             return (float) 
    $sec + ((float) $usec 100000); 
          } 
          
    srand(make_seed());  
          
    //Der String $possible enthält alle Zeichen, die verwendet werden sollen 
          
    $possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789"
          
    $str=""
          while(
    strlen($str)<$len) { 
            
    $str.=substr($possible,(rand()%(strlen($possible))),1); 
          } 
       return(
    $str); 
       } 

       
    $text randomString(5);  //Die Zahl bestimmt die Anzahl stellen 
       
    $_SESSION['captcha_spam'] = $text
              
       
    header('Content-type: image/png'); 
       
    $img ImageCreateFromPNG('captcha.PNG'); //Backgroundimage 
       
    $color ImageColorAllocate($img000); //Farbe 
       
    $ttf "captcha/XFILES.TTF"//Schriftart 
       
    $ttfsize 25//Schriftgrösse 
       
    $angle rand(0,5); 
       
    $t_x rand(5,30); 
       
    $t_y 35
       
    imagettftext($img$ttfsize$angle$t_x$t_y$color$ttf$text); 
       
    imagepng($img); 
       
    imagedestroy($img); 
    ?> 
    reg2.php
    PHP:
    <?php 


    session_name
    ();

    $bn  =     $_POST[bn];
    $pw1 =     $_POST[pw1];
    $pw2 =     $_POST[pw2];
    $ea  =     $_POST[ea];

    if (empty(
    $bn) || strlen($bn) < || !preg_match("/^[a-z0-9]*$/i"$bn)) {
        echo 
    "Bitte geben Sie einen <font color='red'>Benutzernamen</font> ein!

             [url='javascript:history.back()']Zur&uuml;ck[/url]
              "
    ;
    }
    elseif (empty(
    $pw1) || empty($pw2) || strlen($bn) < 4) {
        echo 
    "Bitte geben Sie ein <font color='red'>Passwort</font> ein!

              [url='javascript:history.back()']Zur&uuml;ck[/url]
              "
    ;
    }
    elseif (
    $pw1 != $pw2) {
        echo 
    "Die eingegeben <font color='red'>Passw&ouml;rter m&uuml;ssen &uuml;bereinstimmen!</font>

             [url='javascript:history.back()']Zur&uuml;ck[/url]
             "
    ;
        
    }
    elseif (empty(
    $ea) || !stristr($ea'@')) {
        echo 
    "Bitte geben Sie eine <font color='red'>E-Mail Adresse</font> ein!
             [url='javascript:history.back()']Zur&uuml;ck[/url]
             "
    ;    
    }
    elseif (!isset(
    $_SESSION['captcha_spam']) || $_POST["sicherheitscode"] != $_SESSION['captcha_spam']) {
        echo 
    "Der Captcha Code wurde falsch oder gar nicht eingetippt. Bitte nochmal versuchen!

        [url='javascript:history.back()']Zur&uuml;ck[/url]
        "
    ;
    }
    else
    {
        unset(
    $_SESSION['captcha_spam']); 
        echo 
    "$bn " "Sie wurden erfolgreich registriert!
    "
    ;
        echo 
    "Die Aktivierungsmail wurde an " "$ea " "versand.
    "
    ;
    }
    ?>
    MFG
    Neverball
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. Weiny

    Weiny Erfahrener Benutzer

    Dabei seit:
    10.07.2007
    Beiträge:
    484
    Zustimmungen:
    0
    Hallo,

    bitte mache mir den Gefallen und poste nur Coder der von Rewants ist, denn das ist echt anstrengend. Wie würdest du denn gerne den Captcha Code bekommen?

    Ohne alles genau gelesen zu haben, bekommst du von der captcha ja einen vergleichs String, diesen musst du logischerweiße mit dem eingegebenen Code überprüfen.
    Aber so wie ich das sehe, übergibts du dem Formular zwar den "sicherheitscode" du kannst aber nicht ein img Tag übergeben!
     
  4. #3 Neverball, 28.03.2009
    Neverball

    Neverball Benutzer

    Dabei seit:
    20.11.2005
    Beiträge:
    39
    Zustimmungen:
    0
     
  5. empi

    empi Erfahrener Benutzer

    Dabei seit:
    21.04.2006
    Beiträge:
    199
    Zustimmungen:
    0
    auf basis der hier geposteten snippets kann ich dir nicht so einfach helfen.. kannst du mir die das gesamte script mal zukommen lassen? dann werde ich mir das mal anschauen

    MfG,

    empi
     
  6. #5 Neverball, 28.03.2009
    Neverball

    Neverball Benutzer

    Dabei seit:
    20.11.2005
    Beiträge:
    39
    Zustimmungen:
    0
    [quote='empi',index.php?page=Thread&postID=724660#post724660]auf basis der hier geposteten snippets kann ich dir nicht so einfach helfen.. kannst du mir die das gesamte script mal zukommen lassen? dann werde ich mir das mal anschauen

    MfG,

    empi[/quote]mehr ist da nicht ausser der index.php ^^ das war alles was ich bis jetzt habe
     
  7. empi

    empi Erfahrener Benutzer

    Dabei seit:
    21.04.2006
    Beiträge:
    199
    Zustimmungen:
    0
    ich sehe da reg.php, captcha.php, reg2.php....
     
  8. AdMan

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  9. #7 Neverball, 29.03.2009
    Neverball

    Neverball Benutzer

    Dabei seit:
    20.11.2005
    Beiträge:
    39
    Zustimmungen:
    0
     
  10. Weiny

    Weiny Erfahrener Benutzer

    Dabei seit:
    10.07.2007
    Beiträge:
    484
    Zustimmungen:
    0
    ohh.. sorry das habe ich nicht gesehen. Auf jeder Seite auf der du auf die Session zugreifen willst musst du
    PHP:
     session_start();
    schreiben!
    Und um wenn du den text unbdeingt dem Formular übergeben willst dann mach doch
    PHP:
    <input type="hidden" name="capatch_text" value="<?  echo $_SESSION['cptcha_spam'];  ?>/>
    dann wird es übergeben.
    Und sonst rufst du es einfach genau so in der überprüfung auf.

    vg Weiny
     
Thema: Session Problematik
Besucher kamen mit folgenden Suchen
  1. Session mit history.back übergeben

Die Seite wird geladen...

Session Problematik - Ähnliche Themen

  1. win7 sytemabbild auf anderen Festplattenhersteller wiederherstellen - Problematisch?

    win7 sytemabbild auf anderen Festplattenhersteller wiederherstellen - Problematisch?: Hallo, Mein Laptop hat als Festplatte die Samsung HM641Ji, auf welcher das Betriebssystem Win7 installiert ist. Hab mit der windowseigenen...
  2. Session speichern ohne IF

    Session speichern ohne IF: Guten Abend zusammen, gibt es eine Möglichkeit eine Session zu speichern ohne If? Mit freundlichen Grüßen hume
  3. TCP Sessions werden unterbrochen

    TCP Sessions werden unterbrochen: Hallo zusammen, ich habe seit einiger Zeit ein Problem mit meinem Internetanschluss (Alice DSL). Das ganze äußert sich darin, dass ich bei...
  4. [PHP] Session Funktion innerhalb einer HTML Seite

    [PHP] Session Funktion innerhalb einer HTML Seite: Hallo liebes Forum! Ich habe folgendes Problem: Ich möchte innerhalb einer HTML-Seite, im Header eine kleine Login-Box einbetten. Diese...
  5. Problematik: Emailadressen weiterleiten

    Problematik: Emailadressen weiterleiten: Hallo Leute Habe vor kurzem Outlook mit einem Emailaccount bei GMX eingerichtet. Nun will ich die Kontaktdaten (Emailadresse , Name) von meinem...