Проблемы со скриптом

  • Автор темы sinoptik1
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

sinoptik1

#1
Привет всем.Ребята разъясните такую ситуёвину.Есть файл settings.php вот код
$PATH_INC = "/localhost/Home/www/inc";
$PATH_REQ = "/localhost/Home/www/req";
$HOST = "127.0.0.1";
$USER = "root";
$PSW = "тут пароль";
$DB = "тут назв базы";
$CHAR_SET = "cp1251";
function sql_connect($HOST,$USER,$PSW,$DB)
{
$conn_id = mysql_connect($HOST,$USER,$PSW);
mysql_select_db($DB);
mysql_query("SET NAMES cp1251");
return($conn_id);}
function sql_execute($sql_query,$conn_id)
{
$res = mysql_query("SET NAMES cp1251");
$sql_res = mysql_query($sql_query,$conn_id);

return($sql_res);
}

function sql_close($conn_id)
{
mysql_close($conn_id);
}
//функция для добавления нового пользователя
function add_user($lastname,$firstname,$age,$gender,$prof,$login,$psw,$repsw,$email,$conn_id)
{$lastname=addslashes($lastname);
if (strlen($lastname)==0|strlen($firstname)==0|strlen($login)==0|strlen($psw)==0
|strlen($repsw)==0|strlen($email)==0) {return (8); }
if (strlen($psw)<16)return(2);
if ($psw!==$repsw) return (3);
$sql_query = "SELECT * FROM users WHERE login='".$login."'";
$sql_res=sql_execute($sql_query,$conn_id);
if(mysql_error($conn_id))return(4);
if(mysql_num_rows($sql_res))return(5);
if (strpos($email,"@")===false)return(9);
$psw=md5($psw);
$sql_query="INSERT INTO users (lastname,firstname,age,login,email)
VALUES('".$_POST['lastname']."','".$_POST['firstname']."','".$_POST['age']."','".$_POST['login']."',
'".$_POST['email']."')";
$sql_res=sql_execute($sql_query,$conn_id);
if(mysql_error($conn_id))return(mysql_error($conn_id));
return(0);}

function err_to_str($num){
$err[1]="Введите login и пароль";
$err[2]="Пароль должен содержать не менее 16 символов";
$err[3]="Введен неверный пароль";
$err[4]="Ошибка соединения с базой";
$err[5]="Такой пользователь уже существует";
$err[6]="Неверный пароль";
$err[7]="Пользователя с таким именем не существует";
$err[8]="Не заполнены обязательные поля";
$err[9]="e-mail не корректен";
return ($err[$num]);
}
function mailer($from, $to, $subj, $body)
{
$from="From: \"e-pood \"<".$from.">\nReply-To: $from\nX-Priority: 1\nContent-Type: text/plain;
charset=\"koi8-r\"\nContent-Transfer-Encoding: 8bit";
$from=convert_cyr_string($from,"w","k");
$to=convert_cyr_string($to,"w","k");
$subj=convert_cyr_string($subj,"w","k");
$body=convert_cyr_string($body,"w","k");
mail($to,$subj,$body,$from);
}

function user_validate($username, $password, $conn_id)
{
if (strlen($username)==0|strlen($password)==0)return (1);
$sql_query="SELECT psw FROM user WHERE login ='".$username."'";
$sql_res=sql_execute($sql_query,$conn_id);
if(mysql_error($conn_id)) return(4);
if(!mysql_num_rows($sql_res))return(7);
$psw = mysql_result($sql_res,0,0);
$password=md5($password);
if ($password!==$psw) return(6);
return (0);
}

//функция восстановления пароля
function forgot_psw($username,$email,$conn_id)
{if (strlen($username)==0|strlen($email)==0 )return (8);
$sql_query="SELECT user WHERE login ='".$username."'";
$sql_res=sql_execute($sql_query,$conn_id);
if(mysql_error($conn_id)) return(4);
if(!mysql_num_rows($sql_res))return(7);
$psw = mysql_result($sql_res,0,0);
return (0);}
?>
есть файл index.php вот код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php
require("D:/localhost/Home/www/req/settings.php");
$conn_id=sql_connect($HOST, $USER, $PSW, $DB);
//$query=add_user($lastname, $firstname, $age, $sex, $position, $login, $psw, $repsw,
//$email,$conn_id);
//$execute=sql_execute($sql_query,$conn_id);
switch($_REQUEST["do"])
{
case 'enter':
{
$err=user_validate($_POST["login"],$_POST["psw"],$conn_id);
if (!$err)
{
$_SESSION["username"]=$_POST["login"];
$_SESSION['starttime']=microtime(1);
}
else
{
$message=err_to_str($err);
}
}
case 'exit':
{session_destroy();}
}
?>
<html>
<?php include($PATH_INC."/headers.inc") ?>

