2008-10-22 6 views
-2

Je ne peux pas pour la vie de moi trouver un formulaire qui n'envoie pas par courriel les résultats que vous soumettez. Je cherche un formulaire que je peux demander aux utilisateurs d'entrer des données simples que je peux ensuite leur cracher dans différents arrangements. Si elles soumettent First et Last, je vais cracher, entre autres choses, [email protected] Je suis prêt à grappiller le code manuellement pour le faire, mais je ne peux pas trouver un formulaire simple qui me permettrait de le faire.Un formulaire qui crache l'entrée

Édition: PHP ou des langages simples similaires. Je n'ai jamais touché .NET avant.

+0

Il serait utile de spécifier un langage de codage (et d'ajouter une balise). – DOK

+0

Je ne vois pas pourquoi cette question est à deux votes? Je ne peux pas l'événement entièrement le comprendre ... L'Internet est * plein * des formes qui n'envoient pas les résultats par courrier électronique - à quoi faites-vous référence? – Tomalak

Répondre

0

Dans quelle langue/plateforme/environnement travaillez-vous?

Je suppose que vous pourriez être à la recherche d'un script hébergé ou webform (la façon dont les gens vont héberger des scripts web-to-mail je suppose) mais je doute qu'il y en aurait un qui le fasse.

Mais si vous avez un cadre spécifique dans lequel travailler, par ex. PHP ou .net, s'il vous plaît mettre à jour la question et laissez-nous savoir lequel.

+0

(assis à côté de ylight) - base LAMP/PHP – AlexeyMK

0

Ce simple fait n'a même pas besoin d'un support côté serveur.

<form onsubmit="magic(this);return false"> 
    <p><label>First <input name=first/></label> 
    <p><label>Last <input name=last/></label> 
    <input type="submit"> 

    <div id="output"></div> 
</form> 

<script type="text/javascript"> 
    var output = document.getElementById('output'); 
    function toHTML(text) 
    { 
     return text.replace(/</g,'&lt;'); 
    } 

    function magic(form) 
    { 
     output.innerHTML = toHTML(form.first.value + form.last.value) + '@domain.com'; 
    } 
</script> 
2

Forme:

<form action="process.php" method="post"> 
    First: <input type="text" name="first" /> 
    Last: <input type="text" name="last" /> 
    <input type="submit" /> 
</form> 

Page suivante:

<?php 

$first = $_POST['first']; 
$last = $_POST['last'] 

echo $first . "." . $last . "@domain.com"; 
?> 

Voir http://www.w3schools.com/php/php_forms.asp pour plus d'exemples et d'explications

+0

Vous devez appeler htmlentities() ou htmlspecialchars() sur toute entrée utilisateur que vous crachez dans le navigateur pour empêcher les attaques xss –

+0

Totalement d'accord avec vous sur celui-là. Essayait juste de garder la réponse aussi simple et minimale que possible. – alex77

+0

Pendant que vous y êtes ... Recherchez les caractères invalides dans les adresses e-mail. Quoi qu'il en soit: un champ de formulaire qui demande l'adresse mail ne serait-il pas plus simple ou est-ce que je ne comprends toujours pas le point? – Tomalak

1

Quelle que soit la façon dont vous l'obtenez, toujours rappeler à nev er confiance utilisateur entrée.

<?php 

$sfirst = htmlentities($_POST['first']); 
$slast = htmlentities($_POST['last']); 

echo $first . "." . $last . "@domain.com"; 
?> 

En outre, l'exécution d'un validateur sur le résultat final peut être utile. Mais s'il vous plaît ne pas écrire votre propre validateur d'adresse e-mail.

+0

Vous ne devriez pas utiliser htmlentities dans ce cas.Vous devriez être utilisé urlencode .. – moo

+0

@ orlandu63: à proprement parler, les deux devraient être appliquées. D'abord rawurlencode() pour convertir du texte en texte-dans-URL, puis htmlspecialchars() pour convertir de l'URL en URL-en-HTML. En pratique, le premier échappement rend inutile la seconde, mais cela ne signifie pas que htmlspecialchars() ne doit pas être utilisé. – Kornel

0

Si je reçois votre droit de question, ressemble à cela pourrait faire ce que vous avez besoin ..

Note: Ce code PHP ne nécessite aucune connaissance des champs du formulaire qui lui soumet, il Il suffit de parcourir tous les champs, y compris les champs à choix multiples (comme les cases à cocher), et de cracher leurs valeurs.

<?php 
// loop through every form field 
while(list($field, $value) = each($_POST)) { 
    // display values 
    if(is_array($value)) { 
     // if checkbox (or other multiple value fields) 
     while(list($arrayField, $arrayValue) = each($value) { 
     echo "<p>" . $arrayValue . "</p>\n"; 
     } 
    } else { 
     echo "<p>" . $value . "</p>\n"; 
    } 
} 
?> 
Questions connexes