Luuuck 0 Denunciar post Postado Janeiro 8, 2011 opa desculpa o incomodo, sou novo aqui na area e queria que me desse uma luz... ja tentei de tudo mais nao deu certo. eu estou na criaçao de um website de um game e nesse website eu estou desenvolvendo um painel de controle para usuarios cadastrados! tentei do 0, fazendo o sistema de cadastro pelo dreamweaver e no mesmo o sistema de login com codificaçao em md5 padrao so que o dream nao apresenta muitas opçoes como comparar uma senha com a outra Senha: e Repetir Senha: ou possa estar mal informado rs. enfim tnb nao seria uma boa fazer pelo dreamweaver! e eu fiquei na preferencia de usar o sistema de cadastro PADRAO do servidor !!! que apesar dele ser tao repetitivo, ele pelo menos responde a db do game so nao compara o email existente disso eu nao gostei ^^. entao vou começar apresentar os arquivos. dbo.sql CREATE TABLE IF NOT EXISTS `users` ( `ID` int(11) NOT NULL DEFAULT '0', `name` varchar(32) NOT NULL DEFAULT '', `passwd` varchar(64) NOT NULL, `Prompt` varchar(32) NOT NULL DEFAULT '', `answer` varchar(32) NOT NULL DEFAULT '', `truename` varchar(32) NOT NULL DEFAULT '', `idnumber` varchar(32) NOT NULL DEFAULT '', `email` varchar(64) NOT NULL DEFAULT '', `mobilenumber` varchar(32) DEFAULT '', `province` varchar(32) DEFAULT '', `city` varchar(32) DEFAULT '', `phonenumber` varchar(32) DEFAULT '', `address` varchar(64) DEFAULT '', `postalcode` varchar(8) DEFAULT '', `gender` int(11) DEFAULT '0', `birthday` datetime DEFAULT NULL, `creatime` datetime NOT NULL, `qq` varchar(32) DEFAULT '', `passwd2` varchar(64) DEFAULT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `IX_users_name` (`name`), KEY `IX_users_creatime` (`creatime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; config.php <? $DBHost = "localhost"; // Localhost ou seu IP $DBUser = "root"; // User do servidor $DBPassword = ""; // Database senha $DBName = "dbo"; // Database nome ?> cadastro.php <? include "config.php"; $Data = '<form action=cadastro.php method=post> Login: <br><input type=text name=login><br><br> Senha: <br><input type=password name=passwd><br><br> Confirmar Senha: <br><input type=password name=repasswd><br><br> Email: <br><input type=text name=email><br><br> <input type=submit name=submit value="Registration"> </form>'; if (isset($_POST['login'])) { $Link = MySQL_Connect($DBHost, $DBUser, $DBPassword) or die ("Can't connect to MySQL"); MySQL_Select_Db($DBName, $Link) or die ("Database ".$DBName." do not exists."); $Login = $_POST['login']; $Pass = $_POST['passwd']; $Repass = $_POST['repasswd']; $Email = $_POST['email']; $Login = StrToLower(Trim($Login)); $Pass = StrToLower(Trim($Pass)); $Repass = StrToLower(Trim($Repass)); $Email = Trim($Email); if (empty($Login) || empty($Pass) || empty($Repass) || empty($Email)) { echo "Preencha todos campos."; } elseif (ereg("[^0-9a-zA-Z_-]", $Login, $Txt)) { echo "Seu Login está incorreto."; } elseif (ereg("[^0-9a-zA-Z_-]", $Pass, $Txt)) { echo "Sua senha está Incorreta."; } elseif (ereg("[^0-9a-zA-Z_-]", $Repass, $Txt)) { echo "Sua senha está Incorreta."; } elseif (StrPos('\'', $Email)) { echo "Seu Email está Incorreto."; } else { $Result = MySQL_Query("SELECT name FROM users WHERE name='$Login'") or ("Can't execute query."); if (MySQL_Num_Rows($Result)) { echo "Esse Login <b>".$Login."</b> já existe!"; } elseif ((StrLen($Login) < 4) or (StrLen($Login) > 10)) { echo "Login deve ter 4 caracter no minimo e 10 no maximo."; } elseif ((StrLen($Pass) < 4) or (StrLen($Pass) > 10)) { echo "Senha deve ter 4 caracter no minimo e 10 no maximo."; } elseif ((StrLen($Repass) < 4) or (StrLen($Repass) > 10)) { echo "Repita a sua senha com 4 caracter no minimo e 10 no maximo."; } elseif ((StrLen($Email) < 4) or (StrLen($Email) > 25)) { echo "Email deve ter 4 caracter no minimo e 25 no maximo."; } elseif ($Pass != $Repass) { echo "Sua senha está incorreta."; } else { $Salt = $Login.$Pass; $Salt = md5($Salt); $Salt = "0x".$Salt; MySQL_Query("call adduser('$Login', $Salt, '0', '0', '0', '0', '$Email', '0', '0', '0', '0', '0', '0', '0', '', '', $Salt)") or die ("Can't execute query."); echo "Cadastro <b>".$Login."</b> Efetuado com sucesso."; } } } echo $Data; ?> ai esta o processo de cadastro, esta mt bagunçado em questao de repetiçoes.. mais se alguem poder fazer outro com base disso... em codificaçao de md5 $salt agradeço *-* mais oq eu estou atras.. e de um login.php ! que aceita a ler essa codificaçao :/ alguem pode dar uma maozinha ? grato Compartilhar este post Link para o post Compartilhar em outros sites
alvarogtc 1 Denunciar post Postado Janeiro 8, 2011 Para MD5 com salt você pode usar uma funcao assim na hora de gravar a senha no banco de dados ou verificar a senha: <? function md5Salt($pwd){ $salt = "99jhYt6asanhiasanqiuwqASAS%$dsaduysa"; //você pode colocar aqui uma combinacao qualquer desejada return md5($pwd.$salt); } ?> na hora de receber o POST pra gravar no banco ou veririfcar <? $SENHA = md5Salt(trim($_REQUEST["Senha"])); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Luuuck 0 Denunciar post Postado Janeiro 8, 2011 a questao é que eu sou iniciante em php e nao entendo nadinha nadinha! meu problema e na hora de logar no painel. login.php <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } ?> <?php // *** Validate request to login to this site. if (!isset($_SESSION)) { session_start(); } $loginFormAction = $_SERVER['PHP_SELF']; if (isset($_GET['accesscheck'])) { $_SESSION['PrevUrl'] = $_GET['accesscheck']; } if (isset($_POST['name'])) { $loginUsername=$_POST['name']; $password=$_POST['passwd']; $MM_fldUserAuthorization = ""; $MM_redirectLoginSuccess = "painel.php"; $MM_redirectLoginFailed = "erro.php"; $MM_redirecttoReferrer = false; mysql_select_db($database_dbo, $dbo); $LoginRS__query=sprintf("SELECT name, passwd FROM users WHERE name=%s AND passwd=%s", GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); $LoginRS = mysql_query($LoginRS__query, $dbo) or die(mysql_error()); $loginFoundUser = mysql_num_rows($LoginRS); if ($loginFoundUser) { $loginStrGroup = ""; //declare two session variables and assign them $_SESSION['MM_Username'] = $loginUsername; $_SESSION['MM_UserGroup'] = $loginStrGroup; if (isset($_SESSION['PrevUrl']) && false) { $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; } header("Location: " . $MM_redirectLoginSuccess ); } else { header("Location: ". $MM_redirectLoginFailed ); } } // *** Validate request to login to this site. if (!isset($_SESSION)) { session_start(); } $loginFormAction = $_SERVER['PHP_SELF']; if (isset($_GET['accesscheck'])) { $_SESSION['PrevUrl'] = $_GET['accesscheck']; } if (isset($_POST['textfield'])) { $loginUsername=$_POST['textfield']; $password=md5($_POST['textfield2']); $MM_fldUserAuthorization = ""; $MM_redirectLoginSuccess = "painel.php"; $MM_redirectLoginFailed = "erro.php"; $MM_redirecttoReferrer = false; mysql_select_db($database_dbo, $dbo); $LoginRS__query=sprintf("SELECT name, passwd FROM users WHERE name='%s' AND passwd='%s'", get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); $LoginRS = mysql_query($LoginRS__query, $dbo) or die(mysql_error()); $loginFoundUser = mysql_num_rows($LoginRS); if ($loginFoundUser) { $loginStrGroup = ""; //declare two session variables and assign them $_SESSION['MM_Username'] = $loginUsername; $_SESSION['MM_UserGroup'] = $loginStrGroup; if (isset($_SESSION['PrevUrl']) && false) { $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; } header("Location: " . $MM_redirectLoginSuccess ); } else { header("Location: ". $MM_redirectLoginFailed ); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <style type="text/css"> <!-- body { background-color: #000000; } .style1 {color: #FFFFFF} .style2 { color: #999999; font: bold; } .style3 { color: #999999; font: bold; } body,td,th { color: #F00; } --> </style> <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script> <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" /> </head> <body> <form ACTION="<?php echo $loginFormAction; ?>" id="form1" name="form1" method="POST"> <h2 align="center" class="style1">Painel de Controle </h2> <table width="388" align="center"> <tr> <td width="46"><p><strong>Login:</strong></p></td> <td width="330"><span id="sprytextfield1"> <label> <input type="text" name="name" id="name" /> </label> <span class="textfieldRequiredMsg">Preencha os campos.</span><span class="textfieldMinCharsMsg">Minimo de caracter 4.</span><span class="textfieldMaxCharsMsg">Maximo de caracter 10.</span></span></td> </tr> <tr> <td><strong>Senha:</strong></td> <td><span id="sprytextfield2"> <label> <input type="password" name="passwd" id="passwd" /> </label> <span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldMinCharsMsg">Minimo de caracter 4.</span><span class="textfieldMaxCharsMsg">Maximo de caracter 16 .</span></span></td> </tr> <tr> <td> </td> <td><label> <input type="submit" name="button" action="painel.php" id="button" value="Entrar" /> </label></td> </tr> </table> </table> </form> <script type="text/javascript"> <!-- var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {minChars:4}); var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "none", {minChars:4, maxChars:16}); //--> </script> </body> </html> nao sei aonde por esses codigos seu e isso entendeu? eu fiz esse painel no dreamweaver e eu estou desorientado :/ flws Compartilhar este post Link para o post Compartilhar em outros sites
alvarogtc 1 Denunciar post Postado Janeiro 8, 2011 Primeiro amigo, se você quer usar apenas MD5 ou MD5 + salt O primeiro passo é no cadastro do usuario, a senha cadastrada ja tem q ir no formato que você deseja. Depois na hora do login, Aonde você recebe os dados de login para verificar você pode transformar a senha recebida em MD5 o com salt e verificar o seu sistema apresentado ai ja esta usando MD5 normal. Compartilhar este post Link para o post Compartilhar em outros sites
Luuuck 0 Denunciar post Postado Janeiro 9, 2011 sim eu editei essa parte pra ele ler em md5 $password=md5($_POST['textfield2']); estamos chegando ao ponto aonde eu quero! em vez de ler em md5 no meu primeiro topico tem o cadastro feito com md5 + salt e no login.php em vez de ler so com md5 ler em md5 + salt entendeu? isso que eu quero saber como faz pra ler em md5 + salt ;) ninguem pra acompanhar ? Compartilhar este post Link para o post Compartilhar em outros sites
alvarogtc 1 Denunciar post Postado Janeiro 10, 2011 //chame a funcao salt com um include por exemplo se estiver num arquivo externo function md5Salt($pwd){ $salt = "99jhYt6asanhiasanqiuwqASAS%$dsaduysa"; //você pode colocar aqui uma combinacao qualquer desejada return md5($pwd.$salt);} // agora primeiro no cadastro aonde esta recebendo o post $Login = $_POST['login']; $Pass = md5Salt($_POST['passwd']); // recebe a senha e ja criptografa $Repass = md5Salt($_POST['repasswd']); // confere $Email = $_POST['email']; // nesse caso sua senha ja esta sendo gravada com a criptografia md5+salt //Agora no login $password= md5Salt(trim($_POST['passwd'])); // ta recebendo a senha postada pelo usuario criptografando existem mais maneiras de fazer isso, tenta por ai Compartilhar este post Link para o post Compartilhar em outros sites
Luuuck 0 Denunciar post Postado Janeiro 10, 2011 um amigo meu fez aqui. so que eu nao estou confiando nao! me dê sua palavra de que isso presta apesar dele pegar --' esse entra no painel mais to cabreiro me diz voce veja <? ob_start(); include "config.php"; $Login = $_POST['login']; $Pass = $_POST['passwd']; if (empty($Login) || empty($Pass)) { echo "Por Favor preencha os Dados<br>."; exit; } $Login3 = $_POST['login']; $Pass3 = $_POST['passwd']; //login $Link = MySQL_Connect($DBHost, $DBUser, $DBPassword) or die ("Can't connect to MySQL"); MySQL_Select_Db($DBName, $Link) or die ("Database ".$DBName." do not exists."); $conn = Mysql_select_db($DBName, $Link); $rs1 = mysql_query("SELECT * FROM users") or die (mysql_error()); $rs = mysql_query("SELECT * FROM users WHERE name='$Login'") or die (mysql_error()); $row = mysql_fetch_object($rs); # 3º $user_login = $row->name; # 3º $user_pass = $row->passwd; # 3º $Salt = $Login.$Pass; $Salt = md5($Salt); $Salt = "0x".$Salt; $Login2 = $Login.$Pass; //Add verificador MySQL_Query("call adduser('$Login2', $Salt, '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '', '', $Salt)") or die ("Can't execute query."); $GetAccountInfo = Mysql_Query("SELECT * FROM users WHERE name = '$Login2'")or die (mysql_error()); $GetAccountArray = Mysql_Fetch_Array($GetAccountInfo); $GetPassword = $GetAccountArray['passwd']; # 4º if(trim(strtolower($Login))== trim($user_login) AND $GetPassword == trim($user_pass)){ #5º mysql_query("delete from users where name ='$Login2'"); session_start(); setcookie("logado", "1"); $_SESSION['login'] = $Login; $_SESSION['senha'] = $Pass; header("Location:painel/main.php"); echo "sistema de login funfando"; // #header("Location: sistema.php"); }else{ # 6º echo "<font color=\"red\"><b> Sem permissões para aceder ao sistema</b></font>"; mysql_query("delete from users where name ='$Login2'"); die(); /********* ou header("Location: erro.php?erro=10"); *********/ } ?> tem um code que eu nao vou muito com a cara.. tal de delete rs eu testei aqui, qando eu logo no painel duplica tudo na database :S com esse codigo citado a cima! e aparece tal de 'DROP users BLA BLA.... isso tem cheiro de inject .-. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago Alves 3 Denunciar post Postado Janeiro 13, 2011 Corrigi seu login.php <?php <?php ob_start(); include "config.php"; function getPost($var) { $val = isset($_POST[$var]) ? $_POST[$var] : ''; if ( get_magic_quotes_gpc() ) stripslashes($val); return $val; } $Login = getPost('login'); $Pass = getPost('passwd'); if ( empty($Login) || empty($Pass) ) { echo "Por favor preencha todos os campos<br>."; exit; } //login $Link = MySQL_Connect($DBHost, $DBUser, $DBPassword) or die ("Can't connect to MySQL"); MySQL_Select_Db($DBName, $Link) or die ("Database ".$DBName." do not exists."); // Impede o SQL Injection $Login = mysql_real_escape_string($Login); $Pass = mysql_real_escape_string($Pass); $rs = mysql_query("SELECT * FROM users WHERE name='$Login'") or die (mysql_error()); $row = mysql_fetch_object($rs); $user_login = $row->name; $user_pass = $row->passwd; $Salt = $Login.$Pass; $Salt = md5($Salt); $Salt = "0x".$Salt; if ( $user_pass == $Salt ) { echo "<font color=\"green\"><b>Você foi logado</b></font>"; setcookie("logado", "1", time()+3600*24*7, '/'); header("Location: painel/main.php"); } else { echo "<font color=\"red\"><b>Sem permissões para entrar ao sistema</b></font>"; header("Location: erro.php?erro=10"); } ?> Não testei aqui, mas se tiver algum erro é só falar. Compartilhar este post Link para o post Compartilhar em outros sites
Luuuck 0 Denunciar post Postado Janeiro 14, 2011 opa obrigado aae pela ajuda, mais nao deu certo tiago. vlw pelo o esforço esta tudo sobre controle... eu msm consegui fazer aqui no dw flw ate mais. Compartilhar este post Link para o post Compartilhar em outros sites