Olá, segue abaixo os meus problemas.
Cadastro:
Todos as contas se cadastram tranquilamente, porém quando um usuario coloca um loguin que já existe em vez de aparecer a mensagem " Esse loguin já existe, escolha outro" aparece esse erro:
Warning: mssql_query() [function.mssql-query]: message: Violation of PRIMARY KEY constraint 'PK_MEMB_INFO'. Cannot insert duplicate key in object 'MEMB_INFO'. (severity 14) in E:\Inetpub\vhosts\upandogames.com\httpdocs\mu\cada stro2.php on line 51
Warning: mssql_query() [function.mssql-query]: Query failed in E:\Inetpub\vhosts\upandogames.com\httpdocs\mu\cada stro2.php on line 51
mas se o cara colocar um loguin que nao existe cadastra de boa, então queria acrecentar essa mensagem " Esse loguin já existe, escolha outro" quando o usuario colocar um loguin ja existente ao envez do erro, segue abaixo a pagina de cadastro.
Cadastro2.php
Código PHP:
<head>
<style type="text/css">
<!--
.style6 {font-family: Geneva, Arial, Helvetica, sans-serif; font-weight: bold; font-size: 16px; }
.style5 {color: #666666; font-weight: bold; font-family: Arial, Helvetica, sans-serif; }
body {font-family: Arial, Helvetica, sans-serif}
-->
</style>
<link href="css/geral.css" media="all" rel="stylesheet" type="text/css" />
</head>
<h2>Registro - Segundo Passo </h2>
<p><?php
$login = stripslashes($_POST['login']);
$name = stripslashes($_POST['name']);
$idnumb = stripslashes($_POST['idnumb']);
$pw = stripslashes($_POST['pw']);
$cpw = stripslashes($_POST['cpw']);
$sques = stripslashes($_POST['squest']);
$sansw = stripslashes($_POST['sansw']);
if (($email_check > 0) || ($username_check > 0) || empty($login) || empty($name) || empty($idnumb) || empty($pw) || empty($cpw) || empty($sques) || empty($sansw))
{
echo "Ocorreu o(s) seguinte(s) erro(s): <br />";
if (empty($login) || empty($name) || empty($idnumb) || empty($pw) || empty($cpw) || empty($sques) || empty($sansw))
{
echo "Espaços foram deixados em branco, favor volte e preencha.";
}
elseif($email_check > 0){
echo "'$email' Esse E-mail ja contem em nosso banco de dados favor escolha outro.<br />";
$Error=1;
}
elseif ($username_check > 0)
{
echo "'$login' Esse login ja contem em nosso banco de dados favor escolha outro.<br />";
$Error=1;
}
elseif ($pw != $cpw)
{
echo "<br />As Senhas devem ser iguais."; $Error=1;
}
}
else
{
//$msquery2 = "SET IDENTITY_INSERT MEMB_INFO ON";
$msquery3 = "INSERT INTO MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_deta,phon_numb,fpas_ques,fpas_answ,job__code,appl_days,modi_days,out__days,true_days,bloc_code,ctl1_code) VALUES ('$login','$pw','$name', '1','1234','11111','$idnumb','12343','$sques','$sansw','1','2003-11-23','2003-11-23','2003-11-23','2003-11-23','0','1')";
//$msresults= mssql_query($msquery2);
$msresults= mssql_query($msquery3);
echo "<p align='center'><b>Conta criada com sucesso!</b></p> <br><p align='left'>Login: $login<br>
Senha: $pw<br>
ID: $idnumb<br>
Pergunta Secreta: $sques<br>
Senha Secreta: $sansw </p><br>Grave seus dados com segurança!";
}
?></p>
Mudar classe:
Coloquei em meu servidor HARD a opção de vip poder mudar de classe porém somente pode mudar para as primeiras classes (dk,dw...), mas se o player ja fez a quest de BK e mudar de classe para dw, quando ele for fazer a quest para virar SM vai falar no NPC que ele já fez, vendo o codigo php percebi que ele so muda o campo class com o id da classe e não zera o campo Quest que no caso é varbinary.
Então o que eu queria, que alguem acrecentasse nesse codigo uma query para zerar o compo Quest, para que possa fazer a quest novamente.
classe.php
Código PHP:
<html lang="pt">
<head>
<meta name="description" content="Lucas Thompson" />
<title>Mu Site - WEB</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<? session_start();
@$login = $_SESSION['login'];
@$senha = $_SESSION['senha'];
if(!isset($_SESSION['login'])) { echo "Para acessar essa pagina é preciso esta logado!"; }
else{
$vip=mssql_fetch_row(mssql_query("select vip from MEMB_INFO where memb___id='".$login."'"));
if($vip[0] < 1) { echo "<br> Para acessar essa pagina é preciso ser VIP"; }
else{?>
</head>
<body>
<h2>Mudar de Classe</h2>
<form name="form1" method="post" action="">
<table width="210" border="0" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="50%">Char:</td>
<td width="80%">
<select name="char" id="char" class="rginput">
<?
$Chars = mssql_query("select name from character where accountid='".$login."'");
for($p=0;$p<mssql_num_rows($Chars);$p++) {
$Char=mssql_fetch_row($Chars);
echo '<option value='.$Char[0].'>'.$Char[0].'</option>';
}
?>
</select> </td>
</tr>
<tr>
<td>Nova Classe:</td>
<td>
<select name="novaclasse" id="novaclasse" class="rginput">
<option value="0">Dark Wizard</option>
<option value="16">Dark Knight</option>
<option value="32">Elfa</option>
<option value="48">Magic Gladiator</option>
<option value="64">Dark Lord</option>
<option value="80">Summoner</option>
</select> </td>
</tr>
<tr>
<td> </td>
<td><input name="prossegue" type="submit" class="rgbotao" id="prossegue" value="Mudar"></td>
</tr>
</table>
</form>
<br>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="0" style="background-color:#FF9B9B; border:#FF0000 1px dashed;">
<tr>
<td height="36" align="center"><font color="#000000"><strong>Atenção:</strong> Guarde todos os itens no baú antes de prosseguir, se não você irá perde-los. </font></td>
</tr>
</table>
</body>
</html>
<?
if($_POST['prossegue']) {
$nova=$_POST['novaclasse'];
$char=$_POST['char'];
$VerificaStatus = mssql_fetch_row(mssql_query("select connectstat from memb_stat where memb___id='".$login."'"));
$VerificaChar = mssql_num_rows(mssql_query("select name from character where name='".$char."' and accountid='".$login."'"));
if($VerificaChar <= 0) {
echo "<script>alert('Char incorreto');
location='javascript:history.back()'</script>";
}
elseif($VerificaStatus[0] >= 1){
echo "<script>alert('Saia da conta');
location='javascript:history.back()'</script>";
}
else{
switch($nova) {
case 0: $classefinal = "Dark Wizard"; break;
case 16: $classefinal = "Dark knigth"; break;
case 32: $classefinal = "Fairy Elf"; break;
case 48: $classefinal = "M.Gladiator"; break;
case 64: $classefinal = "Dark Lord"; break;
case 80: $classefinal = "Summoner"; break;
}
mssql_query("update character set class='".$nova."' where name='".$char."'");
echo "<script>alert('Classe alterada para $classefinal');
location='javascript:history.back()'</script>";
}
}
} }
?>
Att, obrigado desde já.