1

Тема: Задача на PHP

Привіт всім! придумав задачу на php:
1.Припустимо у нас є дві сторінки index.php і home.php
2.На сторінці index.php є форма з входом:

<?php
session_start();
?>
<form action="home.php" method="post">
<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="submit" value="Увійти">
<?php
$email = $_POST['u_email'];
$_SESSION['u_email'] = $email;
?>
</form>

3.На сторінці home.php є таке:

<?php
session_start();
include"includes/connection.php";
//Якщо користувач не був на сторінці index.php то він попадає на index.php
if(!isset($_SESSION['u_email'])){
    header('location:index.php');
}
else{
//Куча php........
?>
//Куча html..........
<?php } ?>

4.Cуть задачі така:Навіть якщо користувач був на index.php і форма обробляється home.php то він все одно попадає на index.php, що в цьому коді зроблено не так? *YES* ...

2

Re: Задача на PHP

Закинь повний код сюди pastebin.com

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

3

Re: Задача на PHP

Cannoneer написав:

Закинь повний код сюди pastebin.com

Закинув:
код форми(index.php):http://pastebin.com/hEPkLKiD
код home.php : http://pastebin.com/zPw3eWcM

4

Re: Задача на PHP

Що це таке?

ost.bregin2014 написав:
<?php
$email = $_POST['u_email'];
$_SESSION['u_email'] = $email;
?>

І це?

ost.bregin2014 написав:
<?php } ?>

5

Re: Задача на PHP

у вас же ж
ось тут

$email = $_POST['u_email'];

на сторінці із формою, а форма відсилає пост дані на сторінку home.php
бачите проблему?

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

6

Re: Задача на PHP

Cannoneer написав:

Закинь повний код сюди pastebin.com

Будь ласка

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

7

Re: Задача на PHP

mike написав:

у вас же ж
ось тут

$email = $_POST['u_email'];

на сторінці із формою, а форма відсилає пост дані на сторінку home.php
бачите проблему?

Бачу, а як виправити :)

8

Re: Задача на PHP

вам потрібно записувати дані в сесію в тому місце де вони існують, у вашому випадку $_POST['u_email'] завждив буде не валідним

і до речі як увас це взагалі працює? php не повертає ніяких ворнінгів на рахунок $_POST['u_email'] - що цього ключа взагалі немає?

для того, щоб php виводив всі помилки додайте це до своїх файлів на самому початку

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Подякували: 221VOLT, funivan2

9

Re: Задача на PHP

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

у вас же ж
ось тут

$email = $_POST['u_email'];

на сторінці із формою, а форма відсилає пост дані на сторінку home.php
бачите проблему?

Бачу, а як виправити :)

робіть запис в сесію на сторінці home.php а не index.php

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

10

Re: Задача на PHP

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

у вас же ж
ось тут

$email = $_POST['u_email'];

на сторінці із формою, а форма відсилає пост дані на сторінку home.php
бачите проблему?

Бачу, а як виправити :)

робіть запис в сесію на сторінці home.php а не index.php

Це нічого не міняє:
Notice: Undefined index: u_email in C:\xampp\htdocs\OnlineTernopil\home.php on line 5
Дані з u_email не беруться...

11 Востаннє редагувалося Cannoneer (29.01.2017 13:52:46)

Re: Задача на PHP

http://pastebin.com/5zk2AdjA
Це форма

З неї(index.php) дані відпавляються на home.php, а потім перенаправлення на index.php.

Cannoneer написав:
Cannoneer написав:

Закинь повний код сюди pastebin.com

Будь ласка

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

12

Re: Задача на PHP

Cannoneer написав:

Що це таке?

ost.bregin2014 написав:
<?php
$email = $_POST['u_email'];
$_SESSION['u_email'] = $email;
?>

І це?

ost.bregin2014 написав:
<?php } ?>

::::

<?php } ?>

Тут мається на увазі(home.php) що: Якщо користувач не був на сторінці index.php,(це перевіряється тим чи є

 $_POST['u_email']

) то він попадає на index.php, а якщо таке поле з емейлом є, то продовжується виконання(else{)
і після всієї сторінки else закривається(

<?php } ?>

)

13

Re: Задача на PHP

Cannoneer написав:

http://pastebin.com/5zk2AdjA
Це форма

З неї(index.php) дані відпавляються на home.php, а потім перенаправлення на index.php.

Cannoneer написав:
Cannoneer написав:

Закинь повний код сюди pastebin.com

Будь ласка

Там забагато багато не по задачі, точно скидати?

14

Re: Задача на PHP

ну так бо їх немає а потрібно відправляти із форми що на сторінці index.php

ось приклад вирішення home.php

<?php
session_start();
include"includes/connection.php";

if(!isset($_SESSION['u_email'])){//якщо сесії ще не має
  if(isset($_POST['u_email'])){//обробити форму
    //код обробки форми
    $_SESSION['u_email'] = $_POST['u_email'];//запис в сесію
  }else{
   header('location:index.php');
  }
}

UPD - КОД ОНОВИВ

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

15

Re: Задача на PHP

mike написав:

ну так бо їх немає а потрібно відправляти із форми що на сторінці index.php

ось приклад вирішення home.php

<?php
session_start();
include"includes/connection.php";

if(!isset($_SESSION['u_email'])){//якщо сесії ще не має

  if(isset($_POST['u_email'])){//обробити форму
     
    //код обробки форми
    $_SESSION['u_email'] = $_POST['u_email'];//запис в сесію
  }
   //куча коду...
}else{
   header('location:index.php');
}
Вітаємо! ви відгадали! :)  *DANCE*  *YAHOO*

16

Re: Задача на PHP

ost.bregin2014 написав:

і після всієї сторінки else закривається(

<?php } ?>

)

Те що в else буде виводитися у будь-якому випадку, оскільки воно за дужками <?php  ?>

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

17

Re: Задача на PHP

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

ну так бо їх немає а потрібно відправляти із форми що на сторінці index.php

ось приклад вирішення home.php

<?php
session_start();
include"includes/connection.php";

if(!isset($_SESSION['u_email'])){//якщо сесії ще не має

  if(isset($_POST['u_email'])){//обробити форму
     
    //код обробки форми
    $_SESSION['u_email'] = $_POST['u_email'];//запис в сесію
  }
   //куча коду...
}else{
   header('location:index.php');
}
Вітаємо! ви відгадали! :)  *DANCE*  *YAHOO*

ми не вгадали, а знайшли проблему, це велика різниця.

Мій код наведений вище, я трохи оновив, і все ж таки, я невкурсі, яка у вас логіка показу сторінок, коли юзер залогований чи не залогований

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

18

Re: Задача на PHP

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

і після всієї сторінки else закривається(

<?php } ?>

)

Те що в else буде виводитися у будь-якому випадку, оскільки воно за дужками <?php  ?>

Ви другий відгадавший вітаємо! *DANCE*

19

Re: Задача на PHP

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

і після всієї сторінки else закривається(

<?php } ?>

)

Те що в else буде виводитися у будь-якому випадку, оскільки воно за дужками <?php  ?>

Ви другий відгадавший вітаємо! *DANCE*

це задачки для нас? чи для ВАС?

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

20

Re: Задача на PHP

Ммм... Наскільки я розумію, це щось типу входу на сайт?

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