2009-10-05 7 views

Répondre

0
<?php 

$enteredLink = isset($_POST['enteredLink']) ?1:0; 

if ($enteredLink) { 
?> 
<a href="<?php echo htmlentities($_POST['enteredLink']);?>">link</a> 
<?php 
} 
?> 

Vous devez définir une variable à un booléen, utilisez une instruction if et si elle a été saisie, juste quoi que ce soit sortie, sinon non.

+0

C'est une invitation ouverte à XSS. En règle générale, vous ne devez jamais émettre de données de formulaire non codées au format HTML. –

+0

entourant l'entrée $ _POST avec htmlentities() devrait résoudre ce potentiel. En dehors de cela, le code devrait faire ce que votre après. – canadiancreed

+2

Bien sûr, je vous recommande de désinfecter, mais honnêtement, il y a des centaines de questions simples sur StackOverflow où XSS n'est pas pris en compte car il est en dehors de la portée de la question d'origine. –

1

Les bases sont:

<?PHP 

if(isset($_REQUEST['supplied_link'])) 
{ 
    // do something 
} 
else 
{ 
    // do another thing 
} 

Cependant, il est très important de valider en fait ce lien d'une certaine manière, en particulier pour faire en sorte que ce n'est pas le code de script, mais est, en fait, un lien. J'ai choisi $ _REQUEST parce qu'il gère POST et GET, mais vous pouvez utiliser $ _POST comme meder décrit.

En termes de validation, si vous utilisez PHP 5, vous pouvez simplement utiliser strpos pour chercher http: // au début. Rappelez-vous, dans ce cas, la valeur de retour serait 0 (zéro) pour la correspondance désirée et FALSE ou> 0 pour un échec. Vous pourriez faire beaucoup plus que cela (comme la validation de l'URL contre DNS, bloqueurs de spam, etc), mais c'est le strict minimum.