Contact formulier waarbij extended character bewaard blijft.

Status
Niet open voor verdere reacties.

pixel

Gebruiker
Lid geworden
24 mrt 2007
Berichten
7
Ik heb een php formulier op phpfreakz gevonden.

http://phpfreakz.nl/library.php?sid=24894

En dat werkt...

(1) Maar er blijft nog wat te wensen.

Ik ben al enige tijd bezig met het vinden van een contact formulier waarbij extended character;

d.w.z.
o umlaut = ÷
e cirkonflex = Û

bewaard blijft;


Ik heb deze tekst ingegeven;

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

(2) En helaas dit als antwoord gekregen....

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ç è é ê ë ì Ã* î ï ð ñ ò ó
ô õ ö ÷ ø ù ú û ü ý þ ÿ

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


Daarvoor had ik voor één keer heb ik een script `geleend` wat naar de Duitse software site web-2-date verwijst, en dan ook valideert.
En de extended character doorstuurt.

Van dat lenen wil ik af.
Daarom probeer ik het met dit script.

Ik wil dat Duitse script ook wel sturen, indien het helpt bij de kennis vergaring.

Dit is eigenlijk helemaal geen weer om binnen te zitten....

dank,


Rob van de Steenoven
 
PHP:
echo htmlspecialchars('ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ');
 
Laatst bewerkt:
Op welke plek in het script???

Tha Devil PHP schreef Code:
echo htmlspecialchars('ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ');
Dank,

Ik heb het op regel 436 gezet, maar dat geeft nog een verbetering;

http://www.senso-care.nl/web-content/pag/Contactformulier3.php

Ik zie de foutmeldingen in explorer maar die hebben denk ik, met dit probleem weinig te maken.

Maar de diacritische tekens komen nog steeds niet door..

Dank
 
Hoezo? Ik zie ze toch echt staan:

ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ style.css --------- body { border-right: 5px; border-top: 5px; border-left: 5px; border-bottom: 5px; font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; } table { font-size: 9px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #f2f4f7; border-color: #bac5d6; } input, textarea

Het lijkt mij handiger om het totale script hier even te plaatsen (de code uit Contactformulier3.php even kopieren en hier tussen
PHP:
...
plaatsen) waarschijnlijk krijgen we dan wel een juist formulier als resultaat.
 
Php formulier t.b.v. diacritische tekens

PHP:
<?



ob_start(); // Voor Cookie setten 



// Headers zetten zodat de inhoud niet word gecashed 

header("Expires: Mon, 26 Jul 2010 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"); 



// Config Gedeelte 

$site = "http://www.website.nl/";    // De website waar je naartoe gaat nadat je een bericht hebt verzonden  (vergeet niet de / op het einde!)

$wm_naam = "Rob";                    // De naam van de webmaster 

$wm_email = "mijnmail@xs4all.nl";        // Het emailadres waar het bericht naartoe moet 

$Anti_Spam = "1";                        // Anti spam tijd in minuten ( Voer "0" om de spam beveiliging uit te zetten ) 

$fout_text = TRUE;                        // Bij Fout Text Rood maken ( TRUE voor aan, FALSE voor uit ) 

$fout_vakje = TRUE;                        // Bij fout border om vakje rood maken ( TRUE voor aan, FALSE voor uit ) 

$html = FALSE;                                // Een html email 



// Hieronder niks meer veranderen

$naam = $_POST['naam']; 

$email = $_POST['email']; 

$onderwerp = $_POST['onderwerp']; 

$bericht = $_POST['bericht']; 

$bericht_wrap = wordwrap ($bericht, 40, "\n", 1); 



// IP van de verstuurder 

if(getenv($_SERVER['HTTP_X_FORWARDED_FOR'])) { 

    $ip = getenv($_SERVER['HTTP_X_FORWARDED_FOR']); 

} elseif(getenv($_SERVER['HTTP_CLIENT_IP'])) { 

    $ip = getenv($_SERVER['HTTP_CLIENT_IP']); 

} else { 

    $ip = $_SERVER['REMOTE_ADDR']; 

} 



$host = gethostbyaddr($ip);         // Host van verstuurder 



if($html) { 

// Headers 

    $headers = "From: \"Contact Formulier\" <".$wm_naam.">\r\n"; 

    $headers .= "MIME-Version: 1.0\r\n"; 

    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 

    $headers .= "Return-Path: Mail-Error <".$wm_naam.">\r\n"; 



// Bericht 

    $message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"; 

    $message .= "<HTML><HEAD>"; 

    $message .= "<META http-equiv=3DContent-Type content=3D\"text/html; = charset=3Dwindows-1252\">"; 

    $message .= "</HEAD><BODY>"; 

    $message .= "<BR> "; 

    $message .= "<TABLE>"; 

    $message .= "<tr><td>Naam:</td><td>".$naam."</td></tr>"; 

    $message .= "<tr><td>Email:</td><td><a href=\"mailto:".$email."\">".$email."</a></td></tr>"; 

    $message .= "<BR> "; 

    $message .= "<tr><td>Bericht:</td><td>".$bericht."</td></tr>"; 

    $message .= "<tr><td colspan=\"2\">&nbsp;</td></tr>"; 

    $message .= "<BR> "; 

    $message .= "<tr><td>Datum:</td><td>".date("d-m-Y H:i:s")."</td></tr>"; 

    $message .= "<tr><td>IP:</td><td><a href=\"http://sunny.nic.com/cgi-bin/whois?domain=".$ip."\">".$ip."</a></td></tr>"; 

    $message .= "<tr><td>Host:</td><td>".$host."</td></tr>"; 

    $message .= "</TABLE></BODY></HTML>"; 

      

} 



else { 

// Headers 

    $headers = "From: \"Contact Formulier\" <".$wm_naam.">\r\n"; 

    $headers .= "MIME-Version: 1.0\r\n"; 

    $headers .= "Content-type: text/plain; charset=iso-8859-1"; 



// Bericht 

    $message = "Naam: ".$naam."        \n"; 

    $message .= "E-mail: ".$email."     \n"; 

    $message .= "Bericht:\n".$bericht_wrap."     \n "; 

    $message .= "               \n "; 

    $message .= "Datum: ".date("d-m-Y H:i:s")." \n"; 

    $message .= "------------------------------------------------------- \n "; 

    $message .= "IP: ".$ip."                    \n "; 

    $message .= "Host: ".$host."                \n "; 



} 

// Mail Checker 

function checkmail($mail) 

{ 

    $email_host = explode("@", $mail); 

    $email_host = $email_host['1']; 

    $email_resolved = gethostbyname($email_host); 

    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail)) 

       $valid = 1; 

    return $valid; 

} 

// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond. 

if(!isset($_COOKIE['mailformulier'])) 

{ 

    if(isset($_POST['wis'])) 

    { 

        foreach ($_POST as $key => $value) 

        { 

            unset($value); 

        } 

        header("Location: ".$_SERVER['PHP_SELF'].""); 

    } 

    // Alles Controleren Wanneer er op Verzenden wordt gedrukt 

    if(isset($_POST['verzenden'])) 

    { 

        $fout = ""; 

        if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam))) 

        { 

            $fout .= "U bent vergeten uw naam in te vullen! <BR>"; 

            unset($naam); 

            $fout_vakje_naam = "input_fout"; 

            $fout_text_naam = "text_fout"; 

        } 

        if((empty($email)) OR (strlen($email) < 7) OR (eregi(">", $email))) 

        { 

            $fout .= "U bent vergeten uw e-mail adres in te vullen! <BR>"; 

            unset($email); 

            $fout_vakje_email = "input_fout"; 

            $fout_text_email = "text_fout"; 

        } 

        elseif(checkmail($email) == 0) 

        { 

            $fout .= "Vul een correct e-mail adres in! <BR>"; 

            unset($email); 

            $fout_vakje_email = "input_fout"; 

            $fout_text_email = "text_fout"; 

        } 

        if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) ) 

        { 

            $fout .= "U bent vergeten een onderwerp in te vullen! <BR>"; 

            unset($onderwerp); 

            $fout_vakje_onderwerp = "input_fout"; 

            $fout_text_onderwerp = "text_fout"; 

        } 

        if(empty($bericht)) 

        { 

            $fout .= "U bent vergeten een bericht in te vullen! <BR"; 

            unset($bericht); 

            $fout_vakje_bericht = "input_fout"; 

            $fout_text_bericht = "text_fout"; 

        } 

        elseif(strlen($bericht) < 6) 

        { 

            $fout .= "Uw bericht is tekort! <BR>"; 

            $fout_vakje_bericht = "input_fout"; 

            $fout_text_bericht = "text_fout"; 

        } 

        if(!empty($fout)) 

        { 

        echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en) 

        } 

        else 

        { 

        mail($wm_email,$onderwerp,$message,$headers); 



        // Bericht als mail succesvol is verzonden 

        echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>"; 

        echo "<BR>Uw contact bericht is succesvol verzonden!<BR>"; 

        echo "Er word zo snel mogelijk gereageerd.<BR><BR>"; 

        echo "Met vriendelijke groeten,<BR>"; 

        echo "<B>".$wm_naam."</B>"; 



        // cookie zetten tegen spam 

        setcookie("mailformulier",1,time()+($Anti_Spam*60)); 



        // formulier wordt niet weer getoond 

        $Formulier = TRUE; 



        header("refresh:3;url=".$site.""); 

        } 

    } 

} 

else { 

    $Formulier = FALSE; 

    echo "<html><head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body>"; 

    echo "<center><h2> Spam Beveiliging </h2><br />"; 

    echo "Je kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></body></html>"; 

    header("refresh:3;url=".$site.""); 

} 



