7
votes

Comment transmettre des données du formulaire sans champ de formulaire? (Php)

J'ai un formulaire pour éditer un nom d'utilisateur et un email. Donc, lorsqu'il met à jour le nom et le courrier électronique, il a besoin du nom d'utilisateur pour identifier la ligne à mettre à jour.

Donc, je voulais savoir s'il y a un élément qui est passé avec le formulaire, mais sans montrer la valeur ou être modifiable dans la balise d'entrée.

Donc, je reçois le nom d'utilisateur d'un script. Le script d'utilisateur Modifier obtient le nom et le courrier électronique de la base de données avec le nom d'utilisateur spécifié. Ensuite, il transmet ce nouveau nom et courrier électronique avec le nom d'utilisateur à un autre script qui le met à jour.


0 commentaires

8 Réponses :


7
votes

Je crois que vous recherchez xxx

masqué - ne peut être vu que dans la source de votre document HTML
nom - où il se trouvera dans le $ _Request / $ _ po / $ _ $ _ get ($ _Post ou $ _GET en fonction de la manière dont vous soumettez votre formulaire) variable sur soumettre
valeur - nom d'utilisateur que vous souhaitez que ce formulaire concerne

de
Pro Tip : Donnez un moyen de dire qui essaie de mettre à jour les utilisateurs afin que vous ne disposez pas de personnes non autorisées à mettre à jour vos informations utilisateur. Il serait très facile pour quelqu'un de changer le nom d'utilisateur dans le formulaire et d'essayer de mettre à jour quelqu'un d'autre.


3 commentaires

Merci, ça a fonctionné. Et vous voulez dire que tout le monde peut changer le code tout en envoyant le formulaire et modifier les détails de quelqu'un d'autre. Alors pouvez-vous me dire comment le rendre plus sécurisé?


@Arjun Bajaj: Comment identifiez-vous / authentifiez-vous / authentifier actuellement vos utilisateurs? Il y a beaucoup de façons de rendre les applications Web plus sécurisées. La principale chose à garder à l'esprit est de jamais implicitement faire confiance au client. Vous voudrez vous assurer que un utilisateur est authentifié avant de traiter cette demande et assurez-vous (en utilisant le mécanisme d'autorisation que vous utilisez, tout système de rôles ou d'autorisations) que l'utilisateur est autorisé à effectuer cette action. Ce dernier bit se penche beaucoup vers la logique des affaires, alors que le premier est purement authentifiant.


Voici un tutoriel que j'ai trouvé, devriez commencer à vous donner une idée générale: CONNAISSEDURETRACOM /FORMS/TOPIC/7887-PHP-SIMPLE-LOGIN-TUNTITORI AL



4
votes

Vous pouvez utiliser le type d'entrée caché

<input type="hidden" name = "username" value="<?php echo $username ?>">


0 commentaires

4
votes

Utilisez un:

 <input type="hidden" />


0 commentaires

3
votes

Utilisez une étiquette d'entrée cachée: xxx


0 commentaires

3
votes

Vous pouvez utiliser un champ de formulaire masqué: xxx

Ceci ne rendra pas sur le formulaire dans le navigateur et sera probablement ignoré et inaperçu par l'utilisateur.

Cependant, , sachez que ce est éditable. Ne pas s'appuyer sur cette mesure de sécurité. Lorsque le formulaire est soumis, assurez-vous que l'utilisateur soumettant le formulaire (en utilisant les mécanismes d'authentification et d'autorisation que vous avez en place) est autorisé à apporter ce changement avant de le persister dans la base de données. tout champ de formulaire étant soumis peut être édité.


0 commentaires

3
votes

Comme tous les autres ont déclaré que vous avez besoin d'une entrée cachée. Ce sera éditable, cependant, ne la faites jamais confiance comme vous ne faites jamais confiance à aucune autre donnée provenant de l'extérieur.

Mais j'aimerais ajouter qu'il serait plus agréable de ne pas utiliser le nom d'utilisateur pour identifier une ligne, ajouter une colonne d'identité. une clé primaire à votre base de données (éventuellement automatique incrémentée) et utilisez-la sous votre forme.

quelque chose comme xxx


0 commentaires

3
votes

Arun, vous pouvez utiliser pour passer à passer des variables d'une page à une autre page. Construisez simplement des URL comme EdidTuser.php? Nom d'utilisateur = ARUN et ainsi de suite. C'est le seul moyen possible de transmettre des variables ou des données, bien sûr à l'écart des cookies, d'autres pages avec des balises de formulaire.
Deuxième méthode consiste à utiliser JavaScript pour créer un champ de formulaire caché et la mettre à jour avec nom d'utilisateur.
Le troisième est de simplement ajouter des balises d'entrée cachées. Mais cela nécessitera des étiquettes de formulaire.

Un mot de prudence, filtrer les entrées utilisateur, être JS, obtenir des champs ou cachés.


0 commentaires

2
votes

Utilisez ceci si vous souhaitez l'utiliser en toute sécurité:

<?php

function encode($string,$key) {
    $key = sha1($key);
    $strLen = strlen($string);
    $keyLen = strlen($key);
    for ($i = 0; $i < $strLen; $i++) {
        $ordStr = ord(substr($string,$i,1));
        if ($j == $keyLen) { $j = 0; }
        $ordKey = ord(substr($key,$j,1));
        $j++;
        $hash .= strrev(base_convert(dechex($ordStr + $ordKey),16,36));
    }
    return $hash;
}

function decode($string,$key) {
    $key = sha1($key);
    $strLen = strlen($string);
    $keyLen = strlen($key);
    for ($i = 0; $i < $strLen; $i+=2) {
        $ordStr = hexdec(base_convert(strrev(substr($string,$i,2)),36,16));
        if ($j == $keyLen) { $j = 0; }
        $ordKey = ord(substr($key,$j,1));
        $j++;
        $hash .= chr($ordStr - $ordKey);
    }
    return $hash;
}

?>


0 commentaires