[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ищезает сесия при использовании<INPUT type=submit>
savelikan
Вот собственно код:
if ( isset( $_GET['folder'] ) ) {$folder = $_GET['folder'];
switch ( $folder ) {
case 28097185:
$password = "123";
$FOLDERname = "28097185";
IF ($_POST['pass'] == $password) {$_SESSION['28097185'] = $_POST['pass'];}else{};
IF ($_SESSION['28097185'] == $password){
echo "
<TABLE width=100% style='border-collapse: collapse'>
<TR background=JPG/system/string_1.jpg><TD width=100%><FONT face=verdana size=3>Приватні документи -
$FOLDERname</FONT></TD>
<TD><A href=index.php><IMG src=JPG/system/button_close.jpg></A></TD></TR>
<TR><TD background=JPG/system/string_2.jpg colspan=2><FONT face='arial' size=2>Ви можете завантажити файли у дану категорію.</FONT></TD></TR>
</TABLE>

<FORM method=POST action=
$mydoc$id28097185>
<FONT face=arial size=3>Файл: <INPUT type=file><INPUT type=submit value='Завантажити файл'></FONT></FORM>
<HR color=CadetBlue width=300 align=left>
<A href=>Посилання</A>
"
;
echo $_SESSION['28097185'];

}else{
echo "
<TABLE width=100% style='border-collapse: collapse'>
<TR background=JPG/system/string_1.jpg><TD width=100%><FONT face=verdana size=3>Приватні документи -
$FOLDERname</FONT></TD>
<TD><A href=index.php><IMG src=JPG/system/button_close.jpg></A></TD></TR>
<TR><TD background=JPG/system/string_2.jpg colspan=2><FONT face='arial' size=2>Ви повинні ввести свій пароль для доступу до цієї папки.</FONT></TD></TR>
</TABLE>
<FONT face=arial size=2>Введіть свій пароль:
<FORM method=POST action=
$mydoc$id28097185>
<INPUT type=text name=pass><INPUT type=submit value='Увійти'></FORM>
</FONT>
"
;
echo $_SESSION['28097185'];

}

break;



}

Если зделать сылку на страничку - работает без проблем, а если загрузить файл - опять отправляет ввести пароль. Посоветуйте что-либо...



Спустя 1 час, 56 минут, 1 секунда (6.11.2009 - 17:07) savelikan написал(а):
Ммм и вот никак не могу понять...
	IF (isset($_GET['dir'])) {$dir = "mydoc/28097185/".$_GET['dir']."";}else{$dir = opendir("mydoc/28097185");};
while($file = readdir($dir)){
IF ($file == "." or $file == "..") {}else{
echo "<A href=".$SITEaddress."windows/mydoc/$FOLDERname/".$file.">$file</A><BR>";
}
}

Если названия файла на английском - все нормально... Но если на русском - проблема вместо названия - какаято буква...

Поетому решил написать. Ответте пожалуйста, а то пол дня голову ламал... и ничего не получилось...

Спустя 4 часа, 7 минут, 25 секунд (6.11.2009 - 21:15) savelikan написал(а):
Помогите с етими вопросами пожалуйста....

Спустя 15 часов, 30 минут, 13 секунд (7.11.2009 - 12:45) savelikan написал(а):
sad.gif

Спустя 31 минута, 19 секунд (7.11.2009 - 13:16) Grazor написал(а):
ээ.. не особо понял, зачем всё это нужно. всё, что могу посоветовать - поставьте в начало страницы session_start();


насчёт кода:
1. зачем эти пустые элсы? (else{}) не нужен else, так можно его и не писать
2. автор знает про отрицание? (IF ($file == "." or $file == "..") {}else{........}) можно просто написать
IF ($file != "." or $file != "..") {...../*оно же самое*/.....}

3. судя по "or" вместо привычного "||", автор перешёл с дельфей, а "<>" (не равно) кидало ошибку)

Цитата (savelikan @ 6.11.2009 - 17:07)
какаято буква

какая буква? от имени файла, или просто кракозябла?

Спустя 41 минута, 35 секунд (7.11.2009 - 13:58) savelikan написал(а):
просто кракозябла... Но просто скрипт написал чтоб он сохранял имя в транслите вот и все... НУ а вот session_start(); обязательно писать в конце страницы? Ведь у меня там
if ( isset( $_GET['folder'] ) ) {$folder = $_GET['folder'];
switch ( $folder ) {
case 28097185:

Если написать session_start(); после case? Типа на каждой саse своя сессия...

Спустя 7 минут, 45 секунд (7.11.2009 - 14:06) Kuliev написал(а):
Цитата (savelikan @ 7.11.2009 - 15:58)
просто кракозябла... Но просто скрипт написал чтоб он сохранял имя в транслите вот и все... НУ а вот session_start(); обязательно писать в конце страницы? Ведь у меня там
if ( isset( $_GET['folder'] ) ) {$folder = $_GET['folder'];
switch ( $folder ) {
case 28097185:

Если написать session_start(); после case? Типа на каждой саse своя сессия...

В самом начале скрипта поставьте SESSION_START();

Спустя 27 минут, 25 секунд (7.11.2009 - 14:33) savelikan написал(а):
Не получается. После нажатися на ссылку опять хочет пароль. ВОт код:
<?php
SESSION_START();
if ( isset( $_GET['folder'] ) ) {$folder = $_GET['folder'];
switch ( $folder ) {
case 28097185:
IF($_POST['pass'] == '123') {$_SESSION['28097185'] = '123';};
IF ($_SESSION['28097185'] == '123') {
$FOLDERname = "28097185";
//-----Якщо присутні дані про видалення файлу
IF (isset($_GET['delete'])) {@$delete = unlink("./mydoc/28097185/$_GET[delete]");}
//-----Шапка сторінки
echo "
<TABLE width=100% style='border-collapse: collapse'>
<TR background=JPG/system/string_1.jpg><TD width=100%><FONT face=verdana size=3>Приватні документи -
$FOLDERname</FONT></TD>
<TD><A href=index.php><IMG src=JPG/system/button_close.jpg></A></TD></TR>
<TR><TD background=JPG/system/string_2.jpg colspan=2><FONT face='arial' size=2>
<A href=
$mydoc><<< Повернутися назад</A>
<A href=
$mydoc$id28097185&action=loadfile>Завантажити файл</A>
<A href=
$mydoc$id28097185>Оновити</A>
<A href=
$mydoc$id28097185&action=sessionclose>Завершити сеанс</A>
</FONT></TD></TR>
</TABLE>
"
;

//-----Якщо присутні дані про додавання файлу
IF (isset($_FILES["filename"]["name"])) {
include 'functions.php';
$FILEname = uaeng ($_FILES["filename"]["name"]);
if( is_uploaded_file($_FILES["filename"]["tmp_name"]) && copy($_FILES["filename"]["tmp_name"],"mydoc/28097185/".$FILEname)){};
}

//---Якщо присутня дія
IF (isset($_GET['action'])) {$action = $_GET['action'];
switch ( $action ) {
case loadfile:
echo "
<FORM action=
$mydoc$id28097185 method=post enctype=multipart/form-data>
<INPUT type=file name=filename>
<INPUT type=submit value='Завантажити файл'>
</FORM>
"
;
$title = "Завантаження файлу на сервер";
break;
case sessionclose:
unset($_SESSION['1']);
session_destroy();
break;
}
}


//-----Показуємо список файлів
$direct = opendir('./mydoc/28097185/');
while (false !== ($file = readdir($direct))) {
IF ($file == "." or $file == "..") {}else{
$Ftype = end(explode(".", $file));
IF ($Ftype == 'avi' or $Ftype == 'mpg') {$IMG = "video.jpg";}
elseif ($Ftype == 'JPG' or $Ftype == 'jpg') {$IMG = "foto.jpg";}
elseif ($Ftype == 'GIF' or $Ftype == 'gif') {$IMG = "animation.jpg";}
elseif ($Ftype == 'MP3' or $Ftype == 'mp3') {$IMG = "mp3.jpg";}
else{$IMG = "file.jpg";};
echo "
<A href=./mydoc/28097185/
$file>
<TABLE width=250 height=70 border=0 style='float: left'>
<TR><TD width=50 align=center><IMG src=JPG/system/
$IMG></TD><TD width=200>
$file<BR>
<A href=
$mydoc$id28097185&delete=$file>Видалити</A>
</TD></TR>
</TABLE>
</A>
"
;
}
}

closedir($direct);
} else {echo"
Для доступу в папку введіть свій пароль:
<FORM method=POST action=
$mydoc$id28097185>
<INPUT type=text name=pass>
<INPUT type=submit>
</FORM>
"
;}


break;
}

Скажите, пожалуйста, где ошибка и как ее исправить?

Спустя 1 час, 12 минут, 13 секунд (7.11.2009 - 15:45) savelikan написал(а):
Ну подскажите пожалуйста...

Спустя 1 час, 30 минут, 21 секунда (7.11.2009 - 17:16) Grazor написал(а):
ну что сказать.. попробуй закомментировать строки где ты сессию закрываешь и попробовать ещё. можт условие где неверно описано?..

Спустя 36 секунд (7.11.2009 - 17:16) savelikan написал(а):
Цитата (Grazor @ 7.11.2009 - 16:16)
ну что сказать.. попробуй закомментировать строки где ты сессию закрываешь и попробовать ещё. можт условие где неверно описано?..

Так ведь пробовал... не помогло


_____________
Одесса - мой город!)))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.