Форма регистрации: PHP: <?php include('header.php') ?> <center> <table bgcolor="#C0C0C0" border="3" bordercolor="#858585"><tr><td><font size="5">Регистрация нового пользователя:</font></td></tr></table> <br> <form action="register_new.php" method="POST"> <table bgcolor="#C0C0C0" border="3" bordercolor="#858585"> <tr><td>Логин(Ник)</td><td><input type="text" name="nickname" size="25"></td></tr> <tr><td>Пароль<br>(более 6 символов)</td><td><input type="password" name="pass" size="25"></td></tr> <tr><td>Повторите пароль</td><td><input type="password" name="re_pass" size="25"></td></tr> <tr><td>E-mail</td><td><input type="text" name="email" size="25"></td></tr> <tr><td>Повторите E-mail</td><td><input type="text" name="email2" size="25"></td></tr> <tr><td>Страна</td><td><input type="text" name="country" size="25"></td></tr> <tr><td>Из какой вы области</td><td><input type="text" name="obl" size="25"></td></tr> <tr><td>Дата рождения(гггг-мм-дд)</td><td><input type="text" name="birthday" size="25"></td></tr> <tr><td colspan="2"><center><input type="SUBMIT" name="submit" value="Регистрация"></center></td></tr> </table> </form> <font color="#FF0000"> *Все поля являются обязательными к заполнению! </font> </center> Файл register_new.php : PHP: <?php $nickname=$_POST['nickname']; $password1=$_POST['pass']; $password2=$_POST['re_pass']; $email=$_POST['email']; $email2=$_POST['email2']; $country=$_POST['country']; $obl=$_POST['obl']; $birthday=$_POST['birthday']; include('header.php'); try { if(!filled_out($_POST)) { throw new Exception('Заполнены не все поля.Пожалуйста, заполните форму вновь.'); } if(!valid_email($email)) { throw new Exception('Недопустимый адрес электронной почты. Пожалуйста, вернитесь на форму и повторите попытку.'); } if((strlen($password1)<6) || (strlen($password1)>16)) { throw new Exception('Пароль должен содержать от 6 до 16 символов.'); } if($password1 != $password2) { throw new Exception ('Введенные вами пароли отличаются.Повторите ввод.'); } if($email != $email2) { throw new Exception ('Введенные адреса эл. почты отличаются.Повторите ввод.'); } register($nickname,$password1,$email,$country,$obl,$birthday); $_SESSION['valid_user']=$nickname; echo 'Регистрация прошла успешно!'; } catch(Exception $e) { echo"<h1>Возникла проблема:</h1>"; echo $e->getMessage(); exit; } ?> Файл header.php : PHP: <?php session_start(); include('functions.php'); echo"<body background=images/fon_son.jpg> <a href=register.php ><font color=RED>Зарегистрироваться</font></a> <center><table border=5> <tr><td colspan=8><img src=images/logo_son.jpg align=TOP></td></tr> <tr bgcolor=#C0C0C0><td><center>Главная страница</center></td><td><center>Цели сайта</center></td><td><center>Поиск</center></td> <td><center>Форум</center></td><td><center>FFFFFF</center></td> <td><center>FFFFF</center></td><td><center>FFFFF</center></td> <td><center>Войти</center></td></tr> </table></center></body>"; check_valid_user(); echo"<br><br>"; ?> Файл functions.php : PHP: <?php function db_connect() { $result=new mysqli('localhost','root','1','chtovamsnilos'); if(!$result) { throw new Exception ('Невозможно подключиться к серверу баз данных'); } else { return $result; } } function filled_out($form_vars) { foreach($form_vars as $key => $value) { if((!isset($key)) || ($value == '')) return false; } return true; } function valid_email($address) { if(ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $address)) { return true; } else { return false; } } function register($nickname,$password,$email,$country,$obl,$birthday) { $conn= db_connect(); $result=$conn->query("select * from userlist where nickname='".$nickname."'"); if(!$result) { throw new Exception ('В данный момнет невозможно выполнить запрос к БД.'); } if($result->num_rows>0) { throw new Exception ('Это имя уже занято, пожалуйста выберите себе другое имя.'); } $password1=sha1($password); $result=$conn->query("insert into userlist values ('".$nickname."','".$password1."','".$email."','".$country."','".$obl."','".$birthday."')"); return true; } function check_valid_user() { if(isset($_SESSION['valid_user'])) { echo "<center><table><tr><td colspan=7><font color=#FF0000> Вы вошли в систему под именем ".$_SESSION['valid_user'].".</font> </td></tr></table></center> <br>"; } else { echo "<center><table><tr><td colspan=7><font color=#800000> Вы не вошли в систему.</font> </td></tr></table></center>"; //exit; } } function login($nickname,$password) { $conn=db_connect; $password1=sha1($password); $result=$conn->query("select * from userlist where nickname='".$nickname."' and password='".$password1."'"); if(!$result) { throw new Exception ('Вход в систему невозможен.'); } if($result->num_rows>0) { return true; } else { throw new Exception ('Вход в систему невозможен.'); } } ?> После регистрации пишет: Вы успешно зарегистрировались. Функция check_valid_user() выводит: Вы вошли как... Но бд остаётся пуста.
Padaboo Спасибо большое за помощь!=) И ещё вопрос теперь всё добавляется но при попытке залогиниться выдаёт ошибку в функции логин (строка с ошибкой выделена жирным): PHP: function login($nickname,$password) { $conn=db_connect; $password1=sha1($password); [b]$result=$conn->query("select * from userlist where nickname='".$nickname."' and password='".$password1."'");[/b] if(!$result) { throw new Exception ('Ошибка'); } if($result->num_rows>0) { return true; } else { throw new Exception ('Такого логина нет.'); } } Ошибка:Fatal error. Call to a member function query() on a non-object in...
Kaner echo запрос и в phpmyadmin кодировки везде должны быть одинаковые http://www.php.ru/forum/viewtopic.php?t=10103