kostenloser Webspace werbefrei: lima-city


Bild lässt sich nicht per AJAX aktualisieren.

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    Hallo Zusammen,

    Ich habe ein Formular mit einem Captcha. Wenn alles ausgefüllt ist und abgeschickt wird, wird ein Bereich kurz ausgeblendet und anschließend aktualisiert und wieder eingeblendet.

    Bei den Einträgen funktioniert das auch soweit, auch das Captcha verschwindet kurz und taucht wieder auf, allerdings bleiben die Buchstaben immergleich. Wenn man die gesamte Seite reloaded allerdings hat man andere Buchstaben und Zahlen. Was mache ich genau falsch?

    Einmal das Captcha im Formular:
    <div class="2u">
    													<div id="gb_reload_ca">
    														<img src="Captcha/captcha.php" name="Captcha"  style='width: 189px; height: 40px; border:none;'> 
    													</div>	
    												</div>


    einmal das JS:
    <script type="text/javascript">
    											$(document).ready(function() {
    												$("#guestbook_form").submit(function() {
    													var gb_name 		   = $("#gb_name").val();
    													var gb_email 	 	   = $("#gb_email").val();
    													var gb_message 	  	   = $("#gb_message").val();
    													var gb_sicherheitscode 	  	   = $("#gb_sicherheitscode ").val();
    													
    
    													if(gb_name == ""){
    														$(".errormsg").addClass('active_err');
    														$(".errormsg").html("Bitte geben Sie einen Namen an.");
    													}
    													else if(gb_message == ""){
    														$(".errormsg").addClass('active_err');
    														$(".errormsg").html("Bitte füllen Sie das Textfeld aus.");
    													}
    													else if(gb_sicherheitscode == ""){
    														$(".errormsg").addClass('active_err');
    														$(".errormsg").html("Bitte füllen Sie den Sicherheitscode aus.");
    													}
    													else{
    														$.ajax ({
    															type: "POST",
    															url: "js/save_guestbook.php",
    															data: "gb_name=" + gb_name + "&gb_email=" + gb_email + "&gb_message=" + gb_message + "&gb_sicherheitscode=" + gb_sicherheitscode,
    															success: function(msg) {
    																$(".errormsg").addClass('active_success');
    																$(".errormsg").html(msg);	
    																$("form input[type=text], form textarea").val('');
    																$("#areacount").html(200);
    																//////////LADEN
    																$("#gb_reload").animate({opacity:"0", filter:"alpha(opacity=0)"}, 400, function() {
    																	$("#gb_reload").load("guestbook.php #gb_reload", function() {
    																		$("#gb_reload").animate({opacity:"1", filter:"alpha(opacity=100)"}, 400);
    																	});
    																});
    																
    																$("#gb_reload_ca").animate({opacity:"0", filter:"alpha(opacity=0)"}, 400, function() {
    																	$("#gb_reload_ca").load("guestbook.php #gb_reload_ca", function() {
    																		$("#gb_reload_ca").animate({opacity:"1", filter:"alpha(opacity=100)"}, 400);
    																	});
    																});
    															}
    														});  
    													}
    													return false;
    												});
    											});	
    										
    										</script>


    und einmal die Captchadatei:
    <?php
    
    session_start();
    
    unset( $_SESSION['captcha_code'] );
     
    header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
    header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
    header( "Cache-Control: no-store, no-cache, must-revalidate" );
    header( "Cache-Control: post-check=0, pre-check=0", false );
    header( "Pragma: no-cache" );
     
    header( 'Content-type: image/png' );
     
    $AlphaNumerischerString = "ABCDEFGH2345689";
    
    $ZufallString1 = substr( str_shuffle( $AlphaNumerischerString ), 0, 2 );
    $ZufallString2 = substr( str_shuffle( $AlphaNumerischerString ), 0, 2 );
    $ZufallString3 = substr( str_shuffle( $AlphaNumerischerString ), 0, 2 );
    
    $ZufallStringKomplett = $ZufallString1.$ZufallString2.$ZufallString3;
    $ZufallStringKomplett = strtolower($ZufallStringKomplett);
    
    $_SESSION['captcha_code'] = md5( $ZufallStringKomplett );
     
    $Schriftarten = array( "zachary.ttf", "mtcorsva.ttf", "gilligan.ttf");
    $Bilddatei = imagecreatefrompng( "hintergrund.png" );
    $TextFarbe1 = imagecolorallocate( $Bilddatei, 0, 125, 0 );
    $TextFarbe2 = imagecolorallocate( $Bilddatei, 130, 70, 90 );
    $TextFarbe3 = imagecolorallocate( $Bilddatei, 180, 90, 190 );
    imagettftext( $Bilddatei, 12, 15, 3, 24, $TextFarbe1, $Schriftarten[0], $ZufallString1 );
    imagettftext( $Bilddatei, 16, 0, 26, 15, $TextFarbe2, $Schriftarten[1], $ZufallString2 );
    imagettftext( $Bilddatei, 14, -20, 53, 18, $TextFarbe3, $Schriftarten[2], $ZufallString3 );
    
    imagejpeg( $Bilddatei );
     
    imagedestroy( $Bilddatei );
    ?>



    Liebe Grüße,
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m******e

    Hi,

    wenn ich das richtig sehe, solltest Du nicht das div reloaden
    <div id="gb_reload_ca">

    sondern dem Bild ne id geben, und das neuladen ;)
    <img src="Captcha/captcha.php" id="gb_reload_ca" name="Captcha"  style='width: 189px; height: 40px; border:none;'>

    Außerdem lässt sich dein Script überlisten, wenn ich es mir lokal abspeichere, und dem action nen target zuweise.

    Gruß, Dein "pöser bot" ;)

  4. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    Hättest du da ein Beispiel wie ich das verhindern kann?


    EDIT:// Die id am Bild dranzuhängen klappt auch nicht
    Liebe Grüße,

    Beitrag zuletzt geändert: 15.6.2014 23:29:42 von marvinkleinmusic
  5. m******e

    Hm, wenn save_guestbook.php aufgerufen wurde, müsste das captcha neu geladen werden? :confused:

    Ist bislang nur ne Vermutung. :)
  6. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    Schau dir das Javascript an, das sendet die Daten an save_guestbook.php, dort werden sie ausgewertet und eingetragen.

    Nach dem Eintrag reloaded Javascript die Eintragsliste und das Captcha ohne die gesamte Seite neuzuladen.
    Dabei wird immer die Captchadatei eigendlich auch reloaded und beim reload sollte diese immer ein neues Captcha ausspucken.


    Das geht allerdings nur wenn die ganze Seite neulädt aber nicht nur ein Teil.

    Das ist das Hauptproblem.

    LG
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Mach in der
    save_guestbook.php
    folgendes rein:
    session_start();
    unset($_SESSION['captcha_code']);
    und beim neu Laden vom Captcha via JavaScript hängst du an die Bild-URL ein
    ?
    und die aktuelle Zeit, dann wird das sicher neu geladen.
  8. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    hackyourlife schrieb:
    und beim neu Laden vom Captcha via JavaScript hängst du an die Bild-URL ein
    ?
    und die aktuelle Zeit, dann wird das sicher neu geladen.


    Wie soll das denn aussehen? Das Captcha wird ja derzeit so neugeladen:
    $("#gb_reload_ca").animate({opacity:"0", filter:"alpha(opacity=0)"}, 400, function() {
    																	$("#gb_reload_ca").load("guestbook.php #gb_reload_ca" , function() {
    																		$("#gb_reload_ca").animate({opacity:"1", filter:"alpha(opacity=100)"}, 400);
    																	});
    																});


    LG
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!