if(!isset($Formulier)) 

{ 

?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html> 

<head> 

<link href="file:///D:/Internet hulpmiddelen/Formulieren/contakt formulier PHP freakz/style.css" rel="stylesheet" type="text/css" /> 

<title>Contact Formulier</title> 

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 

</head> 



<body> 

<table class="tabel" border="1" cellpadding="5" cellspacing="0"  width="300" style="border-collapse: collapse"> 

<tr><td><br /> 

<form method="post" action="<? echo $PHP_SELF; ?>"> 

<table> 

<tr><td> </td><td> </td></tr> 

<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="20" value="<? echo $naam; ?>" /></td></tr> 

<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="30" value="<? echo $email; ?>" /></td></tr> 

<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="30" value="<? echo $onderwerp; ?>" /></td></tr> 

<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="30" rows="4"><? echo $bericht; ?></textarea></td></tr> 

<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="submit" id="wis" name="wis" value="Wis velden" /> 

</td></tr> 

</table> 

</form> 

</td></tr> 

</table> 



<p style="text-align: center;"> 

</p> 



</body> 

</html> 

<? 
echo htmlspecialchars('ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ');  

} 

?>



style.css

---------



body {

border-right: 5px;

border-top: 5px;

border-left: 5px;

border-bottom: 5px;

font-size: 10px;

font-family: Verdana, Arial, Helvetica, sans-serif;

}

table {

font-size: 9px;

font-family: Verdana, Arial, Helvetica, sans-serif;

background-color: #f2f4f7;

border-color: #bac5d6;

}

input, textarea {

background-color: #ffffff;

border-style: solid;

border-width: 1px;

border-color: #bac5d6;

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

color: #000000;

}

select {

background-color: #ffffff;

border-style: solid;

border-width: 1px;

border-color: #bac5d6;

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

color: #000000;

}

a:link {

color: #000000;

text-decoration: none;

}

a:visited {

color: #000000;

text-decoration: none;

}

a:hover {

color: #000000;

font-weight: bold;

text-decoration: none;

}

.input_fout {

background-color: #ffffff;

border-style: solid;

border-width: 1px;

border-color: #FF0000;

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

color: #000000;

}

.text_fout {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

color: #FF0000;

}

.tabel {

font-size: 9px;

font-family: Verdana, Arial, Helvetica, sans-serif;

background-color: #f2f4f7;

border-color: #bac5d6;

margin: auto;

}

img {

background-color: transparent;

border: 0;

}
 
Laatst bewerkt:
Onderstaand wijzigen
PHP:
// Hieronder niks meer veranderen

$naam = $_POST['naam']; 

$email = $_POST['email']; 

$onderwerp = $_POST['onderwerp']; 

$bericht = $_POST['bericht']; 

$bericht_wrap = wordwrap ($bericht, 40, "\n", 1);
in
PHP:
// Hieronder niks meer veranderen

$naam = $_POST['naam']; 

$email = $_POST['email']; 

$onderwerp = $_POST['onderwerp']; 

$bericht = htmlspecialchars($_POST['bericht']);  //Extended chars goed weergegeven.

$bericht_wrap = wordwrap ($bericht, 40, "\n", 1);

en alles onder < /html > weghalen en hetgene onder waar staat style.css allemaal kopieren en in een nieuw document plakken genaamd style.css en in dezelfde map als het formulier zetten.

edit: wat je waarschijnlijk nog wel even moet doen is na < /html > onderstaand toevoegen
PHP:
<?
}
ob_end_flush();
?>
 
Laatst bewerkt:
Extended characters

Tha Devil; bijzonder veel dank.

(1) Helaas krijg ik nog geen juiste karakters.
(2) Ik ga er wel mee door.

Op dit moment een beetje ziek. :thumb:
 
Maak eens een simpel bestandje aan:

test.php
PHP:
<?
$bericht = ''; //Standaard text
if(isset($_POST['text']))
{
  //Converteren van karakters
  $bericht = htmlspecialchars($_POST['text']);
  //Regels juist weergeven.
  $bericht = nl2br($bericht);

  //Bericht weergeven
  echo "<b>Dit is het bericht:</b><br />$bericht<br /><br />";
}
echo' <form action="test.php" method="POST">
      <textarea name="text" rows="10" cols="30">'. $bericht .'</textarea><br />  
     <input type="submit" value="Ga verder" name="submit">
     </form>';

?>

Kun je even controleren of het inderdaad niet goed werkt...
 
Geweldig, maar dit werkt;

Deze tekst in het formulier geplakt;

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

copyright 1997 ©Ron F Woolley. Melbourne Australia.

+++++++++++++++++++++++++++++++++
En dat komt foutloos terug.. :thumb:
 
Raar dat het vorige script dan niet werkt aangezien het principe precies hetzelfde is :confused:. Ik gebruik exact dezelfde functie :(
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan