Wrap functie in multiline textfield werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marc koster

marc koster

12/10/2006 23:03:00
Quote Anchor link
Ik schrijf een bericht naar mijn MySQL-database dmv. een htmlformulier.
Ik maak een multiline textfield aan met een char width van 100 char. Ik zet de WRAP op virtual. Echter als ik mijn bericht met php uitlees krijg ik toch steeds 1 lange zin zonder regeleind. Er verschijnt toch een horizontale schuifbalk. Waar moet ik waar veranderen?
Gewijzigd op 01/01/1970 01:00:00 door Marc koster
 
PHP hulp

PHP hulp

16/11/2024 05:51:10
 
PHP Newbie

PHP Newbie

12/10/2006 23:06:00
Quote Anchor link
even de functie nl2br() over de text halen die uit de DB komt
 
Robert Deiman

Robert Deiman

12/10/2006 23:18:00
Quote Anchor link
PHP Newbie schreef op 12.10.2006 23:06:
even de functie nl2br() over de text halen die uit de DB komt


Let hierbij vooral op het punt: "die uit de DB" komt. Wat er (te) veel gebeurt is dat er met de nl2br() (= NewLine naar <br>) naar de database wordt geschreven, maar als je dan tekst later wil bewerken gaat het dan mis. Schrijf het weg zoals het uit het tekstveld komt (wel even htmlentities of adslashes eroverheen halen, om SQL-injectie te voorkomen) en doe de aanpassingen aan de tekst zelf pas bij het uitlezen.
 
Marc koster

marc koster

12/10/2006 23:45:00
Quote Anchor link
Mijn DB "uitgang" ziet er als volgt uit. Helemaal achteraan zet ik de nl2br() regel. Toch zie ik nog geen resultaat.

$sql = "SELECT * FROM weblog ORDER BY id DESC";

$resultaat = mysql_query($sql); // voer SQL code uit

if ($resultaat) {
while ($rij = mysql_fetch_array($resultaat)) {

print("<table width=100% border=0>");
// echo "<tr>";
// print("<tr><td>&nbsp;</td></tr>");
print "<td><h5>".$rij["titel"]."</h5></td>";
print("<tr><td>&nbsp;</td></tr>");
print "<td><h4>".$rij["bericht"]."</h4></td>";
print("<tr><td><h3>".$rij["naam"].", ".$rij["datum"]." </h3></td></tr>");
print("<tr><td>&nbsp;</td></tr>");
print("<tr><td>&nbsp;</td></tr>");
print "</tr>";

}
}
print "</table>";

nl2br($_POST['bericht']);
 
PHP Newbie

PHP Newbie

12/10/2006 23:49:00
Quote Anchor link
print "<td><h4>".nl2br($rij["bericht"])."</h4></td>";
 
Marc koster

marc koster

12/10/2006 23:58:00
Quote Anchor link
Nog steeds geen resultaat. De horizontale schuifbalk blijft verschijnen. Ik heb alle wrapfuncties in het formulier geprobeert.
 
Marc koster

marc koster

13/10/2006 00:03:00
Quote Anchor link
Voor alle duidelijkheid: Ik type 1 lange zin, dus zonder enters. Dit omdat in mijn formulier de "cursor" vanzelf naar een nieuwe regel springt.
 
Robert Deiman

Robert Deiman

13/10/2006 00:21:00
 
Erik Rijk

Erik Rijk

13/10/2006 07:50:00
Quote Anchor link
Robert schreef op 12.10.2006 23:18:
PHP Newbie schreef op 12.10.2006 23:06:
even de functie nl2br() over de text halen die uit de DB komt


Let hierbij vooral op het punt: "die uit de DB" komt. Wat er (te) veel gebeurt is dat er met de nl2br() (= NewLine naar <br>) naar de database wordt geschreven, maar als je dan tekst later wil bewerken gaat het dan mis. Schrijf het weg zoals het uit het tekstveld komt (wel even htmlentities of adslashes eroverheen halen, om SQL-injectie te voorkomen) en doe de aanpassingen aan de tekst zelf pas bij het uitlezen.
Wat ik altijd doe: Ik haal met het invoeren in de db enkel mysql_real_escape_string over de input veldjes heen.
met uitlezen gebuik ik htmlentities, stripslashes, nl2br ( indien nodig ) en nog wat zelfgemaakt functies.
Werkt perfect.

Bij de value van een input veldje doe ik het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
$var
= htmlentities($_POST['var']);
$var = stripslashes($var);
?>


<input type="text" name="var" value="<?=$var ?>">

als je bij het input veldje dan '/"/'/"/'/"/'/ invuld, krijg je dat ook netjes terug te zien. dus niet dat elke slash en elke quote ge-escaped worden.

Mvg,

Erik
 
Robert Deiman

Robert Deiman

13/10/2006 09:11:00
Quote Anchor link
Erik schreef op 13.10.2006 07:50:
Robert schreef op 12.10.2006 23:18:
PHP Newbie schreef op 12.10.2006 23:06:
even de functie nl2br() over de text halen die uit de DB komt


Let hierbij vooral op het punt: "die uit de DB" komt. Wat er (te) veel gebeurt is dat er met de nl2br() (= NewLine naar <br>) naar de database wordt geschreven, maar als je dan tekst later wil bewerken gaat het dan mis. Schrijf het weg zoals het uit het tekstveld komt (wel even htmlentities of adslashes eroverheen halen, om SQL-injectie te voorkomen) en doe de aanpassingen aan de tekst zelf pas bij het uitlezen.
Wat ik altijd doe: Ik haal met het invoeren in de db enkel mysql_real_escape_string over de input veldjes heen.
met uitlezen gebuik ik htmlentities, stripslashes, nl2br ( indien nodig ) en nog wat zelfgemaakt functies.
Werkt perfect.

Bij de value van een input veldje doe ik het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
$var
= htmlentities($_POST['var']);
$var = stripslashes($var);
?>


<input type="text" name="var" value="<?=$var ?>">

als je bij het input veldje dan '/"/'/"/'/"/'/ invuld, krijg je dat ook netjes terug te zien. dus niet dat elke slash en elke quote ge-escaped worden.

Mvg,

Erik


Dat is inderdaad beter :) danku.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.