Scripts
MySQL account toevoegen
Met dit script kun je op je eigen server een account toevoegen, met bijbehoorende database. De toegevoegde user heeft een account met beperkte rechten en kan alleen zijn eigen database aanpassen. Zelf gebruik ik het voor de verbreders op school. Als er een nieuwe verbreder komt, kan ik gemakkelijk met dit script die verbreder toevoegen aan de database. Vandaar dat er ook leerlingnummer staat. Je kunt dit uiteraard aanpassen naar wat je zelf wilt. Er staat géén voorbeeld online, omdat ik op mijn webhost geen rechten heb om accounts toe te voegen. Je krijgt nu een melding als de gebruiker al bestond en het wachtwoord dus gereset is Voorbeeld toegevoegd, met dank aan SanThe
mysql-account-toevoegen
[code]<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$host = '127.0.0.1'; //MySQL host (standaard 'localhost' of '127.0.0.1'
$rootaccount = 'root'; //een account met administrator rechten
$rootpassword = '***'; //het wachtwoord van bovenstaand account
//--------------------------------------------
$password = rand(100000, 999999);
function check_connect($username, $database) //Functie om te kijken of we met de nieuwe user in kunnen loggen in de database
{
global $password;
global $host;
if(mysql_connect($host, $username, $password))
{
if(mysql_select_db($database))
{
return TRUE;
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
}
function check_user($username)
{
$sql = mysql_query("SELECT Host FROM user WHERE User = '".$username."'");
if(mysql_num_rows($sql) == 1)
{
return TRUE;
}
else
{
return FALSE;
}
}
function return_error($errorno, $error, $melding) //functie die de errors en errornummers in een leuke string zet
{
return $melding.'<br />
errornummer: '.$errorno.'<br />
error: '.$error.'<br />
<br />';
}
function nieuwe_gebruiker($username, $databasename) //hoofdfunctie om de nieuwe gebruiker aan te maken, de nieuwe database aan te maken en de database aan de user te koppelen
{
global $password;
global $host;
global $rootaccount;
global $rootpassword;
if(!@mysql_connect($host, $rootaccount, $rootpassword))
{
return 'Database connectie failed: '.mysql_error();
}
elseif(!@mysql_select_db('mysql')) //MySQL is de database waarin de users staan
{
return 'Database selectie failed: '.mysql_error();
}
else
{
$return = NULL;
$sql1 = "GRANT USAGE ON *.* TO '".$username."'@'localhost' IDENTIFIED BY '".$password."'WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0";
$sql2 = "CREATE DATABASE IF NOT EXISTS ".$databasename;
$sql3 = "GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER ON ".$databasename." . * TO '".$username."'@'localhost'";
if(check_user($username))
{
$return .= 'De gebruiker bestond al. Het wachtwoord is gereset<br /><br />';
}
if(!@mysql_query($sql1))
{
$return .= return_error(mysql_errno(), mysql_error(), 'De gebruiker kon niet worden toegevoegd');
}
if(!@mysql_query($sql2))
{
$return .= return_error(mysql_errno(), mysql_error(), 'De database kon niet worden aangemaakt');
}
if(!@mysql_query($sql3))
{
$return .= return_error(mysql_errno(), mysql_error(), 'De rechten konden niet aan de gebruiker worden gegeven');
}
if(!@check_connect($username, $databasename))
{
$return .= return_error(mysql_errno(), mysql_error(), 'Kan geen verbdinding maken met de database');
}
if(is_null($return))
{
$return = 'De gebruiker is succesvol aangemaakt<br /><br />';
}
}
$return .= '<b>Samenvatting:</b><br />
<br />
Database: '.$databasename.'<br />
Inlognaam: '.$username.'<br />
Wachtwoord: '.$password;
return $return;
}
?>
Geef hier het leerlingnummer op. Als deze leerling nog geen database account heeft, wordt er een database en een account aangemaakt. Als deze leerling al wel een account heeft wordt er een nieuw wachtwoord aangemaakt.<br />
<br />
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['leerlingnummer']))
{
echo 'Geef het leerlingnummer op';
}
elseif(!is_numeric($_POST['leerlingnummer']))
{
echo 'Het leerlingnummer moet nummerriek zijn';
}
elseif(strlen($_POST['leerlingnummer']) != 4)
{
echo 'Het leerlingnummer moet 4 cijfers lang zijn';
}
else
{
echo nieuwe_gebruiker($_POST['leerlingnummer'], $_POST['leerlingnummer'].'db');
}
echo '<br /><br />';
}
?>
<form method="POST" action="#">
<label for="leerlingnummer">Leerlingnummer: </label>
<input type="text" name="leerlingnummer" maxlength="4" size="4"<?php echo isset($_POST['leerlingnummer']) ? ' value="'.$_POST['leerlingnummer'].'"' : '' ?> />
<input type="submit" name="voegtoe" value="Maak aan!" />
</form>[/code]
Reacties
0