Регистрационная форма на PHP

Alado

Member
Joined
Jun 8, 2005
Messages
97
Reaction score
0
Age
38
Location
Москва
Website
www.flammlin.com
Надеюсь обратился в тот раздел форума :)
Ребят я новичек, только начинаю познавать php решил написать регистрационную форму, только вышло что то не то... Просто тема такая надо создать файл с именем пользователя, в него воткнуть много заголовков для будущей инфы, а при регистрации в него будет вписывать только ник, пароль и почта...
Code:
<?php
if (empty($_POST['action'])) {
?>
<html>
<form name="form1" method="post" action="reg.php">
<input type="hidden" name="action" value="true" />
   <table width="200" border="1">
    <tr>
      <td>Ник</td>
      <td><input name="nick" type="text" id="nick"></td>
    </tr>
    <tr>
      <td>Пароль</td>
      <td><input name="pass" type="text" id="pass"></td>
    </tr>
    <tr>
      <td>Подтверждение пароля</td>
      <td><input name="pass2" type="text" id="pass2"></td>
    </tr>
    <tr>
      <td><p>E-mail</p>
      </td>
      <td><input name="mail" type="text" id="mail"></td>
    </tr>
    <tr>
      <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2"><div align="center">
        <input type="submit" name="Submit" value="Добавить">
      </div></td>
    </tr>
  </table>
</form>
</html>
<?php
} else {
        $error="";
        if(empty($_POST['nick'])) {
                $error .= "Не введен ник!";
        }
        if(empty($_POST['pass'])) {
                $error .= "<br>Не введен пароль!";
        }
        if($_POST['pass'] !== $_POST['pass2']) {
                $error .= "<br>Пароли не совпадают!";
        }
        if(empty($_POST['mail'])) {
                $error .= "<br>Не введен Email";
        }

        if (empty($error)) {
                include ("conf.php");
                $fp = file("data/users/".strtolower($nick).".php");
                if(!$fp) {
                        $file = "data/users/".strtolower($nick).".php";
                        $cfp1 = fopen($file, "w+" );
                        fputs ($cfp1, "\<?php Файл польлзователя $nick|||\n");
                        fputs ($cfp1, "#|nick|$nick|\n");
                        fputs ($cfp1, "#|pass|".md5($pass)."|\n");
                        fputs ($cfp1, "#|stat|user|\n");
                        fputs ($cfp1, "#|mail|$mail|\n");
                        fputs ($cfp1, "#|site|$site|\n");
                        fputs ($cfp1, "#|sex|$sex|\n");
                        fputs ($cfp1, "#|name|$name|\n");
                        fputs ($cfp1, "#|years|$years|\n");
                        fputs ($cfp1, "#|country|$country|\n");
                        fputs ($cfp1, "#|city|$city|\n");
                        fputs ($cfp1, "#|icq|$icq|\n");
                        fputs ($cfp1, "#|foto|$foto|\n");
                        fputs ($cfp1, "#|info|$info|\n");
                        fputs ($cfp1, "#|time|0:0:0|\n");
                        fputs ($cfp1, "\?>|||\n");
                        @fflush($cfp1);
                        fclose($cfp1);
                        $error .= "Пользователь добавлен".$_POST['nick'].;
                }
        } else {
                echo ($error);
        }
}
?>

Вот такой код только у меня если что вводишь не правильно ошибки есть, а если правильно то нету надписи "Пользователь добавлен" На денвере выдаются такие ошибки:
Warning: file(data/users/user.php): failed to open stream: No such file or directory in z:\home\test2.ru\www\reg.php on line 58
Notice: Undefined variable: site in z:\home\test2.ru\www\reg.php on line 67
Notice: Undefined variable: sex in z:\home\test2.ru\www\reg.php on line 68
Notice: Undefined variable: name in z:\home\test2.ru\www\reg.php on line 69
Notice: Undefined variable: years in z:\home\test2.ru\www\reg.php on line 70
Notice: Undefined variable: country in z:\home\test2.ru\www\reg.php on line 71
Notice: Undefined variable: city in z:\home\test2.ru\www\reg.php on line 72
Notice: Undefined variable: icq in z:\home\test2.ru\www\reg.php on line 73
Notice: Undefined variable: foto in z:\home\test2.ru\www\reg.php on line 74
Notice: Undefined variable: info in z:\home\test2.ru\www\reg.php on line 75

