Няколко въпроса за формите

metal_head

Registered
Имам няколко въпроса (последните за деня) относно формите за попълване на информация и изпращането на информацията към базата данни.

Първият ми въпрос е за mysql_connect и mysql_select_db.

Къде е най - хубаво да стоят тези неща? Това, което аз направих е да ги сложа в един файл header.php, който се вика на всяка страница от сайта в началото. Но така ли трябва да е или тези неща трябва да се изпълняват само първият път, когато потребителя влезе в сайта.

Вторият ми въпрос е подобен, но става въпрос за сесиите.

Доколкото разбрах, за да мога да прехвърлям информацията от една форма в променливи и после да ги изпратя в базата данни, трябва да имам стартирана сесия и после, когато натисна бутона Submit да си взема данните от формата с $_REQUEST. Къде трябва да стартирам тази сесия? ОК ли е, ако я стартирам в същият този header.php файл (тоест в началото на всяка новозаредена страница) или има нещо друго? Да кажем, че в сайта има множество форми за попълване, като тази за регистрация, за писане на статии и т.н. Това, което казах със стартирането на сесията в header.php добра идея ли е?


И последно:
Този action параметър във формата така и не ми стана ясен, колкото и да четох за него (в разни чуждестранни сайтове). Доколкото разбрах с него дефинираме къде ще ни прехвърли след като сме събмитнали информацията. Е да, ама гледах един урок тук в сайта за форма за регистрация и там в action-а имаше ?act=register, а по-надолу и функция register. Какво прави точно това с въпросителния знак? Изпълнява дадената функция ли? Аз пробвах това с функцията, като във функцията сложих едно echo с малко текст да видим дали след като натисна бутона ще се появи текста, но не се появи, което ме наведе на мисълта, че функцията не се е изпълнила.
 
1. Да така е най-добре или да имаш информацията в 1 config файл, който го include в header файла или Index-а, за който спомена. Така при всяка страница не е нужно да го добавяш всеки път.

2. Сесия за прехвърляне на информация не е необходима. Със сесията можеш да присвоиш съдържанието на дадена променлива. Взимането на данните с $_REQUEST не е много добра идея. По-скоро прочети за $_POST и $_GET. $_GET взима информацията от url адреса докато $_POST изпраща заявката към сървъра. За да се използват сесии е задължително да има session_start(); още преди началото на html кода. Така, че не само е добра идея а е задължително. :wink:

3. Формата указва къде да прехвърли файла точно след като е submit формата. В случай си гледал урок, който предполагам, че include файловете допълнително. Както казах по-горе с $_GET могат да се вземат параметри. въпросителният знак “отделя“ адреса. Да кажем, че имаме файла index.php?act=register

index.php е файла, който отваряме. ? знак указва, че това е края на файла. act е променлива, която се взима с $_GET метода = задава стойността на тази променлива а register е съдържанието на тази променлива.

Когато потребителят отваря страницата той подава тези параметри към сървъра. Когато с променлива се вземе от заявката може да изпълнява нещо подобно на това.


Код:
<?php
$promenliva=$_GET['act']; //Взимаме съдържанието на act, което е register
include "".$promenliva.".php"; // добавяме файла promenliva.php във файла.
?>

Това, което си видял всъщност задава като действие собственият файл, който си отворил. Малко объркващо но на action може да се зададе празно съдържание и пак ще води към този файл.

<form action="" method="post">

Тази форма малко те е объркала но всъщност като действие се задава същият файл, който си отворил. Не е задължително да имаш 2 файла за изпълнение на регистрация. Просто трябва да се направи проверка дали е submit-ната дадената форма.

Кажи ако искаш конкретни примери. :?:

Поправете ме ако имам грешки.
 
Ейй, благодаря ти за тоя подробен отговор. Почти ми е 100% ясно.
Ето кой урок гледах аз, там ги взима с $_REQUEST:
http://www.web-tourist.net/login/login/view.php?st=1218

Само искам да попитам:
? знак указва, че това е края на файла.
За кой файл става въпрос? За страницата, която в момента сме отворили или страницата, на която ще ни прехвърли след като сме събмитнали? И тоест това означава, че с този въпросителен отиваме на края на файла ли ?

И другото:
а register е съдържанието на тази променлива
Ако можеш да ми дадеш пример за това, защото тук нещо се обърках. Act присвоява register, което от своя страна какво е ? :D
 
1. Зависи от адреса. Ако адреса е само ?neshto=drugoneshto тогава файла, който си отворил . Ако не е то зависи от адреса пред него. registraciq.php?neshto=drugoneshto тогава това се отнася за registraciq.php файла.

С въпросителния делим файла от променливите. Ако тръгнем да пишем index.phpact=register

Така тръгва да отваря index.phpact файл, който не съществува. index.php? Обаче отваря файла index.php и след това се указват другите стойности, които браузъра подава.


2. За пример ще дам следното.

Създай 1 index.php файл. В него сложи.

Код:
<?php
$get=$_GET['act'];
echo $get;
?>

Отвори файла през браузъра и на адреса промени index.php?act=test

Ще ти изкаря съдържанието, което си сложил след act. Всъщност test е просто текст, който взимаш от адреса. По-горният урок, който е взима съдържанието след act и ако намери определен текст изпълнява дадено действие.

Код:
switch($act){ 

default; 
register_form(); 
break; 

case "register"; 
register(); 
break; 

}
Ако адреса е register изпълнява функцията register но по подразбиране изпълнява register_form функцията, която визуализира html кода.
 

Back
Горе