Problème avec php (formulaire et shell)
Résolu
lamou23
Messages postés
178
Date d'inscription
Statut
Membre
Dernière intervention
-
lamou23 Messages postés 178 Date d'inscription Statut Membre Dernière intervention -
lamou23 Messages postés 178 Date d'inscription Statut Membre Dernière intervention -
salut,
j'ai développé un petit formulaire qui me permet de modifier le login et le mot de passe d'une application dans un fichier .htpasswd
voici le code:
[CODE]
<html>
<style type="text/css">
.titre1
{
font-size:14px;
color:white;
}
.titre2
{
font-size:13px;
}
</style>
<body>
<br><br><br><br><br><br><br><br>
<FORM ACTION="user.php" METHOD='POST'>
<table width="80%" cellpadding="3" align="center" cellspacing="0" style='border:1px outset gray'>
<tr bgcolor="#00438C">
<td class="titre1">Enregistrer un nouveau compte administateur:</td>
<td></td>
</tr>
<tr>
<td class="titre2">Login:</td>
<td><input type=text name='login' value=''></td>
</tr>
<tr>
<td class="titre2">Password:</td>
<td><input type=password name='passwd' value=''></td>
</tr>
<tr>
<td class="titre2">Entrer a nouveau:</td>
<td><input type=password name='passwd1' value=''></td>
</tr>
<tr>
<td ></td>
</table>
</div>
<table width="80%" align="center" >
<tr>
<br>
<td align="center"><img src="images/user_add.jpg" height="20"/><input type='submit' name='envoi' value='Enregistrer' /></td>
</tr>
</FORM>
</table>
<?
$login=$_POST['login'];
$password=$_POST['passwd'];
$password1=$_POST['passwd1'];
if ($password==$password1)
{
$pass_crypte=crypt($_POST['passwd']);
// On crypte le mot de passe
if (isset($_POST['envoi']) && isset($_POST['login']) && isset($_POST['passwd']) && isset($_POST['passwd1']))
{
echo $pass_crypte;
exec("sudo -u root script/adduser.sh $login $pass_crypte");
}
}
else
{ echo '<script> alert("Erreur: mot de passe incorrect,veuillez remplir les champs vides")</script>';}
// fin envoi
?>
</body>
</html>
[/CODE]
le script adduser.sh contient:
[CODE]
#!/bin/bash
sudo -u root printf "$1:$2" > /var/www/pfe/.htpasswd
[/CODE]
mon problème est que le contenu de la variable $pass_crypte n'est pas recopié entiérement dans le fichier .htpasswd.
par exemple pour le login='samou', password="kikou"
en affichant le contenu $pass_crypte sur la page elle donne : $1$m393mvlm$/MrM5offlmzk46U.sjlIG. mais en consultant le .htpasswd, je trouve seulement la ligne:
samou:$/MrM5offlmzk46U.sjlIG.
(il me recopie pas le mot de passe chiffré entièrement)
aidez moi s'il vous plait
merci
j'ai développé un petit formulaire qui me permet de modifier le login et le mot de passe d'une application dans un fichier .htpasswd
voici le code:
[CODE]
<html>
<style type="text/css">
.titre1
{
font-size:14px;
color:white;
}
.titre2
{
font-size:13px;
}
</style>
<body>
<br><br><br><br><br><br><br><br>
<FORM ACTION="user.php" METHOD='POST'>
<table width="80%" cellpadding="3" align="center" cellspacing="0" style='border:1px outset gray'>
<tr bgcolor="#00438C">
<td class="titre1">Enregistrer un nouveau compte administateur:</td>
<td></td>
</tr>
<tr>
<td class="titre2">Login:</td>
<td><input type=text name='login' value=''></td>
</tr>
<tr>
<td class="titre2">Password:</td>
<td><input type=password name='passwd' value=''></td>
</tr>
<tr>
<td class="titre2">Entrer a nouveau:</td>
<td><input type=password name='passwd1' value=''></td>
</tr>
<tr>
<td ></td>
</table>
</div>
<table width="80%" align="center" >
<tr>
<br>
<td align="center"><img src="images/user_add.jpg" height="20"/><input type='submit' name='envoi' value='Enregistrer' /></td>
</tr>
</FORM>
</table>
<?
$login=$_POST['login'];
$password=$_POST['passwd'];
$password1=$_POST['passwd1'];
if ($password==$password1)
{
$pass_crypte=crypt($_POST['passwd']);
// On crypte le mot de passe
if (isset($_POST['envoi']) && isset($_POST['login']) && isset($_POST['passwd']) && isset($_POST['passwd1']))
{
echo $pass_crypte;
exec("sudo -u root script/adduser.sh $login $pass_crypte");
}
}
else
{ echo '<script> alert("Erreur: mot de passe incorrect,veuillez remplir les champs vides")</script>';}
// fin envoi
?>
</body>
</html>
[/CODE]
le script adduser.sh contient:
[CODE]
#!/bin/bash
sudo -u root printf "$1:$2" > /var/www/pfe/.htpasswd
[/CODE]
mon problème est que le contenu de la variable $pass_crypte n'est pas recopié entiérement dans le fichier .htpasswd.
par exemple pour le login='samou', password="kikou"
en affichant le contenu $pass_crypte sur la page elle donne : $1$m393mvlm$/MrM5offlmzk46U.sjlIG. mais en consultant le .htpasswd, je trouve seulement la ligne:
samou:$/MrM5offlmzk46U.sjlIG.
(il me recopie pas le mot de passe chiffré entièrement)
aidez moi s'il vous plait
merci
A voir également:
- Problème avec php (formulaire et shell)
- Whatsapp formulaire opposition - Guide
- Classic shell - Télécharger - Personnalisation
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
6 réponses
salut,
et si tu essaye ca dictement en console, ca donne quoi ?
sudo -u root script/adduser.sh samou $1$m393mvlm$/MrM5offlmzk46U.sjlIG.
comme ca on saura si le pb vient du shell ou de php
et si tu essaye ca dictement en console, ca donne quoi ?
sudo -u root script/adduser.sh samou $1$m393mvlm$/MrM5offlmzk46U.sjlIG.
comme ca on saura si le pb vient du shell ou de php
lamou23
Messages postés
178
Date d'inscription
Statut
Membre
Dernière intervention
ca donne le même résultat
c'est donc un problème de ton shell qui récupère mal le 2ème argument. c'est peut-être a cause des $ dans ta chaine. Ton shell croit que c'est des variables et cherche à les interpréter.
est-ce que cette commande marche ?
sudo -u root printf samou $1$m393mvlm$/MrM5offlmzk46U.sjlIG. > /var/www/pfe/.htpasswd
Si c'est oui, il te suffit de parcourir ta chaine coté php en remplacant les $ par autre chose et de faire la manip inverse une fois les argument recupéré par ton shell.
Si ca marche pas, j'ai pas d'idée
sudo -u root printf samou $1$m393mvlm$/MrM5offlmzk46U.sjlIG. > /var/www/pfe/.htpasswd
Si c'est oui, il te suffit de parcourir ta chaine coté php en remplacant les $ par autre chose et de faire la manip inverse une fois les argument recupéré par ton shell.
Si ca marche pas, j'ai pas d'idée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question