Здравствуйте! Уже сломал голову, не понимаю, почему не работает такой код: PHP: <?php // получаем переменную curws из селектора wslist в форме $curws = $_POST ['wslist']; // переменные $dbtable и $connection заданы в скрипте //пользователь $user = 'u1'; // таблица БД, из которой скрипт берёт информацию $dbtable = 'vhosts_kp'; //подключаемся к базе данных $connection = mysqli_connect('localhost', '***', '***', '***'); //запрашиваем необходимые данные с помощью SQL-запроса $cursite = mysqli_query ($connection, "SELECT * FROM $dbtable WHERE name = '$curws' "); // с помощью функции mysqli_fetch_array выводим результат SQL запроса в массив, //который у нас содержится в переменной $cursitearr $cursitearr = mysqli_fetch_array ($cursite); //получаем переменную name из массива cursitearr $name = $cursitearr['name']; //запускаем сессию session_start (); //кладём в сессию переменную $name $_SESSION['name'] = $name; //если нажата кнопка "Сохранить" if (isset ($_POST ['save'])) { //присваиваем переменной namev сохранённое в сессии значение переменной name $namev = $_SESSION["name"]; //выводим переменную namev echo $namev; echo '<br>'; echo "aliasc = $aliasc"; echo '<br>'; echo "namec = $namec"; echo '<br>'; echo " emailc = $emailc"; } ?> Результат выполнения кода: aliasc = ServerAlias zinc.ru namec = arg.ru emailc = admin@rovel.ru Т.е. переменная namev не выводится, либо в неё записывается пустая строка.
PHP: <?php error_reporting ( E_ALL ); var_dump ( $_POST ); # сам код... вар дамп что выведет в спойлере ответь + возможные ошибки noticle
Должен сверху выводимого информации юзерам и использовании $_SESSION --- Добавлено --- либо выведет Warning: Cannot add header information - headers already sent by
Получаем переменную name с помощью метода POST из селектора формы (кнопка "Открыть") - первый POST-запрос PHP: var_dump ( $_POST ); array(1) { ["wslist"]=> string(9) "ferrum.ru" } Сохраняю изменения (нажимаю на кнопку сохранить изменения - второй POST запрос) PHP: var_dump ( $_POST ); array(7) { ["name"]=> string(9) "ferrum.ru" ["alias"]=> string(23) "ServerAlias argentum.ru" ["charset"]=> string(5) "UTF-8" ["email"]=> string(10) "zirc@am.ru" ["indexfiles"]=> string(20) "index.php index.html" ["save"]=> string(37) "Сохранить изменения" ["data"]=> array(5) { [3]=> array(4) { ["email"]=> string(8) "dd@dd.ru" ["indexfiles"]=> string(20) "index.php index.html" ["alias"]=> string(15) "ServerAlias ddd" ["charset"]=> string(5) "UTF-8" } [4]=> array(4) { ["email"]=> string(9) "zirc@a.ru" ["indexfiles"]=> string(20) "index.php index.html" ["alias"]=> string(23) "ServerAlias argentum.ru" ["charset"]=> string(5) "UTF-8" } [5]=> array(4) { ["email"]=> string(14) "admin@rovel.ru" ["indexfiles"]=> string(20) "index.php index.html" ["alias"]=> string(19) "ServerAlias zinc.ru" ["charset"]=> string(5) "UTF-8" } [6]=> array(4) { ["email"]=> string(14) "admin@rovel.ru" ["indexfiles"]=> string(20) "index.php index.html" ["alias"]=> string(19) "ServerAlias zinc.ru" ["charset"]=> string(5) "UTF-8" } [9]=> array(4) { ["email"]=> string(13) "email@mail.ru" ["indexfiles"]=> string(20) "index.php index.html" ["alias"]=> string(21) "ServerAlias google.ru" ["charset"]=> string(5) "UTF-8" } } }
$_POST['wslist'] пустой, смотри <form><input name="wslist" value="..."> отсутствует --- Добавлено --- про SQL Injection почитайте
PHP: echo '<form method = "post">' ; echo '<select name = "wslist">'; while($weblist = mysqli_fetch_array ($list)) { echo "<option value = \"{$weblist['name']}\">{$weblist['name']}</option>"; } echo '</select>'; echo '<input type = "submit" value = "Открыть">'; echo '</form>'; это селектор wslist вот переменная list PHP: $list = mysqli_query ($connection, "SELECT name FROM $dbtable WHERE userid = '$user' "); --- Добавлено --- Вот весь код
будем методом тыка делать 33 строка заменить на: PHP: $_SESSION['name'] = $name; var_dump ($cursitearr); верху: PHP: session_start (); error_reporting ( E_ALL ); var_dump ( $_SESSION ); все полученные значение с var_dump сюда отправь, конфидициальное если есть звездочками оффни
Так-с. попробовал PHP: var_dump ($_SESSION) POST-запрос "Открыть" - PHP: array(1) { ["name"]=> string(9) "ferrum.ru" } POST_запрос "Сохранить изменения" - PHP: array(1) { ["name"]=> NULL }
Уже решил проблему так: PHP: if (isset ($_POST ['wslist'])) { $curws = $_POST ['wslist']; $cursite = mysqli_query ($connection, "SELECT * FROM $dbtable WHERE name = '$curws' "); $cursitearr = mysqli_fetch_array ($cursite); $name = $cursitearr['name']; $_SESSION['name'] = $name; }