И потом почему то не вышло такой вещи как сообщения типа такое имя зареганенно... может кто знает как это сделать? :help2: Если можно покажите мне где чего накасачил, а то просто переменную убери ту, я не пойму... :confused:
 

GI80

Member
Joined
Aug 10, 2005
Messages
178
Reaction score
14
Age
44
Location
Москва
Во первых, по поводу "Warning: file(data/users/user.php): failed to open stream: No such file or directory in z:\home\test2.ru\www\reg.php on line 58
". Открытие файла происходит относительно находждения php-скрипта из которого ты его открываешь. Тоесть если ты открываешь из c:\scrip.php файл командой fopen("somefile.php"), то искать он его будет в c:. Твой файл изнчально находится в z:\home\test2.ru\www\ , а файл настроек в data/users/. Открывая файл настроек таким образом ты пытаешьмя открыть файл котрый находится в z:\home\test2.ru\www\data/users/.

Во вторых, по поводу остальных ошибок. На самом деле это всего лишь предупреждения о том что твои переменные ничем не инициализированны до их использования. Если в у тебя в php.ini стоит register_globals = off, то, в общем, ничем опасным тебе это не грозит. Иначе же в эти переменные пользователь сможет записать все что угодно.

На самом деле тебе этот вопрос лучше было бы задать вот в этом разделе:
_http://dumpz.ru/forumdisplay.php?f=27
 
Z

zig55

Привет Аладо !!!

Я немного поправил твой код и все работает.
Успехов

Zig

<?php
if (empty($_POST['action'])) {
?>
<html>
<center>
<form name="form1" method="post" action="reg.php">
<input type="hidden" name="action" value="true" />
<table width="300" border="1">
<tr>
<td>Name (nick)</td>
<td><input name="nick" type="text" id="nick"></td>
</tr>
<tr>
<td>Password</td>
<td><input name="pass" type="text" id="pass"></td>
</tr>
<tr>
<td>Password agein</td>
<td><input name="pass2" type="text" id="pass2"></td>
</tr>
<tr>
<td><p>E-mail</p>
</td>
<td><input name="mail" type="text" id="mail"></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Submit">
</div></td>
</tr>
</table>
</form>
</center>
</html>
<?php
} else {
$error="";
if(empty($_POST['nick'])) {
$error .= "Name (nick) is empty";
}
if(empty($_POST['pass'])) {
$error .= "<br>password is empty!";
}
if($_POST['pass'] !== $_POST['pass2']) {
$error .= "<br>password 1 != 2";
}
if(empty($_POST['mail'])) {
$error .= "<br>Email is empty";
}

if (empty($error))
{
// include ("conf.php");
$file = "doc/".strtolower($nick).".php";
$fp = @file($file);
if(!$fp)
{
$cfp1 = @fopen($file, "w+" );
if($cfp1)
{
fputs ($cfp1, "\<?php File Castom $nick|||\n");
fputs ($cfp1, "#|nick|$nick|\n");
fputs ($cfp1, "#|pass|".md5($pass)."|\n");
fputs ($cfp1, "#|stat|user|\n");
fputs ($cfp1, "#|mail|$mail|\n");
fputs ($cfp1, "#|site|$site|\n");
fputs ($cfp1, "#|sex|$sex|\n");
fputs ($cfp1, "#|name|$name|\n");
fputs ($cfp1, "#|years|$years|\n");
fputs ($cfp1, "#|country|$country|\n");
fputs ($cfp1, "#|city|$city|\n");
fputs ($cfp1, "#|icq|$icq|\n");
fputs ($cfp1, "#|foto|$foto|\n");
fputs ($cfp1, "#|info|$info|\n");
fputs ($cfp1, "#|time|0:0:0|\n");
fputs ($cfp1, "\?>|||\n");
@fflush($cfp1);
fclose($cfp1);
echo ("Add castome".$_POST['nick']);
}
else
{
$error .= "<br>File for nick is not create - $fp";
echo ($error);
}
}
else
{
$error .= "<br>File for nick exists";
echo ($error);
}
} else
{
echo ($error);
}
}
?>
 
Top