Какво му е на кода ми ?

metal_head

Registered
Привет! От снощи се опитвам да направя логин система. Разбирам идеята на формите и базите данни добре вече и реших да се опитам да направя някаква проста логин система. Проблема е, че когато се попълни формата за регистрация и се натисне Submit не става нищо. Страницата презарежда, извежда всичката информация горе в addres bar-а, но в базата данни не се появява нов запис.

Ето го моя код с формата и всичко:

PHP:
<?php
$action = $_GET['action']; 
if(action == "register")register_user();
else register_form();

function register_form(){
$date = date('D, M, Y'); 	
echo"
<form id='register' name='register' method='get' action='?action=register' class='form-validate'>
<center>
<table class='contentpane' border='0' cellSpacing='0' cellPadding='0' width='100%'>
  <tr>
    <td height=40 width='30%'><div align='left'>Потребителско име:</div></td>
    <td width='50%'>
      <input type='text' maxLength='18' size='40' name='user_name' id='user_name' /> *
    </td>
  </tr>
  <tr>
    <td height=40 width='30%'><div align='left'>Парола:</div></td>
    <td><input type='text' maxLength='40' size='40' name='user_name' name='password' id='password' /> *</td>
  </tr>
  <tr>
    <td height=40 width='30%'><div align='left'>Потвърди паролата:</p></td>
    <td><input type='text' maxLength='40' size='40' name='user_name' name='conf_password' id='conf_password' /> *</td>
  </tr>
  <tr>
    <td height=40 width='30%'><div align='left'>E-mail:</div></td>
    <td><input type='text' maxLength='80' size='40' name='user_name' name='user_mail' id='user_mail' /> *</td>
  </tr>
  <tr>
    <td height=40 width='30%'><div align='left'>Да скрия ли мейла?</div></td>
    <td><input type='checkbox' name='hide_mail' id='hide_mail' /></td>
  </tr>
  <tr>
    <td height=40 width='30%'><div align='left'>Рождена дата:</div></td>
    <td><input type='text' maxlength='2' size='2' name='birth_day' id='birth_day' />  
    <input type='text' maxlength='2' size='2' name='birth_month' id='birth_month' />  
    <input type='text' maxlength='4' size='6' name='birth_year' id='birth_year' /> (дд/мм/гггг)</td>
  </tr>
  <tr>
    <td height=40 width='30%'><div align='left'>Местоположение:</div></td>
    <td><input type='text' maxLength='90' size='40' name='user_name' name='user_location' id='user_location' /></td>
  </tr>
  <tr>
    <td height=40 width='30%'><div align='left'>Уеб страница:</div></td>
    <td><input type='text' maxLength='150' size='40' name='user_name' name='user_web' id='user_web' /></td>
  </tr>
</table>
<input type='hidden' name='date' value='$date'>
<BUTTON class='png button validate' type='submit'>Регистрация</BUTTON> 
</form></center>
";
}

function register_user(){
$username = $_GET['user_name'];
$password = $_GET['password'];
$email = $_GET['user_mail'];
$hidemail = $_GET['hide_mail'];
$birthdate = $_GET['birth_day']."-".$_GET['birth_month']."-".$_GET['birth_year'];
$location = $_GET['user_location'];
$website = $_GET['user_web'];
$register_date = $_GET['date'];

if(empty($username))die("Попълнете потребителското име<br>"); 
if(empty($password)) die("Няма зададена парола!<br>"); 
if(empty($_GET['conf_password']))die("Не сте потвърдили паролата си<br>"); 
if(empty($email))die("Липсва e-mail!"); 

$user_result = mysql_query("SELECT username FROM users WHERE username='$username'");
$number_reg_users = mysql_num_rows($user_result);

$email_result = mysql_query("SELECT email FROM users WHERE email='$email'");
$number_reg_emails = mysql_num_rows($email_result);

if(number_reg_users > 0) die("Вече имаме потребител с такова име.");
if(number_reg_emails > 0) die("Този e-mail е вече регистриран при нас");
if($password != $_GET['conf_password']) die("Въведените пароли не съвпадат");

$insert = mysql_query("INSERT INTO users (username, password, email, hidemail, birthday, location, webpage, register_date) VALUES ('$username', '$password', '$email', '$hidemail', '$birthdate', '$location', '$website', '$register_date')"); 
if(!$insert) die("Има пробем: ".mysql_error()); 
else echo"Регистриран си";

}
?>

Държа да отбележа, че имам връзка с базата данни и съм я селектирал (това става във файла на хедъра ми, така че навсякъде има връзка). Мога също да взимам информация от базата данни без проблем, но с този код не мога да направя нов запис. Някой може ли да ми обясни къде съм сбъркал и защо съм сбъркал? Благодаря !
 
Не съм гледал целият код, но забелязах 2 мнеща 1 во, в формата е гет а не пост, и 2 ро прави си проверка дали е субмитната формата бутона чрез иссет
 
ArchangelS каза:
формата е гет а не пост

Значи method трябва да е post и после го взимам с $_GET, така ли ? Щото аз разбрах, че за да взема нещо от форма с $_GET то формата трябва да е с метод get, ама явно толкова съм и разбрал :D

А това за формата, трябва да проверя променливата action ли ?
Защото аз уж имам иф стейтмънт, който проверява дали тя е равна на "register" или не.
 
method="post"

if(isset($_POST['butonanasubmitati'])){
какво ще стане след натискане на бутона.
}

Не мога да ти кажа относно гета, защото незнам каква ти е целта с него. Но все пак това горе над този текст, е варианта за пост .
 
Йеей, благодаря ти! Подкарах регистъра. Също така намерих и грешка. Няколко текстови полета имаха едни и същи имена.
 

Back
Горе