<body style="width: 1028px;">
<?php include($PATH_INC."/logo.inc") ?>


<table style="text-align: left; height: 40px; width: 1019px;" border="0" cellpadding="0" cellspacing="0">


<tr>

<td style="background-color: rgb(102, 255, 255); width: 699px;" align="undefined"
valign="undefined"><?php include($PATH_INC."/top.inc")?></td>

<td style="background-color: rgb(153, 255, 255); width: 263px;" align="undefined"
valign="undefined">Поиск</td>

</tr>

</table>

<table style="text-align: left; width: 1021px;" border="0" cellpadding="8" cellspacing="0">

<tbody>

<tr>

<td style="background-color: rgb(204, 255, 255); width: 200px;" align="undefined"
valign="undefined"></td>
<td style="width: 807px;" align="undefined" valign="undefined">
<?php include($PATH_INC."/navigator.inc") ?></td>

</tr>

<tr>

<td style="width: 200px;" align="undefined" valign="undefined">
<?php include($PATH_INC."/left.inc") ?></td>

<td style="width: 807px;" align="undefined" valign="undefined">
<p><br>

<?php

switch($_REQUEST["do"]) {
case 'reg':
require($PATH_REQ."/reg.php");
break;
case 'f_psw':
require($PATH_REQ."/f_psw.php");
break;
default:
echo "последние поступления";
}



?>

</td>

</tr>

</tbody>
</table>

<table style="text-align: left; margin-left: 0px; margin-right: auto; width: 1023px; height: 40px;"
border="0" cellpadding="0" cellspacing="0">


<tr>

<td style="background-color: rgb(153, 255, 255); width: 982px;" align="rigth"
valign="undefined">Copyrigth</td>

</tr>


</table>

<br>

</body>
</html>

есть файл reg.php вот код
<?php
//require("/localhost/Home/www/req/settings.php");
if ($_POST["Y"]==="Y")
{

$conn_id=sql_connect($HOST, $USER, $PSW, $DB);
$query=add_user($lastname,$firstname,$age,$gender,$prof,$login,$psw,$repsw,$email,$conn_id);

$execute=sql_execute($sql_query,$conn_id);


$err=add_user($_POST["lastname"],$_POST["firstname"],$_POST["age"],$_POST["gender"],
$_POST["prof"],$_POST["login"],$_POST["psw"], $_POST["repsw"],$_POST["email"],
$conn_id);
if($err)
{$message=err_to_str($err);}
else
{echo "Регистрация прощла успешно. Данные отпралены на email";
$email_message = "Login ".$_POST["login"]."Pasword. ".$_POST["psw"];
mailer('укекн@rambler.ru', $_POST["email"], "Registration", $email_message);
exit;}
}
?>

<? echo @$message."<br>" ?>
*-Обязательные поля <br>

<form method="post"action="<?php echo $_SERVER['PHP_SELF']?>">
<input name="do" value="reg" type="hidden">
<input name="Y" value="Y" type="hidden">
<table style="text-align: left; width: 616px;" border="0" cellpadding="4" cellspacing="0">

<tbody>

<tr>

<td style="width: 244px;" align="undefined" valign="undefined">Фамилия*</td>

<td style="width: 315px;" align="undefined" valign="undefined"><input name="lastname"
value = "<? echo $_POST["lastname"]?>"><br>
</td>

</tr>

<tr>
<td style="width: 244px;" align="undefined" valign="undefined" >Имя*</td>

<td style="width: 315px;" align="undefined" valign="undefined"><input name="firstname"
value = "<? echo $_POST["firstname"]?>"></td>

</tr>

<tr>

<td style="width: 244px;" align="undefined" valign="undefined">Год рождения*</td>

<td style="width: 315px;" align="undefined" valign="undefined">
<select size="1" name="age" value = "<? echo $_POST["age"]?>">
<? for ($i=18; $i<100; $i++)
{@$str.="<option> $i </option>";}
echo $str?>
</select>

</td>

</tr>

<tr>

<td style="width: 244px;" align="undefined" valign="undefined">Пол*</td>

<td style="width: 315px;" align="undefined" valign="undefined">
<input checked="checked" name="gender" value ="муж" type="radio"> муж
<input name="sex" value="жен" type="radio">
Жен </td>

</tr>

<tr>

