Hoofdletters verdwijnen
qubus - 15/09/2009 14:12
Lid
Hallo,
Ik heb een HTML formulier waar ik een tekstvak in heb staan. De wordt met een $_POST verzonden, en weggeschreven in een database. Het script werkt prima op mijn site, maar nu heb ik excact hetzelfde script op een ander domein gezet en als ik nu het tekstvak invul en weg laat schrijven, staat de tekst zonder hoofdletters in de database. Als ik de $_POST echo aan het begin van het script, zijn de hoofdletters al weg.
Ik heb me suf gezocht, maar kan geen aankooppunt vinden om het op te lossen.
Iemand een idee???
10 antwoorden
Gesponsorde links
qubus - 15/09/2009 14:37
Lid
Nee, dat is niet het probleem...
qubus - 17/09/2009 13:24
Lid
Kan iemand in onderstaande code dan ontdekken waarom de hoofdletters verdwijnen?
$error = "";
include_once "db_connect.php";
if ($_SERVER['REQUEST_METHOD'] == "POST") { // Formulier is verzonden
if (empty($_POST['tekst'])) { $error = LANG_VUL_CATEGORIENAAM_IN; }
if (empty($error)) {
$sql = mysql_query("SELECT MAX(id) FROM menu_cat");
$new = mysql_fetch_array($sql);
$new_id2 = $new['MAX(id)'];
$new_id = $new_id2 + 1;
$sql4 = mysql_query("SELECT MAX(volgorde) FROM menu_cat");
$new4 = mysql_fetch_array($sql4);
$new_id4 = $new4['MAX(volgorde)'];
$new_id5 = $new_id4 + 1;
mysql_query("INSERT INTO menu_cat (id, name, subkop, taal, volgorde) VALUES ('".$new_id."', '".filter($_POST['tekst'])."', '1' ,'".$_SESSION['taal']."','".$new_id5."')"); ?>
<table width="100%">
<tr>
<td width="100%">
<div class="succes"><? echo LANG_DE_CATEGORIE . " " . $_POST['tekst'] . " " . LANG_IS_TOEGEVOEGD?><br /></div><br /><br />
</td>
</tr>
</table>
<? }
} ?>
<? if ($_SERVER['REQUEST_METHOD'] != "POST" || !empty($error)) { // Formulier is niet verzonden of er was een error ?>
<table width="100%">
<tr>
<td>
<br /><b><? echo LANG_UITLEG_CATEGORIE; ?></b>
</td>
</tr>
<tr>
<td>
<fieldset>
<legend><? echo LANG_CONFIGURATIE; ?></legend>
<form name="form_toevoegen_cat" method="post" action="index.php">
<br />
<label for="tekst"><? echo LANG_NAAM_VAN_DE_CATEGORIE; ?>: </label>
<input type="text" id="tekst" name="tekst" maxlength="30" size="30" value="<? echo $_POST['tekst']; ?>" />
<? if (!empty($error)) { echo "<br /><br /><label></label><span class=\"rood\">" . $error . "</span><br />"; } ?>
<br /><span class="kleiner"><br /></span>
<label></label>
<input type="hidden" name="pagina" value="admin_toevoegen_cat" />
<input type="hidden" name="taal" value="<? echo $_SESSION['taal']; ?>" />
<input type="submit" name="form_toevoegen_cat" value="<? echo LANG_VOEG_TOE; ?>" class="submit_knop2" />
</form>
</fieldset>
</td>
</tr>
</table>
$error = "";
include_once "db_connect.php";
if ($_SERVER['REQUEST_METHOD'] == "POST") { // Formulier is verzonden
if (empty($_POST['tekst'])) { $error = LANG_VUL_CATEGORIENAAM_IN; }
if (empty($error)) {
$sql = mysql_query("SELECT MAX(id) FROM menu_cat");
$new = mysql_fetch_array($sql);
$new_id2 = $new['MAX(id)'];
$new_id = $new_id2 + 1;
$sql4 = mysql_query("SELECT MAX(volgorde) FROM menu_cat");
$new4 = mysql_fetch_array($sql4);
$new_id4 = $new4['MAX(volgorde)'];
$new_id5 = $new_id4 + 1;
mysql_query("INSERT INTO menu_cat (id, name, subkop, taal, volgorde) VALUES ('".$new_id."', '".filter($_POST['tekst'])."', '1' ,'".$_SESSION['taal']."','".$new_id5."')"); ?>
<table width="100%">
<tr>
<td width="100%">
<div class="succes">
<? echo LANG_DE_CATEGORIE
. " " . $_POST [ 'tekst' ] . " " . LANG_IS_TOEGEVOEGD?
> <br /></div><br /><br />
</td>
</tr>
</table>
<? }
} ?>
<? if ( $_SERVER [ 'REQUEST_METHOD' ] != "POST" || ! empty ( $error ) ) { // Formulier is niet verzonden of er was een error ?>
<table width="100%">
<tr>
<td>
<br /><b>
<? echo LANG_UITLEG_CATEGORIE
; ?> </b>
</td>
</tr>
<tr>
<td>
<fieldset>
<legend>
<? echo LANG_CONFIGURATIE
; ?> </legend>
<form name="form_toevoegen_cat" method="post" action="index.php">
<br />
<label for="tekst">
<? echo LANG_NAAM_VAN_DE_CATEGORIE
; ?> : </label>
<input type="text" id="tekst" name="tekst" maxlength="30" size="30" value="
<? echo $_POST [ 'tekst' ] ; ?> " />
<? if ( ! empty ( $error ) ) { echo "<br /><br /><label></label><span class=\" rood\" >" . $error . "</span><br />" ; } ?> <br /><span class="kleiner"><br /></span>
<label></label>
<input type="hidden" name="pagina" value="admin_toevoegen_cat" />
<input type="hidden" name="taal" value="
<? echo $_SESSION [ 'taal' ] ; ?> " />
<input type="submit" name="form_toevoegen_cat" value="
<? echo LANG_VOEG_TOE
; ?> " class="submit_knop2" />
</form>
</fieldset>
</td>
</tr>
</table>
P.s. Andere 'foutjes' of schoonheden zijn bekend, maar hebben hun reden. (bijv. geen autoincrement)
Hopelijk kan iemand me uit de brand helpen, want ik wordt er gek van dat de hoofdletters verdwijnen!
Alvast heel erg bedankt!
Gerard - 17/09/2009 13:48
Ouwe rakker
Gooi de code van die filter() functie eens online.
qubus - 17/09/2009 14:02
Lid
Gerard schreef:
Gooi de code van die filter() functie eens online.
Bij deze, maar daar kan het haast niet aan liggen. Als ik die namelijk in het andere script weghaal, en de $_POST er zo in gooi, zijn het evengoed kleine letters.
function filter($text){
$text = preg_replace("(<img src=\"(.+?)\" border=\"0\">)", "\[img\]$1\[/img\]", $text);
$text = preg_replace("(<b>(.+?)</b>)", "\[b\]$1\[/b\]", $text);
$text = preg_replace("(<u>(.+?)</u>)", "\[u\]$1\[/u\]", $text);
$text = preg_replace("(<i>(.+?)</i>)", "\[i\]$1\[/i\]", $text);
$text = preg_replace("(<strike>(.+?)</strike>)", "\[s\]$1\[/s\]", $text);
$text = preg_replace("(<div align=\"left\">(.+?)</div>)", "\[left\]$1\[/left\]", $text);
$text = preg_replace("(<div align=\"right\">(.+?)</div>)", "\[right\]$1\[/right\]", $text);
$text = preg_replace("(<center>(.+?)</center>)", "\[center\]$1\[/center\]", $text);
$text = eregi_replace("<font color=\"([^\\[]*)\">([^\\[]*)</font>","\\[color=\\1\\]\\2\\[/color\\]",$text);
$text = eregi_replace("<font size=\"([^\\[]*)\">([^\\[]*)</font>","\\[size=\\1\\]\\2\\[/size\\]",$text);
$text = eregi_replace("<a href=\"mailto:([^\\[]*)\">([^\\[]*)</a>","\\[email=\\1\\]\\2\\[/email\\]",$text);
$text = eregi_replace("<a href=\"([^\\[]*)\" target=\"_blank\">([^\\[]*)</a>","\\[url=\\1\\]\\2\\[/url\\]",$text);
$text = preg_replace("(<marquee>(.+?)</marquee>)","\[move\]$1\[/move\]", $text);
$text = strip_tags($text);
$text = htmlentities($text, ENT_QUOTES);
$text = addslashes($text);
return $text;
}
function filter( $text ) {
$text = preg_replace ( "(<img src=\" (.+?)\" border=\" 0\" >)" , "\[img\]$1 \[/img\]" , $text ) ; $text = preg_replace ( "(<b>(.+?)</b>)" , "\[b\]$1 \[/b\]" , $text ) ; $text = preg_replace ( "(<u>(.+?)</u>)" , "\[u\]$1 \[/u\]" , $text ) ; $text = preg_replace ( "(<i>(.+?)</i>)" , "\[i\]$1 \[/i\]" , $text ) ; $text = preg_replace ( "(<strike>(.+?)</strike>)" , "\[s\]$1 \[/s\]" , $text ) ; $text = preg_replace ( "(<div align=\" left\" >(.+?)</div>)" , "\[left\]$1 \[/left\]" , $text ) ; $text = preg_replace ( "(<div align=\" right\" >(.+?)</div>)" , "\[right\]$1 \[/right\]" , $text ) ; $text = preg_replace ( "(<center>(.+?)</center>)" , "\[center\]$1 \[/center\]" , $text ) ; $text = eregi_replace ( "<font color=\" ([^\\[]*)\" >([^\\[]*)</font>" , "\\[color=\\1 \\]\\2 \\[/color\\]" , $text ) ; $text = eregi_replace ( "<font size=\" ([^\\[]*)\" >([^\\[]*)</font>" , "\\[size=\\1 \\]\\2 \\[/size\\]" , $text ) ; $text = eregi_replace ( "<a href=\" mailto:([^\\[]*)\" >([^\\[]*)</a>" , "\\[email=\\1 \\]\\2 \\[/email\\]" , $text ) ; $text = eregi_replace ( "<a href=\" ([^\\[]*)\" target=\" _blank\" >([^\\[]*)</a>" , "\\[url=\\1 \\]\\2 \\[/url\\]" , $text ) ; $text = preg_replace ( "(<marquee>(.+?)</marquee>)" , "\[move\]$1 \[/move\]" , $text ) ;
return $text ;
}
ArieMedia - 17/09/2009 14:12
PHP ver gevorderde
En voordat je iets doet met de post, kan je een var_dump geven (of print_r).
Dus zegmaar
<?php
if(isset($_POST['zend'])) {
print_r($_POST);
} else //....
?>
<?php
if ( isset ( $_POST [ 'zend' ] ) ) { } else //....
?>
En wil je dat hier ook posten?
qubus - 17/09/2009 14:27
Lid
@Arie2Zero
Dat geeft het volgende resultaat:
Array ( [tekst] => testen [pagina] => admin_toevoegen_cat [taal] => 1 [form_toevoegen_cat] => voeg toe )
Het woordje testen had ik met hoofdletters geschreven, hier zijn ze dus al klein... Ik snap er werkelijk niets meer van!
ArieMedia - 17/09/2009 14:41
PHP ver gevorderde
qubus schreef:
@Arie2Zero
Dat geeft het volgende resultaat:
Array ( [tekst] => testen [pagina] => admin_toevoegen_cat [taal] => 1 [form_toevoegen_cat] => voeg toe )
Het woordje testen had ik met hoofdletters geschreven, hier zijn ze dus al klein... Ik snap er werkelijk niets meer van!
Hmm dat is erg vreemd inderdaad, misschien dat het iets met server-instellingen te maken heeft OF het kan aan je browser liggen. Maar het ligt iniedergeval niet aan je script.
qubus - 17/09/2009 14:48 (laatste wijziging 17/09/2009 15:00)
Lid
Serverinstellingen heb ik al laten checken door de provider, dat is het ook niet. Browser kan ik nog proberen.
Dank voor het meedenken!
edit: Browser is het ook niet, op 2 computers meerdere browsers geprobeerd.
Gesponsorde links
Dit onderwerp is gesloten .