kostenloser Webspace werbefrei: lima-city


PHP Formular

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    se65jrj67

    se65jrj67 hat kostenlosen Webspace.

    servus

    ich hab ein formular erstellt mit dem mir jemand seine Email zusenden kann mit einer Sicherheitsabfrage aber des funktioniert nicht wie ich das möchte hier mal der Quellcode, checkt mal bitte wo der fehler liegt wär euch sehr dankbar.

    <html>
    <head> 
      <title>TEST</title>
      <LINK rel="stylesheet" type="text/css" href="style.css">
    </head>
    
    <body>
    	<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST">
    		<table id="formular">
    			<tr><td>Name</td><td><input type="text" name="name"></td></tr>
    			<tr><td>E-Mail</td><td><input type="text" name="mail"></td></tr>
    			<tr><td>Captcha</td><td><input type="text" name="cap"></td></tr>
    			<tr><td><input type="submit" value="abschicken" name="send"></td><td>
                            <input type="reset" value="Zurücksetzen" name="reset"></td></tr>
    		</table>
    	</form>
    <?php 
    
    $Mail = "meineemail@provider.de"; 
    $Name = "mein name"; 
    $Betrff = "..."; 
    
    $AB_Name = $_POST['name']; 
    $AB_Mail = $_POST['mail']; 
    $AB_cap  = $_POST['cap']; 
    
    
    $zahl1 = rand(10,20);
    $zahl2 = rand(1,10);
    $ergebnis = $zahl1 + $zahl2;
    
    	if(isset($_POST['send']))
    	{
    		if( empty($_POST['name']) OR empty($_POST['mail']) )	
    		{
    			print "Sie müssen alle Felder ausfülen";
    		}
    		elseif($ergebnis!=$AB_cap)
    		{
    		print "Was sie beherschen nicht einmal den Zahlenraum von 1-30? Oje probiers nochmal";
    		}
    		else
    		{
    			
    		
    			$nachricht = "$AB_Name hat ihnen seine Emal geschickt: $AB_Mail";
    			$senden = mail($Mail, $Betreff, $Nachricht,"From: $Abs_Mail");
    				
    			if($senden)
    			{
    				print "Die Email wurde versendet";
    			}
    			else
    			{
    				print "Hoppla da lief wohl was schief probieren sie es zu einem späteren Zeitunkt nocheinmal";
    			}
    			
    			
    		}
    	}
    	else
    	{
    	    print "Captcha was ist $zahl1 + $zahl2 = ?";
    	    print "test.";
    	}
    ?>
    </body>
    </html>


    Das Problem ist, wenn ich auch die richtige zahl eingeb, dann kommt auch die Fehlermeldung.

    mfg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. du errechnest bei jedem aufruf der seite ein neues captcha.
    wenn du das formular also absendest, wird ein neues captcha errechnet, und das ist nur mit zufall gleich wie das erste.
    du musst also den aktuellen captcha-wert über ein verstecktes eingabefeld mitübergeben.

    das würde dann (schnell mal hingebastelt) so aussehen:
    <html>
    <head> 
      <title>TEST</title>
      <LINK rel="stylesheet" type="text/css" href="style.css">
    </head>
    
    <body>
    	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    		<table id="formular">
    			<tr><td>Name</td><td><input type="text" name="name"></td></tr>
    			<tr><td>E-Mail</td><td><input type="text" name="mail"></td></tr>
    			<tr><td>Captcha</td><td><input type="text" name="cap"></td></tr>
    			<tr><td><input type="submit" value="abschicken" name="send"></td><td>
                   <input type="reset" value="Zurücksetzen" name="reset"></td></tr>
    		</table>
    	
    <?php 
    
    $Mail = "meineemail@provider.de"; 
    $Name = "mein name"; 
    $Betrff = "..."; 
    
    $AB_Name = $_POST['name']; 
    $AB_Mail = $_POST['mail']; 
    $AB_cap  = $_POST['cap']; 
    $ergebnis  = $_POST['cap_s']; 
    
    
    
    
    	if(isset($_POST['send']))
    	{
    		if( empty($_POST['name']) OR empty($_POST['mail']) )	
    		{
    			echo "Sie müssen alle Felder ausfülen";
    		}
    		elseif($ergebnis!=$AB_cap)
    		{
    		echo "Was sie beherschen nicht einmal den Zahlenraum von 1-30? Oje probiers nochmal";
    		}
    		else
    		{
    			
    		
    			$nachricht = "$AB_Name hat ihnen seine Emal geschickt: $AB_Mail";
    			$senden = mail($Mail, $Betreff, $Nachricht,"From: $Abs_Mail");
    				
    			if($senden)
    			{
    				echo "Die Email wurde versendet";
    			}
    			else
    			{
    				echo "Hoppla da lief wohl was schief probieren sie es zu einem späteren Zeitunkt nocheinmal";
    			}
    			
    			
    		}
    	}
    	else
    	{
    		$zahl1 = rand(10,20);
    		$zahl2 = rand(1,10);
    		$ergebnis = $zahl1 + $zahl2;
    	    echo "Captcha was ist $zahl1 + $zahl2 = ?";
    	    echo "test.";
    		echo "<input type='hidden' name='cap_s' value='".$ergebnis."'>";
    		echo "</form>";
    	}
    ?>
    </body>
    </html>


    mfg
  4. Autor dieses Themas

    se65jrj67

    se65jrj67 hat kostenlosen Webspace.

    vielen herzlichen dank es klappt^^

    Beitrag zuletzt geändert: 21.3.2010 12:56:37 von se65jrj67
  5. 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!