регистрация проблем

chaser

Registered
използвам този код за регистрация проблема е следния като искам да се регистрирам като се натисне бутона регистрирай ме ми изписва че потр. име е късо , паролата е кратка и попълни email, но като се ригистрима веднъж с това име трябва като се опитам да се ригистрирам втори път с това име ми изписва че потребителя го има вече но пак се ригистрира защо се получава така

PHP:
<?php
define('IN_VALID', true);
session_start();
?>
<!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" xml:lang="en">
<head>
<title>Регистрация</title>
  <meta http-equiv="ContentType" content="text/html; charset=windows-1251" />
  <link rel='stylesheet' type='text/css' href='style/styles.css'/>
  <script type="text/javascript" src="jscript/passwdcheck.js"></script>
  <script type="text/javascript" src="jscript/passwdcheck.js"></script>
  <link rel='stylesheet' type='text/css' href='jscript/passwdcheck.css'/>
<script language="javascript"> 
var xmlhttp 

function showHint(str) 
{ 
if (str.length==0) 
{ 
document.getElementById("txtHint").innerHTML=""; 
return; 
} 
xmlhttp=GetXmlHttpObject(); 
if (xmlhttp==null) 
{ 
alert ("Your browser does not support XMLHTTP!"); 
return; 
} 
var url="gethint.php"; 
url=url+"?q="+str; 
url=url+"&sid="+Math.random(); 
xmlhttp.onreadystatechange=stateChanged; 
xmlhttp.open("GET",url,true); 
xmlhttp.send(null); 
} 

function stateChanged() 
{ 
if (xmlhttp.readyState==4) 
{ 
document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
} 
} 

function GetXmlHttpObject() 
{ 
if (window.XMLHttpRequest) 
{ 
// code for IE7+, Firefox, Chrome, Opera, Safari 
return new XMLHttpRequest(); 
} 
if (window.ActiveXObject) 
{ 
// code for IE6, IE5 
return new ActiveXObject("Microsoft.XMLHTTP"); 
} 
return null; 
} 
</script>
<style>
.reg
{
  border: 1px solid #d6d8f4;
  
  background: url('images/reg.gif') repeat-x ;
}/*
.reg2
{
  border: 1px solid #d6d8f4;
  
  background: url('reg2.gif') no-repeat ;
}*/
.reg3
{    
      width:50%;
	  border: 1px solid #d6d8f4;
    /*background: url('regfon.gif') repeat-x;*/
   
}
td.lista {
    background: url(images/regfon.gif);
    border: 1px solid #d6d8f4;
    color : #000;
    margin:0px;
    text-align:left;
}
td.head {
    
    height:27px;
    font-style: normal;
    background: url(images/reg2.gif) #E9F0F6 repeat-x;
    border-bottom: solid 1px #9BAEBF;
    border-top: solid 1px #FFFFFF;
    padding-left: 5px;
    padding-right: 5px;
}
td.hea {

    font-style: normal;
    background: url(images/reg.gif) #E9F0F6 repeat-x;
    border-bottom: solid 1px #9BAEBF;
    border-top: solid 1px #FFFFFF;
    padding-left: 5px;
    padding-right: 5px;
	
}
td.heas {

    font-style: normal;
    background: url(images/re.gif) #E9F0F6 repeat-x;
    border-bottom: solid 1px #9BAEBF;
    border-top: solid 1px #FFFFFF;
    padding-left: 5px;
    padding-right: 5px;
	
}
td.header1 {

    font-style: normal;
    background: url(images/3.gif) #E9F0F6 repeat-x;
    border-bottom: solid 1px #9BAEBF;
    border-top: solid 1px #FFFFFF;
    padding-left: 5px;
    padding-right: 5px;
	
}
.help
{
    position:absolute; left: 350px; top:200px;
}
</style>
</head>
<body>
<div id="container">
        <div id="main">
