nl2br gebruiken met $_POST
Ik heb een vraagje over nl2br. Ik heb al gezocht op internet en op phphulp, maar niet mijn specifieke vraag gevonden.
Hierbij dus:
Ik heb een formulier waarbij je in een open veld een opmerking kunt meesturen. Als je hierin een harde return geeft, slaat hij dit in de database op als \r\n\r, zoals het hoort.
Nu gebruik ik een $_POST om de ingevulde velden te onthouden nog voordat het opgeslagen wordt in de database. Dit is omdat ik een captcha heb en als die niet goed is ingevuld kom je automatisch terug op dezelfde pagina en zijn de velden dus nog ingevuld dmv de $_POST
Nu heb ik eigenlijk 2 probleempjes:
1) wanneer je terugkomt op de pagina, heeft de pagina de harde returns veranderd in \r\n\r, dit staat erg raar voor mensen die niet weten wat dat betekent. Kan ik dat voorkomen of dmv nl2br weer in harde returns laten aflezen?
Ik gebruik de volgende code:
2) wanneer het formulier goed verstuurd wordt, wordt alles in de database correct opgeslagen. Er wordt dan tijdens het versturen vanaf de pagina ook een email verstuurd met daarin de ingevulde gegevens. In de mail komt nu echter ook die vervelende \r\n\r tekens, waardoor de opmerkingen slechter leesbaar worden en het staat gewoon erg slordig en onprofessioneel. De gegevens in de email worden ook via de $_POST verstuurd. Hoe kan ik nu zorgen dat in de email gewoon die harde returns goed worden weergegeven?
Ik gebruik de volgende codes:
eerst vraag ik de gegevens uit het formulier op via: $a_opmerkingen = $_POST["opmerkingen"];
dan zet ik dit in het email-gedeelte via: Opmerkingen: ".$a_opmerkingen."
Ik heb al geprobeerd nl2br($_POST["opmerkingen"]); bij beide problemen, maar dat werkt dus niet. Hij geeft geen foutmelding, maar de harde returns worden zowel in het formulier als in de email niet goed weergegeven.
Help?!
Alvast bedankt!
Miko
In de mail: nl2br(htmlentities(stripslashes($_POST['...'])))
En daar kan je zien dat nl2br niks anders doet dan achter elke enter een <br /> te zetten
Jordi kroon op 09/02/2011 19:53:16:
Ik heb nl2br ooit getest met command ( windows opdracht prompt)
En daar kan je zien dat nl2br niks anders doet dan achter elke enter een <br /> te zetten
En daar kan je zien dat nl2br niks anders doet dan achter elke enter een <br /> te zetten
Niet achter maar vóór. Staat gewoon op php.net.
Returns string with '<br />' or '<br>' inserted before all newlines.
ohw bij mij stonde ze achteraan , Vreemd
bv. een alternatief, met paragrafen
Code (php)
eventueel nog de "\r" elimineren.
Bedankt voor de reacties so far, ik ga eerst even de eerste oplossing proberen, volgens mij moet dat wel werken. Ik laat het weten of het wel of niet gelukt is.
Ik heb dat stripslashes geprobeerd, maar dat haalt dus alleen de \ weg en dan wordt het helemaal onduidelijk omdat de rnrnrnrn dan wel blijft staan in de tekst.
Ik ben niet zodanig thuis in php dat ik eventjes een stukje code wegschrijf, weten jullie niet of er gewoon een eenvoudige manier is om dit \r\n te elimineren? Ik neem aan dat ik niet de eerste en enige ben die hier last van ondervindt?
Alvast bedankt!
Toevoeging op 21/03/2011 00:14:28:
misschien dat iemand mij kan helpen door aan te geven hoe ik dat dan in mijn code dien te schrijven?
en
in de email die verstuurd wordt:
eerst het opvragen:
$a_opmerkingen = nl2br($_POST["opmerkingen"]);
en dan in de email:
Opmerkingen: ".$a_opmerkingen."
Alvast bedankt voor alle hulp de goede richting op!