1

Тема: Проблема з формою входу

[color= blue]
Привіт добрим веб-програмістам! :)  пишу нову проблему сайт, і виникла помилка!  :o
По ідеї, якщо вірний логін і пароль, то користувач попадає на сторінку вітання, але це НЕ ПРАЦЮЄ!(зовсім нічого не робиться тільки в адресному рядку додається текст введений в полях)
Сервер пише: Notice: A session had already been started - ignoring session_start() in C:\xampp\htdocs\OnlineTernopil\login.php on line 2[/color]

ось код:

<?php
session_start();
include"includes/connection.php";
if(isset($_POST['login'])){
    $email = mysqli_real_escape_string($con,$_POST['email']);
    $pass = mysqli_real_escape_string($con,$_POST['pass']);
    $get_user = "select * from `users` where `user_email` = '$email' AND `user_pass`='$pass'";
    $run_user = mysqli_query($con,$get_user);
    $check = mysqli_num_rows($run_user);

    if($check == 1){
        $_SESSION['email'] = $email;
        echo"<script>window.open('home.php','_self');</script>";
    }
    else{
        echo"<script>alert('Пароль або емейл введено невірно!');</script>";
    }
}
?>

ось код форми:

                                <form action="" method="post">
                                    <strong>Емейл</strong>
                                    <input type="email" name="email" class="form-control" placeholder="Емейл" required>
                                    <strong>Пароль</strong>
                                    <input type="password" name="pass" class="form-control" placeholder="Пароль" required>
                                    <button class="btn" name="login">Увійти</button>
                                </form>

Дякую добрим програмістам які є на цьому форумі! :)

Подякували: 221VOLT1

2 Востаннє редагувалося 221VOLT (24.01.2017 12:00:43)

Re: Проблема з формою входу

Notice: A session had already been started - ignoring session_start()
ймовірно означає що є вивід перед сесією -- тобто є BOM (якщо сесія спереді справді не стартує в інклуді чи щось таке)
потрібно - наприклад в Notepad++ вибрати кодування-перетворити в UTF8 without BOM і зберегти

p.s.

include"includes/connection.php";

воно точно працює?
класично пишеться

include("includes/connection.php");

або ж хоча б пробіл після include

Подякували: ostap34PHP1

3

Re: Проблема з формою входу

221VOLT написав:

Notice: A session had already been started - ignoring session_start()
ймовірно означає що є вивід перед сесією -- тобто є BOM (якщо сесія спереді справді не стартує в інклуді чи щось таке)
потрібно - наприклад в Notepad++ вибрати кодування-перетворити в UTF8 without BOM і зберегти

p.s.

include"includes/connection.php";

воно точно працює?
класично пишеться

include("includes/connection.php");

або ж хоча б пробіл після include

Ви мали на увазі в notepad++ вибрати кодування\кодувати в utf-8 без бум, зробив так, і переробив на

include("includes/connection.php");

але далі таке саме, і що мені робити? *SORRY*

4

Re: Проблема з формою входу

Прихований текст

можливо ви два рази викликаєте session_start ?

Подякували: ostap34PHP1

5

Re: Проблема з формою входу

До чого тут BOM? І назва функції, і повідомлення стосуються сесій, а не запису в хедер після початку документу. Хіба що саме повідомлення, що сесія вже стартувала, призводить до помилки запису в хедер (про що, однак, не повідомляється ніде, тому навряд). Повідомлення стосується повторного створення сесії і, в принципі, неважливе.

Спробуйте перемістити

session_start();

після рядка

