Pergunta

Eu estou apenas começando a aprender php, como eu ia iniciar uma instrução echo após um enviar botão é pressionado, ou até mesmo uma marca de âncora.

Aqui está o meu código até agora

form name="myform" method="get" actions="madlib01.php"

 Name: <input type="text" name="name" /> <br />


     <input type="submit" name="submit" />

forma

<?php

$Name = $_GET['name'];

$hello .= "Hello $Name";

echo $hello  //I would prefer the echo to happen after the submit button is hit

?>
Foi útil?

Solução

o atributo correto para o seu tag de formulário é "ação", e não "ações"

Quando o formulário é enviado, um novo pedido é enviado para o servidor (no seu caso, usando GET).

Assim, para fazê-lo tudo em uma página:

form.php:

<form action="form.php" method="GET">
<input type="text" name="name"/>
<input type="submit">
</form>

<?PHP
if (! empty($_GET['name'])){
   echo 'Hello, ' . $_GET['name'];
}
?>

Outras dicas

Você primeiro precisa verificar se o PHP recebeu seu parâmetro GET usando isset ou array_key_exists :

if(isset($_GET['name']) && !empty($_GET['name'])) {
    $Name = $_GET['name'];
    echo "Hello $Name";
}

ou

if(array_key_exists('name', $_GET) && !empty($_GET['name'])) {
    $Name = $_GET['name'];
    echo "Hello $Name";
} else {
    //example: default to something if nothing has been passed
    echo "Hello Guest";
}

Também nota, se você está enviando para a mesma página, você pode omitir o atributo action de sua marca de formulário completo:

<form method="GET">

echo Olá $

Você apenas ganhou uma vulnerabilidade do HTML-injeção. Se alguém lhe enviar o seu usuário:

http://www.example.com/madlib01.php?name=<script>stealYourCookies()</script>

você tem problemas.

Sim, este é um Meu Primeiro PHP Script. Isso não faz opcional de segurança. Este é um erro a cada marcas Tutorial:. Ensinando má prática desde o início, o tratamento correto (e de segurança, que é um subconjunto de exatidão) como um extra opcional

O resultado é que o código mais PHP lá fora é cheio de buracos. Mas não há nenhuma necessidade de seu ser! Toda vez que você colocar uma corda de texto puro em um contexto HTML circundante, escapar-lo corretamente:

echo htmlspecialchars($hello);

I tendem a definir uma função com um nome mais curto do que ‘htmlspecialchars’ para fazer isso por mim, como eu sou preguiçoso.

<?php
    function h($text) {
        echo(htmlspecialchars($text, ENT_QUOTES));
    }
    $name= '';
    if (isset($_REQUEST['name']))
        $name= trim($_REQUEST['name']);
?>

...

<?php if ($name!=='') { ?>
    <p> Hello, <?php h($name); ?>! </p>
<?php } ?>

<form method="get" action="madlib01.php">
    <p>
        <label for="namefield">Name:</label>
        <input id="namefield" type="text" name="name" />
    </p>
    <p>
        <input type="submit" />
    </p>
</form>

Agora, se você diz que seu nome é Senhor

scroll top