2013-05-23 3 views
0

Я создаю страницу регистрации для новых участников. после заполнения формы он перейдет на страницу подтверждения. после подтверждения он перейдет к reg_add.php, чтобы добавить данные из формы в базу данных.проверить адрес электронной почты, используемый другими в базе данных, если да, всплывающее предупреждение, если нет, перейдите к следующему шагу

reg_new.php -> reg_confirm.php -> reg_add.php

я пытаюсь изменить код на странице подтверждения (reg_confirm.php), чтобы включить проверку наличия электронной почты. кажется, что он может автоматически обнаруживать дубликат электронной почты и после нажатия кнопки подтверждения.

Будет показана повторяющаяся запись '[email protected]' для ключевого сообщения "PRIMARY".

все же, не удастся получить всплывающее предупреждение и остаться на странице подтверждения. пожалуйста помоги.

<?php 

session_start(); 
$_SESSION['email'] = $_POST['email_reg']; 
$_SESSION['password'] = $_POST['password_reg']; 
$_SESSION['name_reg'] = $_POST['name_reg']; 
$_SESSION['month'] = $_POST['month']; 
$_SESSION['telephone_reg'] = $_POST['telephone_reg']; 
$_SESSION['room_reg'] = $_POST['room_reg']; 
$_SESSION['floor_reg'] = $_POST['floor_reg']; 
$_SESSION['block_reg'] = $_POST['block_reg']; 
$_SESSION['building_reg'] = $_POST['building_reg']; 
$_SESSION['estate_reg'] = $_POST['estate_reg']; 
$_SESSION['street_reg'] = $_POST['street_reg']; 
$_SESSION['district_reg'] = $_POST['district_reg']; 
$_SESSION['region_reg'] = $_POST['region_reg']; 


$regemail = $_POST["email_reg"]; 

$connect = mysql_connect("127.0.0.1","root","") or die("not connecting"); 
mysql_select_db("shop") or die("no db :'("); 

$numrows = mysql_query("SELECT membermail FROM member WHERE memberemail='$regemail'"); 


if ($numrows!=0) 

{ 
echo "<script>alert('Email has been used by others!');window.location.href= 'reg_new.php';</script>"; 

} 
?> 




</head> 
<body> 
<div align="center" class="style1"><span class="style2">Registeration Confirm</span> 
<p class="style2">&nbsp;</p> 
<form action="reg_add.php" method="post" enctype="multipart/form-data" name="form1"> 
<table width="602" height="180" border="1"> 
    <tr> 
    <td colspan="3">Login Information</td> 
    </tr> 
    <tr> 
    <td width="160" class="style6">Email address: </td> 
    <td colspan="2"><span class="style7"><?php echo $_SESSION['email']?></span></td> 
    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td colspan="2">&nbsp;</td> 
    </tr> 
    <tr> 
    <td colspan="3">User information </td> 
    </tr> 
    <tr> 
    <td><span class="style6">Name:</span></td> 
    <td colspan="2"><?php echo ($_SESSION['name_reg'])?></td> 
    </tr> 
    <tr> 
    <td><span class="style6">Month of birth :</span></td> 
    <td colspan="2"><?php echo ($_SESSION['month'])?> 
    </tr> 
    <tr> 
    <td><span class="style6">Contact telephone:</span></td> 
    <td colspan="2"><?php echo ($_SESSION['telephone_reg'])?></td> 
    </tr> 
    <tr> 
    <td rowspan="8"><span class="style6">Contact address:</span></td> 
    <td width="153"><p class="style6">Room/ Flat no.: </p>  </td> 
    <td width="267"><p class="style6"><?php echo ($_SESSION['room_reg'])?></p>  </td> 
    </tr> 
    <tr> 
    <td><span class="style6">Floor: </span></td> 
    <td width="267"><span class="style6"><?php echo ($_SESSION['floor_reg'])?></span></td> 
    </tr> 
    <tr> 
    <td><span class="style6">Block/ Tower:</span></td> 
    <td width="267"><span class="style6"><?php echo ($_SESSION['block_reg'])?></span></td> 
    </tr> 
    <tr> 
    <td><span class="style6">Building:</span></td> 
    <td width="267"><span class="style6"><?php echo ($_SESSION['building_reg'])?></span></td> 
    </tr> 
    <tr> 
    <td><span class="style6">Estate: </span></td> 
    <td width="267"><span class="style6"><?php echo ($_SESSION['estate_reg'])?></span></td> 
    </tr> 
    <tr> 
    <td><span class="style6">Street:</span></td> 
    <td width="267"><span class="style6"><?php echo ($_SESSION['street_reg'])?></span></td> 
    </tr> 
    <tr> 
    <td><span class="style6">District:</span></td> 
    <td width="267"><span class="style6"><?php echo ($_SESSION['district_reg'])?></span></td> 
    </tr> 
    <tr> 
    <td><span class="style6">Region: </span></td> 
    <td width="267"><span class="style6"><?php echo ($_SESSION['region_reg'])?></span></td> 
    </tr> 
    <tr> 
    <td colspan="3" class="style6">&nbsp;</td> 
    </tr> 
</table> 
<p> 
    <input name="confirm" type="submit" id="confirm" value="Confirm"> 
</p> 
</form> 
<p> 
<input name="modifty" type="submit" id="modifty" value="Modify" onClick="history.go(-1)"> 

</p> 
</div> 
</body> 
</html> 

ответ

1

Ваша проблема заключается в том, как вы извлекаете количество строк из базы данных. mysql_query() не извлекает количество строк. Он извлекает результирующий набор.

Вместо:

$numrows = mysql_query("SELECT membermail FROM member WHERE memberemail='$regemail'"); 


if ($numrows!=0) 
{ 
    echo "<script>alert('Email has been used by others!');window.location.href= 'reg_new.php';</script>"; 
} 

Использование:

$email = mysql_real_escape_string($_POST["email_reg"]); 

$result = mysql_query("SELECT COUNT(memberemail) AS emailCount FROM member WHERE memberemail='{$email}'"); 

$row = mysql_fetch_row($result); 

if($row[0]>0){ 
    echo "<script>alert('Email has been used by others!');window.location.href= 'reg_new.php';</script>"; 
} 

ВСЕГДА убедитесь, что вы бежите ваши данные, прежде чем использовать его в запросе к базе данных.

+0

да! оно работает!!! но как сохранить введенную информацию? – user2402039

+0

Если вы правильно начали сеансы с 'session_start()', просто перенаправите пользователя на страницу 'reg_add.php' и напишите SQL-запрос вставки для вставки данных в базу данных. Вы можете перенаправить пользователя, используя: 'header ('Местоположение: http://yoursite.com/reg_add.php');' Затем получить ваши значения '$ _SESSION' в запросе вставки. –

+0

большое спасибо !!!! – user2402039

Смежные вопросы