Къде е грешката?

miro_94

Registered
Код:
<!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=utf-8" />
<title></title>
<style type="text/css">

</style></head>

<body>
<?php 
include("conn.php"); 
?>

<table width="303" border="1" align="center" cellpadding="1" cellspacing="1">
  <tr>
  <form action="index.php" method="post">
    <td colspan="3" align="center">Регистрация</td>
  </tr>
  <tr>
    <td width="134">Потребителско име</td>
    <td width="3">:</td>
    <td width="148"><input name="user" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Парола</td>
    <td width="3">:</td>
    <td><input name="pass" type="password" class="input" /></td>
  </tr>
  <tr>
    <td>Име</td>
    <td width="3">:</td>
    <td><input name="first_name" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Фамилия</td>
    <td width="3">:</td>
    <td><input name="last_name" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Град</td>
    <td width="3">:</td>
    <td><input name="city" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Държава</td>
    <td width="3">:</td>
    <td><input name="state" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Години</td>
    <td width="3">:</td>
    <td><input name="age" type="text" class="input" /></td>
  </tr>
  <tr>
    <td colspan="3" align="center"><input name="submit" type="submit" class="input" value="Регистрация" />  <input name="" type="reset" class="input" value="Изчисти" /></td>
  </form>
  </tr>
</table>

<?php
$user = "$_POST[user]";
$pass = "$_POST[pass]";
$first_name = "$_POST[first_name]";
$last_name = "$_POST[last_name]";
$city = "$_POST[city]";
$state = "$_POST[state]";
$age = "$_POST[age]";

$sql = "INSERT INTO user(username, password, first_name, last_name, city, state, age)VALUES($user, $pass, $first_name, $last_name, $city, $state, $age)";
$result = mysql_query($sql);
if($result){
echo " Успешна регистрация!";
}
else {
echo "Грешка!";
}
?>
</body>
</html>
реших да си направя система за регистрация ама незнам защо не работи този скрипт
 
Код:
!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=utf-8" />
<title></title>
<style type="text/css">

</style></head>

<body>
<?php
include("conn.php");
?>

<table width="303" border="1" align="center" cellpadding="1" cellspacing="1">
  <tr>
  <form action="index.php" method="post">
    <td colspan="3" align="center">Регистрация</td>
  </tr>
  <tr>
    <td width="134">Потребителско име</td>
    <td width="3">:</td>
    <td width="148"><input name="user" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Парола</td>
    <td width="3">:</td>
    <td><input name="pass" type="password" class="input" /></td>
  </tr>
  <tr>
    <td>Име</td>
    <td width="3">:</td>
    <td><input name="first_name" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Фамилия</td>
    <td width="3">:</td>
    <td><input name="last_name" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Град</td>
    <td width="3">:</td>
    <td><input name="city" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Държава</td>
    <td width="3">:</td>
    <td><input name="state" type="text" class="input" /></td>
  </tr>
  <tr>
    <td>Години</td>
    <td width="3">:</td>
    <td><input name="age" type="text" class="input" /></td>
  </tr>
  <tr>
    <td colspan="3" align="center"><input name="submit" type="submit" class="input" value="Регистрация" />  <input name="" type="reset" class="input" value="Изчисти" /></td>
  </form>
  </tr>
</table>

<?php
if($_POST['submit']){
session_start();
$user = "$_POST[user]";
$pass = "$_POST[pass]";
$first_name = "$_POST[first_name]";
$last_name = "$_POST[last_name]";
$city = "$_POST[city]";
$state = "$_POST[state]";
$age = "$_POST[age]";
$sql = "INSERT INTO `user` (`username`, `password`, `first_name`, `last_name`, `city`, `state`, `age`)
VALUES
('$user', '$pass', '$first_name', '$last_name', '$city', '$state', '$age')";
$result = mysql_query($sql);
if($result){
echo " Успешна регистрация!";
}
else {
echo "Грешка!";
}
}
?>
</body>
</html>
така ?
 
На мен ми е ясно защо не работи. Смени си PHP кода с този (тук съм сложил и мерки за сигурност:
Код:
<?php
if(isset($_POST['user']))
{
 $con=mysql_connect("localhost", "root", "password");
 if($err=mysql_error($con)) die( "Connect error: ".$err);

 mysql_select_db("database_for_registration_system", $con);
 if($err=mysql_error($con)) die( "Database select error: ".$err);

 $user = "'".addslashes($_POST['user'])."'";
 $pass = "'".addslashes($_POST['pass'])."'";
 $first_name = "'".addslashes($_POST['first_name'])."'";
 $last_name = "'".addslashes($_POST['last_name'])."'";
 $city = "'".addslashes($_POST['city'])."'";
 $state = "'".addslashes($_POST['state'])."'";
 $age = "'".addslashes($_POST['age'])."'";

 $sql = "INSERT INTO `user` (username, password, first_name, last_name, city, state, age) VALUES($user, $pass, $first_name, $last_name, $city, $state, $age)";
 $result = mysql_query($sql, $con);
 if($result)
 {
  echo " Успешна регистрация!";
 }
 else
 {
  echo "Грешка!";
 }
 mysql_close($con);
}
?>
 
Понеже hellfire ми отговори първи и ми помогна най много си заслужи точката.
 
Всъщност бях тръгнал да пиша първи :( , но се забавих поради технически пречини, но решението си е на автора и няма да го успорвам. Всепак хвърли едно око и на моя код :wink:
:oops: :o
 
datamatrix каза:
Всъщност бях тръгнал да пиша първи :( , но се забавих поради технически пречини, но решението си е на автора и няма да го успорвам. Всепак хвърли едно око и на моя код :wink:
:oops: :o
ето един друг начин за защита
if(!ereg('^[a-zA-Z0-9_]+$,$_POST['username']){
echo "Трябва да попълниш правилно полето";
exit;
}
и така за всяко
 

Back
Горе