Grande Luiz!!!
Um pouco, sim, se entendi bem, cada conta de email vale uns 150por ano(imagine 500!). Mas prefiro acreditar que entendi errado.
Bem ai vão dois códigos bem legais. O interessante é que você pode colocar um formulário de login para o webmail ou para o cPanel ou para o WHM em qualquer parte!
O primeiro deles:
CODE
<form action="cpanelLogin.php" method="POST">
<?php
// Mostra a mensagem de erro se houver falha do login
if(($_GET['failed'] == "1") or ($error == 1)){
echo '<font color="#FF0000">Falha na tentativa de login!</font><br />';
}
?>
Dominio: <input type="text" name="domain" value="" size="20" /><br />
Apelido: <input type="text" name="username" value="" size="20" /><br />
Senha: <input type="password" name="pass" value="" size="20" /><br />
<?php
// Link para retorno em caso de falha
echo '<input type="hidden" name="failurl"
value="http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?failed=1">';
?>
Opcoes: <select name="port">
<option value="2082">cPanel </option>
<option value="2083">Secure cPanel </option>
<option value="2086">WHM</option>
<option value="2087">Secure WHM</option>
<option value="2095">Webmail</option>
<option value="2096">Secure Webmail</option>
</select><br />
<input type="submit" value="Login" />
</form>
Agora a página que receberá os dados:
CODE
<?php
// make sure all needed information is provided
if($_POST['domain'] && $_POST['username'] && $_POST['pass'] && !($_GET['failed'] == "1")) {
$port = $_POST['port']; // sets the port number to login to
// Get the protocol to use for this connection
switch($port) {
case '2082': // cPanel
case '2086': // WHM
case '2095': // Webmail
$protocol = 'http://';
break;
case '2083': // Secure cPanel
case '2087': // Secure WHM
case '2096': // Secure Webmail
$protocol = 'https://';
break;
}
// Build the URL
$redirectlocation = $protocol.$_POST['domain'].':'.$port.'/login/?
user='.$_POST['username'].'&pass='.$_POST['pass'].'&failurl='.$_POST['failurl'];
header ("Location: ".$redirectlocation); // Send URL
} else {
$error = 1;
header ("Location: ".$_POST['failurl']); // Send URL if all neede information is not provided
}
?>
Esse ai de cima permite escolher o local que se quer autenticar (cPanel, Webmail...).
Se você quer restringir o acesso a um dos três, olha esse aqui:
CODE
<?php
#cPanel
#$protocol = 'http';
#$port = 2082;
#Secure cPanel
#$protocol = 'https';
#$port = 2083;
#WHM
#$protocol = 'http';
#$port = 2086;
#Secure WHM
#$protocol = 'https';
#$port = 2087;
#Webmail
$protocol = 'http';
$port = 2095;
#Secure Webmail
#$protocol = 'https';
#$port = 2096;
?>
<html>
<h1>[Sua empresa aqui]</h1>
<b>Sistema de Login Cpanel/WHM/Webmail</b><br>
<?php
if ($_GET['failed'] == "1") {
?>
<font color=#FF0000>Seu login falhou! Verifique o login e senha informados.</font>
<?php
}
print "<form action=\"" . $protocol . "://" . $_SERVER['HTTP_HOST'] . ":" . $port . "/login/\"
method=POST>";
?>
Login: <input type=text name=user size="20"><br>
Senha: <input type=password name=pass size="20"><br>
<?php
print "<input type=hidden name=failurl value=\"http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?failed=1\">";
?>
<input type=submit value=Logar>
</form>
</html>
É só retirar os "#" de onde se quer permitir o login. Nesse caso, este código já está configurado para o Webmail.
Bem, acho que só. Mas pensando bem, acho que não é exatamente onde nosso amigo Cadin queria chegar. Pelo que entendi ele queria algo completamente externo ao cPanel (em se tratando de Webmail). Ei, Cadin, fala ai, mah!
This post has been edited by Deletherion (Jp): 08 agosto 2008 - 09:23