Артефакт в форме.

gufy

Новичок
Артефакт в форме.

В форме имеются инпуты типа текст, имена которых имеют вид названия файла, т.е. <input type='text' name='foto.jpg'> каково же было мое удивление, когда я узнал, что определяется не $_POST['foto.jpg']($_GET['foto.jpg']), а $_POST['foto_jpg']($_GET['foto_jpg'])! никогда не слышал о такой замене:) php какой-то из 4.3.x apache 2.0.x
 

Demiurg

Guest
а тебя не удивляет, что переменную с точкой создать нельзя ?
 

gufy

Новичок
так я и не просил создавать переменную с точкой:) меня удивило, что точка заменилась именно на _ . а в индексе ассоциативного массива чем точка может помешать? с объектом не перепутать:)
 

gregor

Guest
gufy

попробуй переменную через substr_replace($your_var, '', -4)
 

Кром

Новичок
>Извините, а чём бред?

В том, что твой совет совершенно не в тему. Мало того, что он кривой, так еще и криво исправляет кривую логику скрипта.
 

gufy

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

icechel

Новичок
Взято из мануала.

Точки в именах приходящих переменных
Как правило, PHP не меняет передаваемых скрипту имен переменных. Однако следует отметить, что точка не является корректным символом в имени переменной PHP. Поэтому рассмотрим такую запись: <?php
$varname.ext; /* неверное имя переменной */
?>
В данном случае интерпретатор видит переменную $varname, после которой идет оператор конкатенации, а затем голая строка (то есть, не заключенная в кавычки строка, не соответствующая ни одному из ключевых или зарезервированных слов) 'ext'. Очевидно, что это не даст ожидаемого результата.

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

Кром

Новичок
gufy
Ты правильно сделал, что обратился. И "окрики" у нас добрые.

icechel
Если здесь приводится ссылка, это значит, что достаточно сходить по ней и почитать что там написано.
 
Сверху