Xwab
Форумыnavigate_nextПрограммирование на PHP

Перезаписывается сессия, как исправить?
Сообщения
Expert

[php:1:974a7d6669]
case "addgame_ok":
// получаем переменные
$name = $_POST['name'];
$C_id = $_POST['cat'];
$description = $_POST['desc_category'];

//получаем изображение
foreach ($_FILES["pictures"]["error"] as $key => $error){
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$namep = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "../game/".$C_id."/img/$namep");

// получаем флеш игру
foreach ($_FILES["g"]["error"] as $key => $error){
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["g"]["tmp_name"][$key];
$nameg = $_FILES["g"]["name"][$key];
move_uploaded_file($tmp_name, "../game/".$C_id."/$nameg");

// Записиваем в сессию название игры, для передачи значения в запись бд
$_SESSION['namegame']=''.$nameg.'';
}}
$query = "INSERT INTO `game`
SET
`name`='{$name}',
`category`='{$C_id}',
`description`='{$description}',
`urlimg`='".$C_id."/img/".$namep."',
`urlgame`='".$C_id."/".$_SESSION['namegame']."'";

$sql = mysql_query($query) or die(mysql_error());
}}
echo 'Игра с назанием &laquo;'.$name.' &raquo; добавлена!<br>';
break;[/php:1:974a7d6669]

Все работает, но проблемы с записью в столбец `urlgame`, постоянно одно и тоже значение:
`urlgame`='".$C_id."/".$_SESSION['namegame']."'";
получаеться к примеру должно быть так:
`urlgame`='9/game.swf'";
Но значение $_SESSION['namegame'] - одно и тоже.
ПОМОГИТЕ МОЗГ УЖЕ НЕ ШАРИТ, как сделать проще или как $_SESSION['namegame'] - дать новое значение кторое есть в переменной $nameg??
Я ставил после цикла: session_destroy(); не помогает
ЕЩЕ делал так: $_SESSION['namegame'], делал рандомным namegame тоже нет результата

02 Окт 2012, 17:10
IceJOKER

во первых фильтруй данные.

хрен поймешь что да как там % ) , для чего тут сессии нужны?


затолкни в привычку записывать код в таком виде

if(...)
{

for(...)
{


foreach(...)
{

}//foreach

}//for

}//if

02 Окт 2012, 17:27
Expert

IceJOKER, так а чем записать переменную $nameg??
после цикла она уже не работает вот и пишу в сессию
фильтровать не обезательно это с универа задание, препод не говорил значит не надо=)

02 Окт 2012, 17:31
IceJOKER

ты вроде бы загружаешь только одну игру, для чего там цикл ?

если загружаешь пачками, то запихни запрос в бд в цикл

02 Окт 2012, 17:37
Okula

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

02 Окт 2012, 17:39
Expert

IceJOKER, я не знаю зачем там цикл, пример был на пхп.ру вот и вставил...
Прикол в том что изображение записывает нормально, а вот игру уже нехочет
Вот с этой формы я получаю результат
[php:1:aa52ae090d]case "addgame":
echo'Добавить игру на сайт:
<form name="" action="index.php?main=addgame_ok" enctype="multipart/form-data" method="post">
<div class="margin_bottom_20 horizontal_divider"></div>
<table>
<tr><th>Название</th>
<td><input name="name" type="text""></td></tr>
<tr><th>Категория</th>';
echo '<td> <select name="cat" size="1"> ';
// Выполняем запрос
// Выводим категории
$query=mysql_query("SELECT * FROM `category`");
// цикл
while($idcategory=mysql_fetch_array($query)) {
// выводим в таком виде
echo '<option value="'.$idcategory[0].'">'.$idcategory[1].'</option>';
}
// Освобождаем память от результата запроса
mysql_free_result($query);
echo '</select></tr></td>
<tr>
<th>Описание</th>
<td><input name="desc_category" type="text""></td></tr>
<tr>
<th>Изображение</th>
<td><input name="pictures[]" type="file" accept="image/*"></td></tr>
<th>Выбрать игру</th>
<td><input name="g[]" type="file" accept="application/x-shockwave-flash"></td></tr>
<td><input type="submit" value="Добавить"></td></tr></table></form>';
break;[/php:1:aa52ae090d]
добавлено спустя 1 минуту:
Okula, будет всегда одно и тоже = это понял
а остальное обьясни а то не понял ничего, как предлагаешь решить проблему?

02 Окт 2012, 17:43
Okula

Expert, вопервых, вытащи вложенный цикл, и помести его после цикла для загрузки изображений.

02 Окт 2012, 17:52
Expert

Okula, переменная $namep существуют только в цикле, вытащу из цикла цикл не будет переменной

02 Окт 2012, 18:13
Okula

Expert, да что ты заладил-то? У тебя два отдельных цикла которые лежат один в другом, а этого быть не должно. Не должно быть вложенных циклов.

02 Окт 2012, 18:35
Expert

Okula, убрал цикл с цикла, а результат?
все равно не выводит переменную $nameg, что с ней сделать чтобы записать ее в бд?

02 Окт 2012, 19:00
Ответить на тему