<td style="width: 244px;" align="undefined" valign="undefined">Род занятий*</td>

<td style="width: 315px;" align="undefined" valign="undefined">
<select size="1" name="prof">
<option>Студент</option>
<option>Рабочий</option>
<option>Чиновник</option>
</select>

</td>

</tr>

<tr>

<td style="width: 244px;" align="undefined" valign="undefined">Login*</td>

<td style="width: 315px;" align="undefined" valign="undefined">
<input name="login" value = "<? echo $_POST["login"]?>"></td>

</tr>

<tr>

<td style="width: 244px;" align="undefined" valign="undefined">
Пароль* (не менее 16 символов)</td>

<td style="width: 315px;" align="undefined" valign="undefined">
<input name="psw" type="password"></td>

</tr>

<tr>

<td style="width: 244px;" align="undefined" valign="undefined">
Повторить пароль*</td>

<td style="width: 315px;" align="undefined" valign="undefined">
<input name="repsw" type="password"></td>

</tr>

<tr>

<td align="undefined" valign="undefined">Е-mail*</td>

<td align="undefined" valign="undefined"><input name="email"
value = "<? echo $_POST["email"]?>"></td>

</tr>

<tr>

<td style="text-align: left;" valign="undefined">
<input name="register" value="Регистрация" type="submit"></td>

<td style="text-align: left;" valign="undefined">
<input value="Отменить" type="reset"></td>

</tr>

</tbody>
</table>

</form>
база данных на MySQl сервере и в ней соответствующая таблица с такими полями
lastname(varchar 30)
fistname(varchar 30)
age(int 3)
gender(varchar 3)
prof(varchar 10)
login(varchar 30)
psw(varchar30)
email(varchar 30) , тоже есть

Трабла в том что не проходит регистрация, т.е в index.php вызываешь reg.php открывается форма регистрации, если нажимаешь кнопку регистрации не заполняя поля то вылазит надпись не заполнены обязательные поля, если неправильны пароль и повтор пароля то неправильный пароль и т д это функция err_to_str из settins.php работает. Но если заполняешь форму правильно нажимаешь регистрацию после этого заходитшь в MySQL Query browser делаешь там select * from users;
и видишь что там ничего не добавилось хотя по идее должны добавиться значения тех переменных которые
в форме регистрации. Я уже чего только не перерыл и httpd.conf из Апача 2.2 и php.ini из php 5.2.3
кодиовки в базе ср1251 так же как в settings.php. Кто что посоветует .Соединение с сервером мускула с теми параметрами что указаны в settings.php проходит.Проверял, писал другие скрипты

insert.php
<?php
require("/localhost/Home/teacher/for teacher/SETTING1.php");
if ($submit)
{
$conn_id=sql_connect($HOST,$USER,$PSW,$DB);
// process form


$add=add_us($lastname,$firstname,$age,$sex,$position,$login,$psw,$repsw,$email,$conn_id);
}
else
{
// display form
?>

<form method="post" action="<?php echo $PHP_SELF?>">
lastname:<input type="Text" name="lastname"><br>
firstname:<input type="Text" name="firstname"><br>
Age:<input type="Text" name="age"><br>
sex:<input type="Text" name="sex"><br>
position:<input type="Text" name="position"><br>
Login:<input type="Text" name="login"><br>
psw:<input type="Text" name="psw"><br>
repsw:<input type="Text" name="repsw"><br>
email:<input type="Text" name="email"><br>




<input type="Submit" name="submit" value="Enter information">
</form>
<?php
}
// end if
?>

setting1.php

<?php
// реквизиты доступа к базе
$HOST="127.0.0.1";
$USER="root";
$PSW ="тут пароль";
$DB = "тут назв базы";
function sql_connect($HOST,$USER,$PSW,$DB)
{
$conn_id = mysql_connect($HOST,$USER,$PSW);
mysql_select_db($DB);
mysql_query("SET NAMES cp1251");
return($conn_id);}
function add_us($lastname,$firstname,$age,$sex,$position,$login,$psw,$repsw,$email,$conn_id)
{
$sql = "INSERT INTO user (lastname,firstname,age,sex,position,login,psw,email)
VALUES('".$lastname."','".$firstname."','".$age."','".$sex."','".$position."','".$login."','".$psw."','".$email."')";


$result = mysql_query($sql);

echo "Thank you! Information entered.\n";

}



?>

тут всё добавляется все проходит. Препод в институте требует чтоб отладил именно первые 3 скрипта. С уважением Андрей
 
Статус
Закрыто для дальнейших ответов.