Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z <br /> i funkcja
Forum PHP.pl > Forum > Przedszkole
robos85
mam taką funkcję:
  1. <?php
  2. function sqlesc($content) {
  3.  global $db;
  4.  $content=$db->real_escape_string(htmlspecialchars(strip_tags($content)));
  5.  return $content;
  6. }
  7. ?>

pole text insertuję tak:
  1. <?php
  2. '".nl2br(sqlesc($_POST['content']))."'
  3. ?>

Lecz nie robi mi br:/ Dlaczego skoro zamieniam na znacznik HTML dopiero po wszystkich innych zabiegach?
bliitz
najpierw wykonuje się sqlesc i to co z niego otrzymasz idzie do nl2br i prawdopodobnie to jest przyczyną
robos85
no tak tlyko czemu nie robi br?
Zrobiłem nowa funkcję i też nie działa:
  1. <?php
  2. function sqlesc_br($content) { // allow <br />
  3.  global $db;
  4.  $content=$db->real_escape_string(htmlspecialchars(strip_tags($content,'<br>')));
  5.  return $content;
  6. }
  7. ?>
bliitz
htmlspecialchars zamienia na zwykły tekst
  1. <?php
  2. $new = htmlspecialchars("<a href='test'>Test</a>");
  3. echo $new;
  4. ?>


wyświetla zwykły tekst a nie link
robos85
czyli jak to teraz zrobić żeby działało? nie chcę htmlspecialchars usuwać ze względu na bezpieczeństwo:/

ale dziwne, bo nawet jak w odwrotnej kolejności wywołam te funkcje to i tak mi nie koduje:/
Raz mi zamienia tagi html na encje, a za 2gim razem mam spacje:/

idąc krok po kroku doszedłem do takiej funkcji:
  1. <?php
  2. function sqlesc($content) {
  3.  global $db;
  4.  $content=strip_tags($content);
  5.  $content=htmlspecialchars($content);
  6.  $content=$db->real_escape_string($content);
  7.  return $content;
  8. }
  9. ?>


i się okazało że ta linia zamienia moje br na spacje:
  1. <?php
  2. $content=$db->real_escape_string($content);
  3. ?>


jak temu teraz zaradzić?

------------------------EDIT------------------------------------------
Zrobiłem taką funkcję:
  1. <?php
  2. function sqlesc($content) {
  3.  global $db;
  4.    $content=htmlspecialchars(strip_tags($content));
  5.  }
  6.  else{
  7.      $content=$db->real_escape_string(htmlspecialchars(strip_tags($content)));
  8.  }
  9.  return $content;
  10. }
  11. ?>


Czy jest to dobre rozwiązanie?
b4x
Pokaż co się "kryje" pod funkcją real_escape_string smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.