web-dev-qa-db-fra.com

Méthode PHP $ _POST pour obtenir la valeur textarea

J'utilise php pour obtenir une valeur textarea en utilisant la méthode post, mais j'obtiens un résultat étrange avec qui me laisse vous montrer mon code

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

J'entre des noms et leur adresse e-mail dans la zone textarea, et chaque fois que je renvoie la valeur ou textarea, l'adresse e-mail est ignorée et ne montre que le nom. Permettez-moi d'indiquer la manière dont je saisis la valeur dans textarea

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

et une fois que j'aurai un écho en utilisant php, il ne fera qu'écho avec le nom et passera l'adresse e-mail.

11
Frank

Toujours (toujours, toujours, je je ne plaisante pas ), utilisez htmlspecialchars():

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

Assurez-vous que vous échappez les caractères HTML

Par exemple.

// 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']);
}

Cela se produirait à cause des crochets et du navigateur pensant qu’il s’agissait de balises.

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

7
Petah

Utilisez htmlspecialchars() :

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

Vous pouvez même améliorer votre traitement de formulaire en supprimant toutes les balises avec strip_tags() et en supprimant tous les espaces blancs avec trim() :

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

echo processText($_POST['contact_list']);
1
//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
0
jundell agbo

Essayez d’utiliser différents paramètres d’identité et de nom, vous avez actuellement la même chose ici. S'il vous plaît visitez le lien ci-dessous pour la même chose, cela pourrait être vous aider:

Problème avec $ _POST avec une zone de texte

0
Sanchit Gupta

Supprimez une partie de votre classe textarea comme

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

À

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

Cela dépend de votre modèle (modèle acheté) . Le développeur a inclus du code JavaScript pour obtenir la valeur de l'objet correct sur l'interface utilisateur, Mais une classe comme input-text trouve uniquement que $('input[type=text]'), voilà pourquoi.

0
ZenithS