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

Тема в разделе "PHP программирование", создана пользователем sinoptik1, 9 мар 2008.

Статус темы:
Закрыта.
  1. sinoptik1

    sinoptik1 Гость

    Привет всем.Ребята разъясните такую ситуёвину.Есть файл 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 скрипта. С уважением Андрей
     
Загрузка...
Похожие Темы - Проблемы со скриптом
  1. Валентин Амбер
    Ответов:
    11
    Просмотров:
    346
  2. Zoger
    Ответов:
    2
    Просмотров:
    1.737
  3. k85
    Ответов:
    1
    Просмотров:
    1.232
  4. Soulcall
    Ответов:
    2
    Просмотров:
    1.941
  5. Amfion
    Ответов:
    3
    Просмотров:
    1.971
Статус темы:
Закрыта.

Поделиться этой страницей