<?php
include ("include/config.php");
include ("modules/login.php");
include ("common.php");
@$query = mysql_query("SELECT * FROM `users` WHERE session='$ses'"); 
@$red = mysql_num_rows($query); 
if ($red != NULL) { 
$my_id = mysql_result($query, "0", "id"); 
$my_ime = mysql_result($query, "0", "username"); 
} 
else { 
$a = rand(0,99); 
$b = rand(0,9); 
$random = "$a"."$b"; 
echo '
<form action="?" method="POST">
<table class="reg3" style="margin-top:210px; margin-left:auto; margin-right:auto;"  cellspacing="2" cellpadding="5">
<tr>
<td class="reg" align="center" colspan="2">Създай нов акаунт</td>
</tr>
<tr>
<td class="head" align="left"><p class="margin">User:</p></td>
<td class="lista" ><input type="text" size="20" maxlength="25" name="username" id="txt1" onkeyup="showHint(this.value)"/><br /><p><span id="txtHint"></span></p>
<p><font size="2pt" >Моля,въведете потребитлеско име не по-малко от 6 символа</font></p></td>
</tr>
<tr>
<td  class="head" align="left" >Password:</td>
<td  class="lista"><input type="password" name="password" onkeyup="EvalPwdStrength(document.forms[0],this.value);"/> 

<div id="pwdstrenght" style="display:none;">
<table border="0" width="268px" height="25px" >
<tr>
<td id="idSM1" class="pwdChkCon0" align="center" width="25%">
<span id="idSMT1" style="display: none;">Week</span>
</td>
<td id="idSM2" class="pwdChkCon0" align="center" width="25%">
<span id="idSMT0" style="display: none;"></span>
<span id="idSMT2" style="display: none;">Medium</span>
</td>
<td id="idSM3" class="pwdChkCon0" align="center" width="25%">
<span id="idSMT3" style="display: none;">Safe</span>
</td>
<td id="idSM4" class="pwdChkCon0" align="center" width="25%">
<span id="idSMT4" style="display: none;">Strong</span>
</td>
</tr>
</table>
</div>

</td>
</tr>
<tr>
<td class="hea" align="left">Repeat password:</td>
<td class="lista"><input type="password" name="password"></td>
</tr>
<tr>
<td class="hea" align="left">Email:</td>
<td class="lista"><input type="text" name="email"></td>
</tr>
<tr>
<td class="heas" align="left">Country:</td>
<td class="lista">
<select name="country">
<option value="0">---</option>
<option value="1">Afghanistan</option>
<option value="2">Aland Islands</option>
<option value="3">Albania</option>
<option value="4">Algeria</option>
<option value="5">American Samoa</option>
<option value="6">Andorra</option>
<option value="7">Angola</option>
<option value="8">Anguilla</option>
<option value="9">Antarctica</option>
<option value="10">Antigua Barbuda</option>
<option value="11">Argentina</option>
<option value="12">Armenia</option>
<option value="13">Aruba</option>
<option value="14">Australia</option>
<option value="15">Austria</option>
<option value="16">AAzerbaijan</option>
<option value="17">Bahamas</option>
<option value="18">Bahrain</option>
<option value="19">Bangladesh</option>
<option value="20">Barbados</option>
<option value="21">Belarus</option>
<option value="22">Belgium</option>
<option value="23">Belize</option>
<option value="24">Benin</option>
<option value="25">Bermuda</option>
<option value="26">Bhutan</option>
<option value="27">Bolivia</option>
<option value="28">Bosnia Herzegovina</option>
<option value="29">Botswana</option>
<option value="30">Bouvet Island</option>
<option value="31">Brazil</option>
<option value="32">British Indian Ocean Territory</option>
<option value="33">Brunei Darussalam</option>
<option value="34">Bulgaria</option>
<option value="35">Burkina Faso</option>
<option value="36">Burundi</option>
<option value="37">Cambodia</option>
<option value="38">Cameroon</option>
<option value="39">Canada</option>
<option value="40">Cape Verde</option>
<option value="41">Cayman Islands</option>
<option value="42">Central African Republic</option>
<option value="43">Chad</option>
<option value="44">Chile</option>
<option value="45">China</option>
<option value="46">Christmas Island</option>
<option value="47">Cocos (Keeling) Islands</option>
<option value="48">Colombia</option>
<option value="49">Comoros</option>
<option value="50">Congo</option>
<option value="51">Congo</option>
<option value="52">Cook Islands</option>
<option value="53">Costa Rica</option>
<option value="54">Croatia</option>
<option value="55">Cuba</option>
<option value="56">Cyprus</option>
<option value="57">Czech Republic</option>
<option value="58">Denmark</option>
<option value="59">Djibouti</option>
<option value="60">Dominica</option>
<option value="61">Dominican Republic</option>
<option value="62">Ecuador</option>
<option value="63">Egypt</option>
<option value="64">El Salvador</option>
<option value="65">Equatorial Guinea</option>
<option value="66">Eritrea</option>
<option value="67">Estonia</option>
<option value="68">Ethiopia</option>
<option value="69">Falkland Islands (Malvinas)</option>
<option value="70">Faroe Islands</option>
<option value="71">Fiji</option>
<option value="72">Finland</option>
<option value="73">France</option>
<option value="74">French Guiana</option>
<option value="75">French Polynesia</option>
<option value="76">French Southern Territories</option>
<option value="77">Gabon</option>
<option value="78">Gambia</option>
<option value="79">Georgia</option>
<option value="80">Germany</option>
<option value="81">Ghana</option>
<option value="82">Gibraltar</option>
<option value="83">Greece</option>
<option value="84">Greenland</option>
<option value="85">Grenada</option>
<option value="86">Guadeloupe</option>
<option value="87">Guam</option>
<option value="88">Guatemala</option>
<option value="89">Guernsey</option>
<option value="90">Guinea</option>
<option value="91">Guinea-Bissau</option>
<option value="92">Guyana</option>
<option value="93">Haiti</option>
<option value="94">Heard Island and McDonald Islands</option>
<option value="95">Holy See (Vatican City State)</option>
<option value="96">Honduras</option>
<option value="97">Hong Kong</option>
<option value="98">Hungary</option>
<option value="99">Iceland</option>
<option value="100">India</option>
<option value="101">Indonesia</option>
<option value="102">Iran</option>
<option value="103">Iraq</option>
<option value="104">Ireland</option>
<option value="105">Isle of Man</option>
<option value="106">Israel</option>
<option value="107">Italy</option>
<option value="108">Ivory Coast</option>
<option value="109">Jamaica</option>
<option value="110">Japan</option>
<option value="111">Jersey</option>
<option value="112">Jordan</option>
<option value="113">Kazahstan</option>
<option value="114">Kenya</option>
<option value="115">Kiribati</option>
<option value="116">Kuwait</option>
<option value="117">Kyrgyzstan</option>
<option value="118">Laos</option>
<option value="119">Latvia</option>
<option value="120">Lebanon</option>
<option value="121">Lesotho</option>
<option value="122">Liberia</option>
<option value="123">Libyan</option>
<option value="124">Liechtenstein</option>
<option value="125">Lithuania</option>
<option value="126">Luxembourg</option>
<option value="127">Macao</option>
<option value="128">Macedonia</option>
<option value="129">Madagascar</option>
<option value="130">Malawi</option>
<option value="131">Malaysia</option>
<option value="132">Maldives</option>
<option value="133">Mali</option>
<option value="134">Malta</option>
<option value="135">Marshall Islands</option>
<option value="136">Martinique</option>
<option value="137">Mauritania</option>
<option value="138">Mauritius</option>
<option value="139">Mayotte</option>
<option value="140">Mexico</option>
<option value="141">Micronesia</option>
<option value="142">Moldova</option>
<option value="143">Monaco</option>
<option value="144">Mongolia</option>
<option value="145">Montserrat</option>
<option value="146">Morocco</option>
<option value="147">Mozambique</option>
<option value="148">Myanmaro</option>
<option value="149">Namibia</option>
<option value="150">Nauru</option>
<option value="151">Nepal</option>
<option value="152">Netherlands</option>
<option value="153">Netherlands Antilles</option>
<option value="154">New Caledonia</option>
<option value="155">New Zealand</option>
<option value="156">Nicaragua</option>
<option value="157">Niger</option>
<option value="158">Nigeria</option>
<option value="159">Niue</option>
<option value="160">Norfolk Island</option>
<option value="161">North Korea</option>
<option value="162">Northern Mariana Islands</option>
<option value="163">Norway</option>
<option value="164">Oman</option>
<option value="165">Organization</option>
<option value="166">Pakistan</option>
<option value="167">Palau</option>
<option value="168">Palestinian Territory (Occupied)</option>
<option value="169">Panama</option>
<option value="170">Papua New Guinea</option>
<option value="171">Paraguay</option>
<option value="172">Peru</option>
<option value="173">Philippines</option>
<option value="174">Pitcairn</option>
<option value="175">Poland</option>
<option value="176">Portugal</option>
<option value="177">Puerto Rico</option>
<option value="178">Qatar</option>
<option value="179">Reunion</option>
<option value="180">Romania</option>
<option value="181">Russia</option>
<option value="182">Rwanda</option>
<option value="183">Saint Helena</option>
<option value="184">Saint Kitts and Nevis</option>
<option value="185">Saint Lucia</option>
<option value="186">Saint Pierre and Miquelon</option>
<option value="187">Saint Vincent and the Grenadines</option>
<option value="188">Samoa</option>
<option value="189">San Marino</option>
<option value="190">Sao Tome and Principe</option>
<option value="191">Saudi Arabia</option>
<option value="192">Senegal</option>
<option value="193">Serbia</option>
<option value="194">Seychelles</option>
<option value="195">Sierra Leone</option>
<option value="196">Singapore</option>
<option value="197">Slovakia</option>
<option value="198">Slovenia</option>
<option value="199">Solomon Islands</option>
<option value="200">Somalia</option>
<option value="201">South Africa</option>
<option value="202">South Georgia and the South Sandwich Islands</option>
<option value="203">South Korea</option>
<option value="204">Spain</option>
<option value="205">Sri Lanka</option>
<option value="206">Sudan</option>
<option value="207">Suriname</option>
<option value="208">Svalbard and Jan Mayen</option>
<option value="209">Swaziland</option>
<option value="210">South Africa</option>
<option value="211">South Georgia and the South Sandwich Islands</option>
<option value="212">South Korea</option>
<option value="214">Sri Lanka</option>
<option value="215">Sudan</option>
<option value="216">Suriname</option>
<option value="217">Svalbard and Jan Mayen</option>
<option value="218">Swaziland</option>
<option value="219">Sweden</option>
<option value="220">Switzerland</option>
<option value="221">Syrian Arab Republic</option>
<option value="222">Taiwan</option>
<option value="223">Tajikistan</option>
<option value="224">Tanzania United Republic of</option>
<option value="226">Timor-Leste</option>
<option value="225">Thailand</option>
<option value="227">Togo</option>
<option value="228">Tokelau</option>
<option value="229">Tonga</option>
<option value="230">Trinidad & Tobago</option>
<option value="231">Tunisia</option>
<option value="232">Turkey</option>
<option value="233">Turkmenistan</option>
<option value="234">Turks and Caicos Islands</option>
<option value="235">Tuvalu</option>
<option value="236">Uganda</option>
<option value="237">Ukraine</option>
<option value="238">United Arab Emirates</option>
<option value="239">United Kingdom</option>
<option value="240">United States Minor Outlying Islands</option>
<option value="241">United States of America</option>
<option value="242">Uruguay</option>
<option value="243">Uzbekistan</option>
<option value="244">Vanuatu</option>
<option value="245">Venezuela</option>
<option value="246">Vietnam</option>
<option value="247">Virgin Islands British</option>
<option value="248">Wallis and Futuna</option>
<option value="249">Western Samoa</option>
<option value="250">Yemen</option>
<option value="251">Zambia</option>
<option value="252">Zimbabwe</option>
</select>
</td>
</tr>
<tr>
<td class="header1" align="left"><p class="margin">Security Code:</p></td>
<td class="lista" ><input id="security_code" name="security_code" type="text" /></td>
</tr>
<tr>
<td class="header1" align="left"></td>
<td class="lista" ><img src="CaptchaSecurityImages.php?width=100&height=40&characters=5" /></td>
</td>
</tr>
</div>
<tr>
<td class="hea" align="left"> </td>
<td class="hea"><input type="submit" name="submit" value="Регистрирай ме!"/></td>
</tr>
</table>
</form>
';
} 
?>
<?php
if (isset($_POST["submit"])) {
if (!empty($_POST["username"])) $username = htmlspecialchars($_POST["username"]);
else $errMsg = "Моля въведете потребител!<br />";
if (!empty($_POST["password"])) $password = htmlspecialchars($_POST["password"]);
else $errMsg = "Моля въведете парола!<br />";
if (!empty($_POST["email"])) $email = htmlspecialchars($_POST["email"]);
else $errMsg = "<table align='center'><tr><td>Моля въведете е-майл!</td></tr></table><br />";
if (strlen($_POST['password']) < 6) $errMsg = "<table align='center'><tr><td>Паролата Ви е твърде къса!</td></tr></table><br />";
if (strlen($_POST['username']) < 6) $errMsg = "<table align='center'><tr><td>Потребителското ви име е твърде късо!</td></tr></table><br />";
if (empty($errMsg)) {
$chek = mysql_query("SELECT * FROM `users` WHERE `username`='$username'")or die(mysql_error()); //проверка да ли потребителя същестува
$chek = mysql_num_rows($chek);
if ($chek=='1') {
echo 'Този потребител вече е регистриран! '; //Изкарва резултат защото потребителя съществува
}

$chek2 = mysql_query("SELECT * FROM `users` WHERE `email`='$email'")or die(mysql_error()); //проверка да ли емайла е използван
$chek2 = mysql_num_rows($chek2);
if ($chek2=='1') {
echo 'Този емайл вече е бил използан от друг потребител!'; //Изкарва резултата защото вече има такъв емайл
}
   if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
		// Insert you code for processing the form here, e.g emailing the submission, entering it into a database. 
		echo 'Thank you. Your message said "'.$_POST['message'].'"';
		unset($_SESSION['security_code']);
   } 
else {
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$level = "1";
$password = md5($password);

$insert = mysql_query("INSERT INTO users(username, password, email, ip, level) VALUES('$username', '$password', '$email', '$ip', '$level')")or die(mysql_error());
echo 'Здравей <b>' . $username . '</b>! Регистрацията е успешна!';
echo ("<meta http-equiv=\"refresh\" content=\"3; url=index.php\">");
}}
else
echo $errMsg;
mysql_close();
}
echo ('
</center>');
?>

<div id="languages">
    <a href="register.php?lang=bg"><img alt="bg"  src="images/bg.png" /></a>
    <a href="register.php?lang=en"><img alt="en"  src="images/en.png" /></a>
</div>
</div>
</div>
<?php
include "header.php";
?>
<?php
include 'blocks/menu.php';
?>
</body>
</html>
друго то е за кода от кратинката как да напра такаче ако года от картинката е грешен да не се ристрираш

PHP:
   if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
		// Insert you code for processing the form here, e.g emailing the submission, entering it into a database. 
		echo 'Thank you. Your message said "'.$_POST['message'].'"';
		unset($_SESSION['security_code']);
   } else {
		// Insert your code for showing an error message here
		echo 'Sorry, you have provided an invalid security code';
   }
 
Не казвам, че логиката на проверките е грешна, но подредбата им, групирането им по този начин, независимо дали има грешки или потребителското име/имейл се използват, ако captcha-та е правилна, РНР продължава нататък с кода и там има регистрация в базата-данни на нов потребител. Прегрупирай ги, ако искаш да показваш едно съобщение със всички възникнали грешки, или пък спирай изпълнението след всяка грешка.
 

Back
Горе