подлая PHPSESSID!

artem2005

Новичок
подлая PHPSESSID!

Раньше пользовался PHP 4.0.6, поменял теперь на PHP 4.3.3
Работает все это под Linux.
Проблема в следующем. После того как сабмитишь форму, всегда первая пременная теперь PHPSESSID. Как избавиться от этого? Дело в настройках PHP?
 

Фанат

oncle terrible
Команда форума
а ты так и перебираешь форму - по порядку полей, а не по именам?
 

artem2005

Новичок
Например есть форма.
<form ..... name=form1 onSubmit="return onSub();">
<input type=text name=name1>
<input type=text name=name2>
..............
<input type=submit name=submit>
</form>

и есть например такой обработчик:

function onSub()
{
alert(document.form1.elements[0].name);
return false;
}

так вот при сабмите в окошке пишется не "name1" а "PHPSESSID". Когда работал с прошлой версией этого не было..
 

Demiurg

Guest
php тут не причем. посмотри получаемый html-код твоей формы.
 

Фанат

oncle terrible
Команда форума
обратись в форум по яваскрипту, там тебе объяснят, как обращаться к элементам формы ПРАВИЛЬНО, а не так как это делаешь ты.

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

artem2005

Новичок
действительно, в получаемом html коде сразу после тэга <form> стоит
<INPUT TYPE="HIDDEN" NAME="PHPSESSID" VALUE="ov4X7w5Aje4aj56rJp83">
От этого все таки как то можно избавиться?
 

Фанат

oncle terrible
Команда форума
(тяжело вздохнув...) я тебе уже писал.
Можно, если тебе не нужны сессии.
Не нужно, если обращаться к элементам формы правильно.
 

artem2005

Новичок
Тоже вздохнув... Представим что мне НЕ нужны сессии. Как избавиться от этого? Ну интересно мне в конце концов!! :)
 

Фанат

oncle terrible
Команда форума
Если тебе не нужны сессии, то не надо писать в своем скрипте session_start()

если данной строчки в скриптах не обнаружено, то это значит, что надо срочно бежать от провайдера. Именно срочно и именно бежать искать другой хостинг, вменяемый.

поскольку здесь уже проблема не в PHPSESSID а в адекватности админов места, которому ты доверил свой сайт
 

Фанат

oncle terrible
Команда форума
Ну, или если ты сам настраиваешь конфиг веб-сервера, то не надо писать в php.ini или httpd.conf session.auto_start = 1
 

artem2005

Новичок
угу...
дело в том что я айдишник сессии передаю отдельно, в своей переменной, то есть у меня скрипт начинается
<?
session_id($id);
session_start();
..........

так вот при использовании предыдущей версии того о чем говорилось выше не наблюдалось.. вот я и пытаюсь выяснить в чем тут дело..
 

Фанат

oncle terrible
Команда форума
дело в том, что ты, как и очень многие, пытаешься переделывать механизм сессий, не понимая ни как он устроен, ни для чего его применять можно.

Решить все твои проблемы можно. Это очень просто.
Пиши и на РНР и на яваскрипте в соответствии со стандартами.
и все у тебя будет работать.
 

artem2005

Новичок
Хорошо, посоветуй пожалуйста как быть. Скрипты работают из-под фреймов, и если не указывать идентификатор, то сессия теряется.
 

Фанат

oncle terrible
Команда форума
как интересно.
ты указываешь идентификатор? А откуда его берешь? Оен у тебя один на всех, что ли?

А быть очень просто.
точнее никак не надо.
у тебя в конфиге стоит use_trans_sid и идентификатор будет нормально передаваться.

а в яваскрипте используй getElementById
 

artem2005

Новичок
Спасибо за помощь!

В .htaccess добавил строчку:
php_value session.use_trans_sid 0

Теперь PHPSESSID перестала появляться где ее не просят!
 

Линк

Guest
там тебе объяснят, как обращаться к элементам формы ПРАВИЛЬНО, а не так как это делаешь ты
Фанат, ты друг Альтекса? Или просто жаждишь ссылку на спецификацю JS от Netscape?
Так на же:

http://search.netscape.com/ns/boomframe.jsp?query=elements+of+form+++javascript&page=1&offset=0&result_url=redir?src=websearch&amp;requestId=72d40baa2907d040&amp;clickedItemRank=6&amp;userQuery=elements+of+form+%2B+javascript&amp;clickedItemURN=http%3A%2F%2Fwww.devguru.com%2FTechnologies%2Fecmascript%2Fquickref%2Fform.html&amp;invocationType=-&amp;fromPage=NSCPResults&remove_url=http://www.devguru.com/Technologies/ecmascript/quickref/form.html

document.forms ни чуть не менее грамотно, нежели домовский getelementbyid.. только совместимость лучше.
 

Crazy

Developer
Линк, независимо от document.forms обращаться к полям формы по их числовым индексам есть признак малограмотности.
 

Линк

Guest
Crazy, да) Да и form1 лучше писать как forms['имя'], но дело то не в этом) Просто после появления dom, некоторые стали прямо таки считать ошибочной старую модель. Между тем она вполне работоспособна.
 

Фанат

oncle terrible
Команда форума
artem2005, я не сомневался, что из всех вариантов ты выберешь самый тупой, оставляющий часть юзеров без сессий.
молодец - так держать.
Всегда делай не как правильно, а как проще.

Линк, на тупые вопросы мне отвечать лень.
 

JVN

Guest
2 Фанат: не обижай чела :)))
2 artem2005: зря ты отключил session.use_trans_sid
Теперь пользователи, у которых отключены кукисы остануться без сессий.
Положись на PHP-шный механизм передачи индентификатора сессии и не изобретай велосипед.
 
Сверху