OVH Community, votre nouvel espace communautaire.

PERL Tache serveur


iRaZ
03/11/2004, 17h27
Voici mon code perf qui consiste à creer un tulisateur bloquer sont quota ftp et ajouter une base sql et ces privileges:

Code:
#!/usr/bin/perl
print "Content-type: text/html\n\n";		# On affiche l'en-tête HTML indispensable
  if ($ENV{'REQUEST_METHOD'} eq 'GET')
  {
    $data=$ENV{'QUERY_STRING'};
    # séparation de la chaine par paires nom=valeur
    foreach $d (split('&',$data)) {
      ($nom,$valeur)=split('=',$d);
      $nom=&url_decode($nom);
      $valeur=&url_decode($valeur);
      $post{$nom}=$valeur;
    }
  }
$login=$post{'login'};
$pass=$post{'pass'};

print "Création compte free pour ".$login.", veillez patienter ...";

&encode_base64(`head -c 10 /dev/urandom`) =~ m/([\w]{2})/; $salt =  $1;
$cpass=crypt($pass,$salt);
system("/usr/sbin/adduser -c \"$login\" -m -s /bin/false -g users -p ".$cpass." ".$login."\n");
foreign_call("mysql","execute_sql_logged","mysql", "create database $login");
foreign_call("mysql","execute_sql_logged","mysql", "GRANT ALL PRIVILEGES ON $login.* to $login\@localhost identified by '$pass'");

# Quota
# on converti les quotas en blocks.
$quotas =30000;
# on définit les quotas
&foreign_call("quota","edit_user_quota","$login","/home",0,$quotas,0,0);

sub url_decode {
local ($s)=@_;
  #Il faut décoder les données transmises.
  $s=~ tr/+/ /;
  $s=~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C",oct("0x$1"))/ge;
  $s;
}

Mais voila rien ne se passe, pourtant il n'y a pas d'erreurs. Pourquoi ?