if($check == 1){

Або закоментуйте session_start() — просто щоб побачити, як воно поводитиметься без.

Тепер, чому нічого не відбувається. По-перше, кнопці треба поставити атрибут type="submit" . Крім того, можливо, при POST-запитах поля кнопок не передаються — впишіть замість isset($_POST['login']) якесь інше поле — наприклад, isset($_POST['email'])

Подякували: ostap34PHP, 221VOLT2

6

Re: Проблема з формою входу

Сестема така: в index.php під'єднується header,footer, і login.php.
В login.php: коли нажата кнопка login і якшо пароль правильний то користувач потрапляє на сторінку home.php, а якшо ні - то тоді повідомлення про те шо пароль чи емейл неправельний(якшо незрозуміло)

7

Re: Проблема з формою входу

P.Y. написав:

До чого тут BOM? І назва функції, і повідомлення стосуються сесій, а не запису в хедер після початку документу. Хіба що саме повідомлення, що сесія вже стартувала, призводить до помилки запису в хедер (про що, однак, не повідомляється ніде, тому навряд). Повідомлення стосується повторного створення сесії і, в принципі, неважливе.

Спробуйте перемістити

session_start();

після рядка

if($check == 1){

Або закоментуйте session_start() — просто щоб побачити, як воно поводитиметься без.

Тепер, чому нічого не відбувається. По-перше, кнопці треба поставити атрибут type="submit" . Крім того, можливо, при POST-запитах поля кнопок не передаються — впишіть замість isset($_POST['login']) якесь інше поле — наприклад, isset($_POST['email'])

Поставив я атрибут submit, так само непрацює як було(В адресний рядок вертає введене з полів), коментував session_start, непрацює як було(В адресний рядок вертає введене з полів), але без помилки, а останню я незрозумів -  "впишіть замість isset($_POST.......",дякую, є ще ідеї, буду дуже-дуже вдячний, бо не працює *SORRY*  *SORRY*  *SORRY*

8

Re: Проблема з формою входу

ost.bregin2014 написав:

В адресний рядок вертає введене з полів

Чому дані передаються методом ґет, коли стоїть метод пост?

В цьому і проблема, що не виконується блок.

if(isset($_POST['login'])){}
Подякували: ostap34PHP1

9

Re: Проблема з формою входу

тільки в адресному рядку додається текст введений в полях

До речі, не уявляю, як викладений тут код міг таке зробити. Виглядає так, ніби форма використовує метод get (а не post).

Подякували: ostap34PHP, 221VOLT2

10

Re: Проблема з формою входу

NagarD написав:
ost.bregin2014 написав:

В адресний рядок вертає введене з полів

Чому дані передаються методом ґет, коли стоїть метод пост?

В цьому і проблема, що не виконується блок.

if(isset($_POST['login'])){}

Не знаю як таке виходить, в мене в коді method="post" (прокрутіть наверх, в першому повідомлені код)

11

Re: Проблема з формою входу

P.Y. написав:

тільки в адресному рядку додається текст введений в полях

До речі, не уявляю, як викладений тут код міг таке зробити. Виглядає так, ніби форма використовує метод get (а не post).

Це загатка на якій все крутиться *PARDON*

12

Re: Проблема з формою входу

Дякую за підказки, є ще ідеї,пропонування,слова,код? :)

13 Востаннє редагувалося NaharD (24.01.2017 16:19:13)

Re: Проблема з формою входу

Пропоную зайти на сторінку форми, натиснути CTRL+U та показати нам, що маємо насправді. І тоді вже будемо думати далі.

Подякували: ostap34PHP, 221VOLT2

14

Re: Проблема з формою входу

-session_start(); 
+if(!isset($_SESSION)) { 
+        session_start(); 
+} 
Подякували: ostap34PHP, 221VOLT2

15

Re: Проблема з формою входу

NagarD написав:

Пропоную зайти на сторінку форми, натиснути CTRL+U та показати нам, що маємо насправді. І тоді вже будемо думати далі.

<!DOCTYPE html>
<html>
    <head>
        <title>Ternopil online.com</title>
        <meta charset="UTF-8">
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <link rel="stylesheet" type="text/css" href="styles/style.css?v=4">
    </head>
    <body class="body">
        <nav class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand" href="#">TernopilOnline.com!</a>
                </div>
                <div id="navbar" class="collapse navbar-collapse">
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="#">Головна</a></li>
                        <li><a href="#contact">Контакти</a></li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <form class="navbar-form navbar-left">
                            <div class="form-group">
                                <form action="login.php" method="POST">
                                    <strong>Емейл</strong>
                                    <input type="email" name="email" class="form-control" placeholder="Емейл" required>
                                    <strong>Пароль</strong>
                                    <input type="password" name="pass" class="form-control" placeholder="Пароль" required>
                                    <input type="submit" value="Увійти">
                                </form>
                            </div>
                        </form>
                    </ul>
                </div>
            </div>
        </nav><br><br><br>
<img src="http://searchtrafficpro.com/wp-content/uploads/2010/06/the-anatomy-of-a-good-seo-link.jpg"  id="photo">
<form action="" method="post" id="form_register">

    <input type="text" name="u_name" class="form-control input" style="width:300px;" placeholder="Введіть ім'я" required>

    <input type="password" name="u_pass" class="form-control input" style="width:300px;" placeholder="Введіть пароль" required>

    <input type="email" name="u_email" class="form-control input" style="width:300px;" placeholder="Введіть email" required>

    <input type="text" name="u_area" class="form-control input" style="width:300px;" placeholder="Назва області, села" required>

    <select class="form-control input" name="u_genger" style="width:300px;" required>
        <option>Виберіть стать:</option>
        <option>Чоловік</option>
        <option>Жінка</option>
    </select>

    <input type="date" name="u_birthday" style="width:300px;"  class="form-control input" required>

    <button name="sign_up" class="btn">Зареєструватися!</button>

</form>
</body>
</html>

16

Re: Проблема з формою входу

koala написав:
-session_start(); 
+if(!isset($_SESSION)) { 
+        session_start(); 
+} 

Пробував, таке саме, неробоче :(

17 Востаннє редагувалося NaharD (24.01.2017 17:17:42)

Re: Проблема з формою входу

Форма в формі. Якщо не вказаний атрибут method, то форма відправиться за допомогою медоду ґет, що і спостерігаємо. Виправляйте.

Подякували: 221VOLT, varkon, ostap34PHP3

18

Re: Проблема з формою входу

P.Y. написав:

До чого тут BOM? І назва функції, і повідомлення стосуються сесій, а не запису в хедер після початку документу. Хіба що саме повідомлення, що сесія вже стартувала, призводить до помилки запису в хедер (про що, однак, не повідомляється ніде, тому навряд). Повідомлення стосується повторного створення сесії і, в принципі, неважливе.

Спробуйте перемістити

session_start();

після рядка

if($check == 1){

Або закоментуйте session_start() — просто щоб побачити, як воно поводитиметься без.

Тепер, чому нічого не відбувається. По-перше, кнопці треба поставити атрибут type="submit" . Крім того, можливо, при POST-запитах поля кнопок не передаються — впишіть замість isset($_POST['login']) якесь інше поле — наприклад, isset($_POST['email'])

точно, перепрошую, неуважно прочитав)
там пише "session had already been started"...
я думав там "headers had already send" натомість :)

Подякували: ostap34PHP1

19

Re: Проблема з формою входу

NagarD написав:

Форма в формі. Якщо не вказаний атрибут method, то форма відправиться за допомогою медоду ґет, що і спостерігаємо. Виправляйте.

Подивіться увіжніше, там(наверху сторінки є код, перше повідомлення) є method post *OK*

20

Re: Проблема з формою входу

Хто роз'яснить мені! *FACEPALM*  чого в мене в коді стоїть post, а в браузері є get?!? *WALL*  *WALL*  *WALL*  %)
Як це виправити, почистити кеш чи шо?
Це дуже б розплутало цю  "Заплутану історію", хто ж  буде дуже довгоочікуваний "Шерлок холмс"??? :)