Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Почему создаётся пустая строка? (http://forum.oszone.net/showthread.php?t=80815)

13ghost 12-03-2007 22:19 560812

Почему создаётся пустая строка?
 
есть проблема следующего плана:
открываем страницу приветствия,здесь нам предлагают ввести логин и пароль или,если не зарегистрирован, то по ссылке перейти на страницу регистрации.так вот при переходе по ссылке в базу добавляется пустая строка

Код:

<html>
<head>
<title>Registration</title>
<meta http-equiv=content"Content-Type" content="text/html; charset=1251">

<link href="style%20.css" rel="stylesheet" type="text/css">
</head>
<body>
<center>
<?php

Error_Reporting(E_ALL & ~E_NOTICE);
require_once("my_func_lib.php");
//require_once("reg2.php");
$form = "
<form action=\"reg.php\" method=\"post\">
<input type=\"hidden\" name=\"seenform\" value=\"y\">
<h3><b>Введите следующие контактные сведения:!</b></h3><br>

Ник <sup>*</sup>:<br>
<input type=\"text\" name=\"nik\" size=\"20\" maxlength=\"20\" value=\"$nik\"><br>
Фамилия<sup>*</sup>:<br>
<input type=\"text\" name=\"lname\" size=\"20\" maxlength=\"20\" value=\"$lname\"><br>

Имя <sup>*</sup>:<br>
<input type=\"text\" name=\"name\" size=\"20\" maxlength=\"20\" value=\"$name\"><br>

Город<sup>*</sup>:<br>
<input type=\"text\" name=\"town\" s1ze=\"40\" maxlength=\"60\" value=\"$town\"><br>

Эл.Почта<sup>*</sup><br>
<input type=\"text\" name=\"email\" size=\"20\" maxlength=\"40\" value=\"$email\"><br>
Пароль<sup>*</sup>:<br>
<input type=\"password\" name=\"pas\" size=\"20\" maxlength=\"40\" value=\"$pas\"><br>
Ещё раз<sup>*</sup>:<br>
<input type=\"password\" name=\"pas2\" size=\"20\" maxlength=\"40\" value=\"$pas2\"><br>


<input type=\"submit\" value=\"subscribe!\">
<p>Поля помеченые звёздочкой <sup>*</sup> являются обязательными для заполнения</p>
</form>";
 echo "$form";
//Заполнялась ли форма ранее?
if ($seenform != "y"):
$error_flag = "n";
print "$form";
// Пользователь заполнил форму. Проверить введенные данные,
else :
        $error_flag = "n";
// Убедиться в том. что поле имени содержит информацию
        if ($nik == "") :
        print "<font color=\"red\">* Вы не ввели Ник!</font> <br>";
        @$error_flag = "y";
        endif;
        if ($lname == "") :
        print "<font color=\"red\">* Вы не ввели фамилию!</font> <br>";
        @$error_flag = "y";
        endif;
        if ($name == "") :
        print "<font color=\"red\">* Вы не ввели имя!</font> <br>";
        @$error_flag = "y";
        endif;
        if ($town == "") :
        print "<font color=\"red\">* Вы не указали город!</font> <br>";
        $error_flag = "y";
        endif;

// Убедиться в том. что поле адреса содержит информацию
        if ($email == "") :
        print "<font color=\"red\">* Вы не указали эл.адрес !</font><br>";
        $error_flag = "y";
        endif;
        // Преобразовать все алфавитные символы в адресе
        // электронной почты к нижнему регистру
        //$email = strtolower(trim($email));
        //проверка ника на уникальность

// Убедиться в правильности синтаксиса
// адреса электронной почты
        if (isit($nik)==true):
        print  "<font color=\"red\">* Пользователь с таким ником уже зарегестрирован!</font> <br>";
        $error_flag = "y";
        endif;
        if (! @eregi('^[0-9a-zA-Z_-]+'.'@'.'([0-9a-z-]+\.)+'.'([0-9a-z]){2,4}$', $email)) :
        print "<font color=\"red\">* Введённый электроныый адрес не коректен!</font> <br>";
        $error_flag = "y";
        endif;
        if ($pas == "") :
        print "<font color=\"red\">* Вы не ввели пароль!</font> <br>";
        @$error_flag = "y";
        endif;
//сравниваем пароли
        if ($pas!=$pas2):
        print "<font color=\"red\">* Пароли не совпадают!</font> <br>";
        @$error_flag = "y";
        endif;
/*проверка имени*/
      if (! @eregi('[a-zа-я]', $name)) :
        print "<font color=\"red\">*поле Имя может содержать только буквы!</font> <br>";
        $error_flag = "y";
        endif;

        if (! eregi('[a-zа-я]', $lname)) :
        print "<font color=\"red\">*  поле Фамилия может содержать только буквы!</font> <br>";
        $error_flag = "y";
        endif;


        if (! @eregi('[0-9a-zа-я]', $town)) :
        print "<font color=\"red\">* поле Город может содержать только буквы!</font> <br>";
        @$error_flag = "y";
        endif;

        endif;
// Если флаг ошибки @$error_flag установлен.
// заново отобразить форму

        if ($error_flag == "y") :
        print "$form";

        else :
//Добавляем данные в базу

      $r=mysql_pconnect("localhost" ,"root" ,"");
        if(!$r) :
        echo "засада";
        echo "<br>";
        else:
        $s=mysql_select_db("anketa");
        if(!$s) :
        echo "засада";
        echo "<br>";
        else:
        $q=mysql_query("insert into users(nik,familia,name,town,email,password)
              values(\"$nik\",\"$lname\",\"$name\",\"$town\",\"$email\",\"$pas\");");
        if(!$q)
        echo "упс ";
        else
    echo "у е" ; 
    // Обработать данные пользователя
      print "You entered valid form information!" ;
endif;     




?>

вот сама страница регестрации
чего так происходит не могу понять,помогите ,плиз

Prisoner 12-03-2007 23:50 560841

Скрипт написан с предположением включенной морально устаревшей вещи - опции REGISTER_GLOBALS (не спрашивайте меня, что это. используйте поисковик и мануалы). Пройдите по коду и мысленно представьте, что все переменные упоминавшиеся в форме - в php коде == null, куда вы забредете?

XCodeR 13-03-2007 01:10 560855

Prisoner
Цитата:

морально устаревшей вещи
это почему же?..

Prisoner 13-03-2007 12:20 561010

Хм... PHP3 - ON by default, PHP4.X - OFF by default, PHP5 - OFF by default, PHP6 - Yep. What is it? Кстати вот, тут гораздо лучше изложено, ниже по тексту.

PHP6 - это из анонсов :).

vadimiron 13-03-2007 12:55 561020

Цитата:

PHP6 - это из анонсов
И уже давнийший анонс :) . Несколько месяцев назад читал, что уже 50% всех функций стали unicode, ждём, когда релиз выйдет....

Sham 20-03-2007 00:47 563999

13ghost
Цитата:

if ($error_flag == "y") : print "$form"; else :
навскидку: если у тебя форма не шлется - по идее срабатывает вставка в базу... т.е сделай проверку типа if(isset($_POST)){вставка в базу}...


Время: 20:03.

Время: 20:03.
© OSzone.net 2001-