problemen met else en if toevoegen bij huidig php

Status
Niet open voor verdere reacties.

lefty999

Gebruiker
Lid geworden
5 jul 2002
Berichten
913
Dag beste

Ik heb vroeger een gastenboek gemaakt;Maar omwillen dat er nu zoveel spam op komt wil ik nu een capcha inplaatsen,
Voor het visuele is mij dit al gelukt,
Alleen de bewerking ervan wil mij niet lukken,

Dit is de huidige bewerking zonder de capcha uitvoerende gegevens erin.


PHP:
elseif ($_GET['action'] == "add")
{
// Menu content header weergeven
echo show_content_header("Bericht toevoegen",$ccontentheader,$ccontent);
	// Controleren of formulier gepost is
	if (isset($_POST['submit']))
	{
		// Post variabelen opslaan
		$pname = ucwords(strip_tags($_POST['name']));
		$pemail = strip_tags($_POST['email']);
		$pcontent = $_POST['content'];
		$ip = $_SERVER['REMOTE_ADDR'];
		// Controleren of ip gebanned is maar niet de rank admin heeft
		if (!banned())
		{
			// Controleren of alle verplichte velden zijn ingevuld
			if (!empty($pname) && !empty($pcontent))
			{
				// Query SELECT maken en uitvoeren
				$query = 'SELECT id, username FROM admins WHERE username = "'.$pname.'"';
				$result = mysql_query($query);        
				$record = mysql_fetch_object($result);
				// Controleren of naam niet gelijk is aan een admin username
				if (($pname <> $record->username) || login())
				{
					// Controleren of bericht het minimaal aantal karakters heeft
					if ((strlen($pcontent) >= $minaantalkpb) || login())
					{
						// Controleren of email adres is ingevuld
						if (!empty($pemail))
						{					
							// Controleren of geldig email adres in ingevuld
							if (valid_email($pemail))
							{
								// Query INSERT maken en uitvoeren
								$query = "INSERT INTO gastenboek (name, email, content, ip, datetime)
			         					  VALUES ('".$pname."','".$pemail."','".$pcontent."','".$ip."',now())";        
								$result = mysql_query($query);	
								// Info message weergeven
								echo show_info_message("U bericht is succesvol geplaatst.","$PHP_SELF?");							
							}
							else 
							{
								// Error message weergeven
								echo show_error_message("Email adres is niet geldig!");
								// Bericht toevoegen form weergeven
								echo show_add_form($aantalkpb,$smilies,$ubbcode);					
							}
						}
						// Geen email adres ingevuld
						else 
						{
							// Query INSERT maken en uitvoeren
							$query = "INSERT INTO gastenboek (name, email, content, ip, datetime)
		         					  VALUES ('".$pname."','".$pemail."','".$pcontent."','".$ip."',now())";        
							$result = mysql_query($query);	
							// Info message weergeven
							echo show_info_message("Uw bericht is succesvol geplaatst.","$PHP_SELF?");							
						}
					}
					else 
					{
						// Error message weergeven
						echo show_error_message("Het bericht moet minstens ".$minaantalkpb." karakters bevatten!");
						// Bericht toevoegen form weergeven
						echo show_add_form($aantalkpb,$smilies,$ubbcode);					
					}				
				}
				// Naam is gelijk aan een admin naam
				else 
				{
					// Error message weergeven
					echo show_error_message("Deze naam is gereserveerd voor een beheerder!<br>Bent u een beheerder, log dan eerst in voordat u een bericht plaatst.");
					// Bericht toevoegen form weergeven
					echo show_add_form($aantalkpb,$smilies,$ubbcode);					
				}
			}
			// Velden niet ingevuld
			else 
			{
				// Error message weergeven
				echo show_error_message("Vul alle verplichte velden in!");
				// Bericht toevoegen form weergeven
				echo show_add_form($aantalkpb,$smilies,$ubbcode);	
			}
		}
		// Ip is gebanned
		else 
		{
			// Error message weergeven
			echo show_error_message("U bent gebanned en kan daarom geen berichten plaatsen!");							
		}
	}
	// Bericht toevoegen form weergeven
	else 
	{
		echo show_add_form($aantalkpb,$smilies,$ubbcode);
	}						
// Menu content footer weergeven
echo show_content_footer();
}



Nu wil ik volgende if en else commando's erin krijgen

PHP:
session_start(); 

if($_SERVER['REQUEST_METHOD'] == "POST") { 
    // Controle op kwaadwillende input... 
    if (ereg ('[.,$&()*"\/ ><;:|}{_+=^#!~`%@]', $_POST['code'])) {  
        // Verboden karakters gevonden 
        echo "Verboden karakters gevonden..."; // Die! 
    }else{ 
        // Service van de zaak: case-insensitive 
        $tekst = strtoupper($_POST['code']); 
    } 
    echo"Ingevoerde code:". $tekst; 
    echo "<br>Gewenste code: ".$_SESSION['teBewaren']; 
    if($tekst){ 
        if ($tekst != $_SESSION['teBewaren']) { 
            // Afwijkende codes 
            echo "<br><b>FOUTE CODE!</b>"; 
        }else{ 
            // Codes matchen --> Database dinges :-) 
            echo "<br><b>CORRECTE CODE!</b>"; 
        } 
    }else{ 
        // Geen code gepost 
        echo "<br><b>GEEN CODE!</b>"; 
    } 
}

Kan iemand mij helpen deze in het bovenstaande bewerkings formulier te plaatsen,

