ФорумПрограммированиеPHP для идиотов → всем привет я тут новичек =)

всем привет я тут новичек =)

  • romawka_ural

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 20:38

    есть вопрос: при обновлении страницы идет повторное добавление в базу, как с этим бороться? header пробовал но неустроивает тем что скрипт находится в месте с формой на одно странице. если можно с примерами =) За ранее Очень благодарен.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 7 июля 2008 г. 20:52, спустя 14 минут 28 секунд

    покажи свой пример, ромаука_урал
    все умрут, а я изумруд
  • romawka_ural

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 21:01, спустя 8 минут 47 секунд


    <html>
    <head>
    <title>1</title>
    </head>
    <body>
    <form method="post" action="rewenie2.php">
    Enter Name: <input type="text" name="name" value="<?php echo $_POST['name']?>"/>
    Enter user name: <input type="text" name="uname" value="<?php echo $_POST['uname']?>"/>
    Enter Password (must contain at least 4 characters): <input type="password" name="pass"/>
    <input type="submit" name="submitB" value="Submit"/>
    </form>


    <?php
    $host="localhost";
    $mn="root";
    $mp="root";
    $db="reg_user";

    if ($_POST['submitB'] == "Submit"){
    $error=true;
    if($_POST['name']==""){
    echo "введите свое Имя<br/>";
    $error=false;
    }else{
    $name=$_POST['name'];
    }
    If($_POST['uname']==""){
    echo "Введите имя пользователя<br/>";
    $error=false;
    }else{
    $uname=$_POST['uname'];
    }
    if($_POST['pass']==""){
    echo "ведите пароль<br/>";
    $error=false;
    }elseif(strlen($_POST['pass'])<4){
    echo "короткий пароль<br/>";
    exit;
    }else{
    $password=$_POST['pass'];
    }
    if($error==true){

    $conn=mysql_connect($host,$mn,$mp);
    $db=mysql_select_db($db,$conn);
    $sql="INSERT INTO users"."(user_name,user_login,user_password) VALUES ('$name','$uname','$password')";
    $rs=mysql_query($sql,$conn);
    mysql_close($conn);
    header('Location: '.$_SERVER['PHP_SELF']);
    exit;
    }
    }
    ?>
    </body>
    </html>

  • romawka_ural

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 21:11, спустя 10 минут 25 секунд

    пример показал =)
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 21:20, спустя 8 минут 45 секунд

    Перенеси обработку в другой скрипт, с него редирект. Или делай хеадер с гет-параметром.
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи

    Spritz 7 июля 2008 г. 21:21, спустя 39 секунд

    поменяй местами пхп и хтмл
    header('Location: '.$_SERVER['PHP_SELF']) - отработает только в том случае, если в бразер до него не выведено ни одного символа
    http://phpfaq.ru/headers
  • romawka_ural

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 21:42, спустя 21 минуту 15 секунд


    Перенеси обработку в другой скрипт, с него редирект. Или делай хеадер с гет-параметром.

    а можно поподробнее? плиз =)
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 21:49, спустя 7 минут 11 секунд

    script.php:
    if (isset ($_POST['submit'])) {
    // обрабатываем входящие данные
    header ("Location: script.php?added");
    } elseif (isset ($_GET['added'])) {
    // спасибо, добавлено, проверено, все ок
    } else {
    // выводим форму
    }
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи

    Spritz 7 июля 2008 г. 21:59, спустя 9 минут 40 секунд

    sap, нафиг гет-параметр, если можно проверить содержимое поста?
    и, кстати, логичнее хедер отсылать только в случае $error == true;
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 22:05, спустя 5 минут 48 секунд

    Если post пустой, откуда знать, после хеадера это или нет, если оно все в одном файле.
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи

    Spritz 7 июля 2008 г. 22:52, спустя 47 минут 43 секунды

    а зачем это знать нужно?
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 22:58, спустя 5 минут 4 секунды

    Чтобы выводить разный текст.
  • romawka_ural

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 23:34, спустя 36 минут 44 секунды

    Ребята всем спасибо …разобрался =), а теперь проблема состоит в другом пока сам лазию ищю в инете: руссие символы вообще невносятся в базу а вот инглишь и цифры вносит, ладно понимаю если было бы ???????, а тут ничего непишит =(

    вот дополнение к коду выше:

    $conn=mysql_connect($myhost,$myname,$mypass)or die ("немогу подключится");
    $db=mysql_select_db($mybd,$conn) or die ("немогу выбрать базу!");

    $sql="INSERT INTO user"."(name,password) VALUES ('$name','$password')";
    $rs=mysql_query($sql,$conn);

    mysql_close($conn);

    echo "ваше <b>Имя</b>:\n".$name."<br>";
    echo "ваш <b>Пароль</b>\n".$password."<br>";
    echo "<a href=http://localhost/news/i/index.php>войти</a>";


  • romawka_ural

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 23:37, спустя 2 минуты 23 секунды

    я тут нашел коечто: сначало настроить php.ini на кодировку cp1251 или в каждом запросе писать

    mysql_connect('localhost', 'логин', 'пароль');
    mysql_select_db('имяБД');
    mysql_query('SET NAMES cp1251');

  • romawka_ural

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 7 июля 2008 г. 23:40, спустя 3 минуты 33 секунды

    так теперь появились ?????? =)))) но хоть что то получилось ;)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!