Raadsel met POST
Een foutmelding is gemaakt, wanneer het veld leeg is.
Als ik nu iets kopieer en plak in het betreffende veld volgt de foutmelding.
Als ik gewoon iets intik volgt geen foutmelding en wordt alles correct verwerkt.
Als ik iets intik en daarna iets plak in hetzelfde veld dan volgt de foutmelding.
Als ik eerst iets plak en daarna wat intik in hetzelfde veld volgt wederom de foutmelding.
Blijkbaar gaat er dus iets fout door het plakken.
Wat zie ik over het hoofd?
Ger.
Ik gok dat hij bepaalde tekens niet accepteert vanwege een reguliere expressie? En misschien wel een UTF-8/ANSI-issue?
Kun je broncode laten zien?
Waar vul je wat in?
Welke foutmelding krijg je?
Verschilt hetgeen je knipt en plakt op een bepaalde manier van hetgeen je intypt?
Het bovenstaande klinkt meer als een raadsel dan een vraagstuk, het is nogal vaag op deze manier.
Thomas - eigen geschreven code. Kan de broncode laten zien. Eigen gemaakte foutmelding. Geen verschil tussen intypen en knip/plakken.
Ik herinner me, dat code tonen op dit forum met een bepaalde tag moet. Als je me die kan geven, zal ik
de code tonen.
Ger Eielts op 11/11/2015 17:18:18:
Arien - de code is nogal lang, dus zal ik die helemaal tonen?
Daarom vraag ik de relevante code die te maken heeft met het invoegen en controleren van je invoer. Ik neem aan dat dit geen honderd regels lang zal zijn.
Gewijzigd op 11/11/2015 17:45:25 door - Ariën -
OMS wordt als volgt gevuld:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<tr>
<td colspan="4" valign="top" > Omschrijving incident: <textarea name="OMS" id="OMS" rows="20" cols="80"><?php echo $OMSincident;?></textarea></td>
<td colspan="2" rowspan="2" valign="top"><textarea name="Fouten" id="Fouten" rows="21" style="color:red" style="background:#99FFFF"><?php echo $NietIngevuld . $FoutIngevuld; ?></textarea></td>
</tr>
<td colspan="4" valign="top" > Omschrijving incident: <textarea name="OMS" id="OMS" rows="20" cols="80"><?php echo $OMSincident;?></textarea></td>
<td colspan="2" rowspan="2" valign="top"><textarea name="Fouten" id="Fouten" rows="21" style="color:red" style="background:#99FFFF"><?php echo $NietIngevuld . $FoutIngevuld; ?></textarea></td>
</tr>
In if ($_SERVER["REQUEST_METHOD"] == "POST") {
wordt het volgende getest:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$OMSincident = test_input($_POST["OMS"]); wordt
if ($OMSincident == "") {
$NietIngevuld = $NietIngevuld . "Omschrijving incident ";
}
test_input zie er als volgt uit:
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = str_replace(array("\n", "\r"), ' ', $data);
return $data;
}
En via javascript wordt de foutmelding getoond:
<script type="text/javascript">
function Errors() {
var show = document.getElementById("Fouten");
var NI = "<?php echo $NietIngevuld; ?>";
var FI = "<?php echo $FoutIngevuld; ?>";
if (NI == "" && FI == "") {
show.style.display = "none";
}
else {
show.style.display = "block";
}
}
?>
$OMSincident = test_input($_POST["OMS"]); wordt
if ($OMSincident == "") {
$NietIngevuld = $NietIngevuld . "Omschrijving incident ";
}
test_input zie er als volgt uit:
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = str_replace(array("\n", "\r"), ' ', $data);
return $data;
}
En via javascript wordt de foutmelding getoond:
<script type="text/javascript">
function Errors() {
var show = document.getElementById("Fouten");
var NI = "<?php echo $NietIngevuld; ?>";
var FI = "<?php echo $FoutIngevuld; ?>";
if (NI == "" && FI == "") {
show.style.display = "none";
}
else {
show.style.display = "block";
}
}
?>
etc.
Kun je hier iets mee ?
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 11/11/2015 18:55:19 door - Ariën -
Wat is de accept-charset van je formulier?
Of de Content-Type van je HTML-document?
htmlspecialchars($string) retourneert een lege string als de character encoding van $string niet overeenkomt met de default character encoding behorend bij jouw PHP-versie (omdat je deze zelf niet opgeeft in htmlspecialchars()).
Heb je al gedebugged of $data leeg is (eventueel voor/na aanroep van htmlspecialchars())?
EDIT: daarbij, wat doe je vervolgens met $OMSincident? Sla je dit op in een database? Maar dan ben je daar bezig met het op voorhand escapen van input :/. Het is beter om dit pas te doen voordat je dit afdrukt (als output). Ook zijn dit niet de juiste functies om dit in een database te zetten, daarvoor zijn real_escape_string() functies.
Gewijzigd op 12/11/2015 13:29:36 door Thomas van den Heuvel
Quote:
htmlspecialchars($string) retourneert een lege string als de character encoding van $string niet overeenkomt met de default character encoding behorend bij jouw PHP-versie (omdat je deze zelf niet opgeeft in htmlspecialchars()).
[unquote]
Lag idd aan het feit, dat ik de charset niet opgaf in htmlspecialchars...
Opgelost... bedankt !!
gr. Ger.
[unquote]
Lag idd aan het feit, dat ik de charset niet opgaf in htmlspecialchars...
Opgelost... bedankt !!
gr. Ger.