2011-09-28 10 views
10

używam php uzyskać wartość textarea przy użyciu metody POST ale coraz dziwny wynik z tym pokażę ci mój kod

<form method="post" action="index.php"> 
    <textarea id="contact_list" name="contact_list"></textarea> 
    <input type="submit" name="submit" value="Send" id="submit"/> 
</form> 

jestem wprowadzając pewne nazwiska i ich e-mail adres w textarea, i za każdym razem echo wartości lub textarea pomija adres e-mail i tylko pokazujący nazwę pozwól mi pokazać, jakim jestem wprowadzanych wartości w textarea

"name1" <[email protected]>, "name2" <[email protected]> 

i raz będę echo za pomocą php będzie tylko echo nazwy i pominie adres e-mail.

+4

Nie omijając e-mail, Twoja przeglądarka internetowa jest interpretowanie go jako znak i nie jest wyświetlany. Spójrz na źródło html. – steveo225

+0

Odpowiedz

6

Upewnij się, że znaki HTML są ukryte:

Np.

// Always check an input variable is set before you use it 
if (isset($_POST['contact_list'])) { 
    // Escape any html characters 
    echo htmlentities($_POST['contact_list']); 
} 

Wystąpiłoby to z powodu nawiasów ostrych i przeglądarki, która uważa, że ​​są znacznikami.

Patrz: http://php.net/manual/en/function.htmlentities.php

+0

z której architektury PHP korzystasz? – mahadeb

+0

Wierzę, że htmlentities będzie działać lepiej, bo nie ma metody html_entity_encode – Frank

+0

tak, tak, szybka odpowiedź, zanim podniosłem prawdziwą funkcję: P – Petah

30

Zawsze (zawsze zawsze, jestem not kidding) używać htmlspecialchars():

echo htmlspecialchars($_POST['contact_list']); 
+0

to działało dla mnie.Dzięki @Tomalak – MizAkita

0

Usuń niektóre klasy textarea jak

<textarea name="Address" rows="3" class="input-text full-width" placeholder="Your Address" ></textarea> 

Aby

<textarea name="Address" rows="3" class="full-width" placeholder="Your Address" ></textarea> 

Jest to zależne od szablonu (szablon zakupu). Deweloper dołączył pewne skrypty JavaScript, aby uzyskać wartość z właściwego obiektu w interfejsie użytkownika, , ale klasa taka jak input-text znajduje tylko $('input[type=text]'), właśnie dlatego.

+1

Proszę nie przesyłać dokładnie tej samej odpowiedzi na różne pytania. Oznacz to pytanie jako "duplikat", jeśli tak jest. – brasofilo

-3

Spróbuj tego:

<?php /* the php */ ?> 
<?php 
    if ($_POST['submit']) { 
     // must work 
     echo $_POST['contact_list']; 
    }; 
?> 


<?php /* and the html */ ?> 

<!doctype html> 
<html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 
     <title>teszt</title> 
    </head> 
    <body> 
     <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>"> 
      <textarea id="contact_list" name="contact_list"></textarea> 
      <input type="submit" name="submit" value="Send" id="submit"/> 
     </form> 
    </body> 
</html> 
1

Korzystając htmlspecialchars():

echo htmlspecialchars($_POST['contact_list']); 

Można nawet poprawić przetwarzanie formularz przez odpędzenie wszystkie znaczniki z strip_tags() i usunąć wszystkie białe spacje z trim():

function processText($text) { 
    $text = strip_tags($text); 
    $text = trim($text); 
    $text = htmlspecialchars($text); 
    return $text; 
} 

echo processText($_POST['contact_list']); 
0

Spróbuj użyć innego identyfikatora i nazwy Parametry, obecnie masz to samo tutaj. Proszę odwiedzić poniższy odnośnik do tego samego, to można pomóc:

Issue using $_POST with a textarea

+0

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. –

+0

@ ManishKr.Shukla Chociaż zgadzam się z Twoją decyzją dotyczącą oceny, warto wspomnieć, że ten konkretny link prowadzi do innego pytania na stronie SO. Więc głosowałem "wygląda dobrze". – user1032613

+0

@ ManishKr.Shukla and user1032613 Dziękujemy za informacje. Ja się tym zajmie :) –

0
//My Form 
<form id="someform"> 
     <div class="input-group"> 
      <textarea placeholder="Post your Comment Here ..." name="post" class="form-control custom-control" rows="3" style="resize:none"></textarea> 
      <span class="input-group-addon">            
       <button type="submit" name="post_comment" class="btn btn-primary"> 
        Post 
       </button> 
      </span> 
     </div> 
    </form> 

//your text area get value to URL 
<?php 
     if(isset($_POST['post_comment'])) 
     { 
      echo htmlspecialchars($_POST['post']); 
     } 

    ?> 

//print the value using get 
echo $_GET['post']; 

//url must be like this 
http://localhost/blog/home.php?post=asdasdsad&post_comment= 

//post value has asdasdsad so it will print to your page