Ik ben in de war met waar welke if en else te plaatsen en hoe ik het nu krijg dat hij bij bericht posten ook controleert als de ingevulde code ook klopt.

Dank bij voorbaat
Lefty999
 
Het is niet veilig om de gewenste code te weergeven, zo kunnen robots de code toch nog achterhalen als ze willen. Dit heb ik er dus uitgehaald. Ik heb het niet getest, maar volgens mij moet het zo werken:

PHP:
<?php
session_start();  


// ... //


elseif ($_GET['action'] == "add") 
{ 
// Menu content header weergeven 
echo show_content_header("Bericht toevoegen",$ccontentheader,$ccontent); 
    // Controleren of formulier gepost is 
    if (isset($_POST['submit'])) 
    { 
        // Post variabelen opslaan 
        $pname = ucwords(strip_tags($_POST['name'])); 
        $pemail = strip_tags($_POST['email']); 
        $pcontent = $_POST['content']; 
        $ip = $_SERVER['REMOTE_ADDR']; 
        // Controleren of ip gebanned is maar niet de rank admin heeft 
        if (!banned()) 
        { 
            // Controleren of alle verplichte velden zijn ingevuld 
            if (!empty($pname) && !empty($pcontent)) 
            { 
				
				 if($_SERVER['REQUEST_METHOD'] == "POST") {  
					// Controle op kwaadwillende input...  
					if (ereg ('[.,$&()*"\/ ><;:|}{_+=^#!~`%@]', $_POST['code'])) {   
						// Verboden karakters gevonden  
						echo "Verboden karakters gevonden..."; // Die!  
					}else{  
						// Service van de zaak: case-insensitive  
						$tekst = strtoupper($_POST['code']);  
					}  
					if($tekst){  
						if ($tekst != $_SESSION['teBewaren']) {  
							// Afwijkende codes  
							echo show_error_message("FOUTE CODE!");  
						}else{  
							// Codes matchen --> Database dinges :-)  


						   // Query SELECT maken en uitvoeren 
							$query = 'SELECT id, username FROM admins WHERE username = "'.$pname.'"'; 
							$result = mysql_query($query);         
							$record = mysql_fetch_object($result); 
							// Controleren of naam niet gelijk is aan een admin username 
							if (($pname <> $record->username) || login()) 
							{ 
								// Controleren of bericht het minimaal aantal karakters heeft 
								if ((strlen($pcontent) >= $minaantalkpb) || login()) 
								{ 
									// Controleren of email adres is ingevuld 
									if (!empty($pemail)) 
									{                     
										// Controleren of geldig email adres in ingevuld 
										if (valid_email($pemail)) 
										{ 
											// Query INSERT maken en uitvoeren 
											$query = "INSERT INTO gastenboek (name, email, content, ip, datetime) 
													   VALUES ('".$pname."','".$pemail."','".$pcontent."','".$ip."',now())";         
											$result = mysql_query($query);     
											// Info message weergeven 
											echo show_info_message("U bericht is succesvol geplaatst.","$PHP_SELF?");                             
										} 
										else  
										{ 
											// Error message weergeven 
											echo show_error_message("Email adres is niet geldig!"); 
											// Bericht toevoegen form weergeven 
											echo show_add_form($aantalkpb,$smilies,$ubbcode);                     
										} 
									} 
									// Geen email adres ingevuld 
									else  
									{ 
										// Query INSERT maken en uitvoeren 
										$query = "INSERT INTO gastenboek (name, email, content, ip, datetime) 
												   VALUES ('".$pname."','".$pemail."','".$pcontent."','".$ip."',now())";         
										$result = mysql_query($query);     
										// Info message weergeven 
										echo show_info_message("Uw bericht is succesvol geplaatst.","$PHP_SELF?");                             
									} 
								} 
								else  
								{ 
									// Error message weergeven 
									echo show_error_message("Het bericht moet minstens ".$minaantalkpb." karakters bevatten!"); 
									// Bericht toevoegen form weergeven 
									echo show_add_form($aantalkpb,$smilies,$ubbcode);                     
								}                 
							} 
							// Naam is gelijk aan een admin naam 
							else  
							{ 
								// Error message weergeven 
								echo show_error_message("Deze naam is gereserveerd voor een beheerder!<br>Bent u een beheerder, log dan eerst in voordat u een bericht plaatst."); 
								// Bericht toevoegen form weergeven 
								echo show_add_form($aantalkpb,$smilies,$ubbcode);                     
							} 
						}  
					}else{  
						// Geen code gepost  
						echo show_error_message("GEEN CODE!");  
					}  
				}  
            } 
            // Velden niet ingevuld 
            else  
            { 
                // Error message weergeven 
                echo show_error_message("Vul alle verplichte velden in!"); 
                // Bericht toevoegen form weergeven 
                echo show_add_form($aantalkpb,$smilies,$ubbcode);     
            } 
        } 
        // Ip is gebanned 
        else  
        { 
            // Error message weergeven 
            echo show_error_message("U bent gebanned en kan daarom geen berichten plaatsen!");                             
        } 
    } 
    // Bericht toevoegen form weergeven 
    else  
    { 
        echo show_add_form($aantalkpb,$smilies,$ubbcode); 
    }                         
// Menu content footer weergeven 
echo show_content_footer(); 
}  



?>
 
bedankt het werkt ;)


zullen zien als we nog last krijgen van die spambots :D;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan