Textarea input met \n in DB zetten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Doney

Doney

30/06/2008 16:31:00
Quote Anchor link
Beste mensen,

Ik heb dus een form met een textarea hierin. Ik wil graag dat dit in de DB gezet wordt (of uitgelezen), zodat de newlines zijn vervangen door \n codes.
Ik heb al veel gezocht maar niets kunnen vinden.

VB: Dit is mijn invoer:
"Tekst met
een aantal
newlines
:)"

Hoe komt dit zo in de DB, of hoe word het zo uitgelezen:
"Tekst met\neen aantal\nnewlines\n:)"

Bvd,
Doney
 
PHP hulp

PHP hulp

30/11/2024 20:07:47
 
Citroen Anoniem Graag

Citroen Anoniem Graag

30/06/2008 16:33:00
Quote Anchor link
bij het uit de database halen de functie nl2br erover heen gooien
 
Citroen Anoniem Graag

Citroen Anoniem Graag

30/06/2008 16:33:00
Quote Anchor link
1
Gewijzigd op 01/01/1970 01:00:00 door Citroen Anoniem Graag
 
Citroen Anoniem Graag

Citroen Anoniem Graag

30/06/2008 16:33:00
Quote Anchor link
2
Gewijzigd op 01/01/1970 01:00:00 door Citroen Anoniem Graag
 
Citroen Anoniem Graag

Citroen Anoniem Graag

30/06/2008 16:33:00
Quote Anchor link
3
Gewijzigd op 01/01/1970 01:00:00 door Citroen Anoniem Graag
 
Citroen Anoniem Graag

Citroen Anoniem Graag

30/06/2008 16:33:00
Quote Anchor link
4

Das ietsjes te vaak, 1x lijkt mij meer dan voldoende. Volgens mij is het de combinatie firebug + php hulp, want ik het dit nooit gehad, en nu zette ik ff alle opties in firebug aan en hij verzend het formulier 5x
Gewijzigd op 01/01/1970 01:00:00 door Citroen Anoniem Graag
 
Ricolo

Ricolo

30/06/2008 16:35:00
Quote Anchor link
Zou ik ook doen. Leuke reacties Fréek.
 
- SanThe -

- SanThe -

30/06/2008 16:37:00
Quote Anchor link
Gewoon met mysql_real_escape_string() er omheen in de database zetten.
 
Jan Koehoorn

Jan Koehoorn

30/06/2008 16:38:00
Quote Anchor link
Fréek schreef op 30.06.2008 16:33:
4

Das ietsjes te vaak, 1x lijkt mij meer dan voldoende. Volgens mij is het de combinatie firebug + php hulp, want ik het dit nooit gehad, en nu zette ik ff alle opties in firebug aan en hij verzend het formulier 5x

Ik heb ook de firebug extensie, maar geen problemen.
 
Doney

Doney

30/06/2008 16:39:00
Quote Anchor link
@Freek en Ricolo:
Nope, dan komt-ie er zo uit:

"Tekst met<br />
een aantal<br />
newlines<br />
:)"

Hij moet namelijk in een javascript alert() terechtkomen, en hiervoor moet je \n 's hebben.
 
Onbekend Onbekend

Onbekend Onbekend

30/06/2008 16:48:00
Quote Anchor link
Welke FF heb je en welke Firebug?

replace dan gewoon die <br /> met \n? Of gaat dat niet werken, heb dat eigenlijk nooit getest.
Gewijzigd op 01/01/1970 01:00:00 door Onbekend Onbekend
 
Ricolo

Ricolo

30/06/2008 16:51:00
Quote Anchor link
Doney, en dan met preg_replace uit de DB halen?
 
Onbekend Onbekend

Onbekend Onbekend

30/06/2008 16:54:00
Quote Anchor link
Ik dacht dat als je in een form een newline doet, dit wordt gegeven met een \n, dus je hoeft denk ik niets te doen. Of wel?
 

30/06/2008 16:58:00
Quote Anchor link
klopt als je het normaal in je database zet en normaal ophaald heb je als het goed is geen problemen. zou je wat code kunnen laten zien?
 
Doney

Doney

30/06/2008 17:16:00
Quote Anchor link
Sure, dit is de function om alle alerts op te halen en weergeven:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
function checkAlerts () {

$getalerts = mysql_query("SELECT * FROM `alert` WHERE `userid` = '" . userID($_SESSION[username]) . "' AND `read` = 0 ORDER BY `tijd` ASC") or die (mysql_error());
      while($alert = mysql_fetch_object($getalerts)) {
      $bericht = $alert->bericht;
      echo '<script type="text/javascript" language="javascript">
      alert("' . $bericht . '");
      </script>';
      mysql_query("UPDATE `alert` SET `read` = 1 WHERE `id` = '".$alert->id."' LIMIT 1") or die (mysql_error());
      }
}


En dit is het in-de-DB-zet-gedeelte:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
if ($_POST[addname] == 1) {
            $bericht = "Alert van " . $_SESSION[username] . ":\\n----------------------------\\n" . $_POST[bericht] . "";
            } else {
            $bericht = "Alert van Moderator:\\n----------------------------\\n" . $_POST[bericht] . "";
            }
            
        
        mysql_query("INSERT INTO alert VALUES (0, ".userID($_POST[username]).", '". $bericht ."', NOW(), 0)") or die (mysql_error());
        echo "Het bericht is verzonden naar ".$_POST[username].".";
 
- SanThe -

- SanThe -

30/06/2008 17:26:00
Quote Anchor link
Even een paar puntjes:
- Geen backtics in query's gebruiken.
- $_SESSION is een array(). Gebruik de juiste syntax, dus gebruik enkele quotes.
- Foutafhandeling ontbreekt.
- Gebruik mysql_real_escape_string() om je data veilig in de database te zetten. Je hebt nu een sql-injection lek.
 
Doney

Doney

30/06/2008 17:32:00
Quote Anchor link
Oké, bedankt voor de tips, maar dat lost mijn probleem nog niet op :P
 
- SanThe -

- SanThe -

30/06/2008 17:34:00
Quote Anchor link
Als je die tips opvolgt, welk probleem heb je dan nog?
 
Onbekend Onbekend

Onbekend Onbekend

30/06/2008 17:44:00
Quote Anchor link
Er was geen probleem, TS maakt zelf een probleem door weet ik wat in de database te zetten ipv \n. Als de string met de tekst niet bewerkt wordt, voor hij in de database gaat, en niet bewerkt wordt erna, bijv. door nl2br(), dan is er niets aan de hand, dus geen probleem.
 
Doney

Doney

30/06/2008 18:03:00
Quote Anchor link
Wat zit jij nou te praten? Er is wél een probleem. Als ik het normaal uit de DB haal en in de broncode kijk, staat er:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<script type="text/javascript" language="javascript">
      alert("Alert van Moderator:
----------------------------
regel1
regel2
regel3
regel4
enz");
      </script>


Wat dus niet kan, want alert mag niet uit meerdere lines bestaan, maar uit 1 line met \n's. Snapt iemand het?
 
- SanThe -

- SanThe -

30/06/2008 18:11:00
Quote Anchor link
Dus hij moet de \n daadwerkelijk echoën?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$bericht
= str_replace("\n", '\n', $alert->bericht);
?>
 

Pagina: 1 2 volgende »



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.