Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sesje] o co chodzi z tym if'em?
Forum PHP.pl > Forum > PHP
PMadej
Skrypt prosty ale mam z nim jeden problem. Dziala na zasadzie przyjmowania i wpisywania do tablicy imion (szablon w smarty) i zapisywania ich do sesji. gdy nie bylo if'a zaznaczonego w kodzie jako pierwszy rekord zapisywal do sesji wartosc pusta, poniewaz zmienna $_POST['imie'] ktora wysyla formularz jest pusta. Wcisnalem if'a zeby przy wartosci pustej nie zapisywal do zmiennej sesyjnej i efekt jest taki ze zapisuje mi tylko ostatnio wprowadzona wartosc a poprzednie traci, dodam ze mam wylaczone register_globals i chce zeby tak zostalo

[php:1:89e2b18d2d]<?php
session_start();
if ($_POST['sesja'] == "tak") {
session_destroy();
}

//config smarty
require('./smarty/libs/Smarty.class.php');
$smarty = new Smarty;

$smarty->compile_check = true;
$smarty->debugging = false;

$smarty->template_dir = './template/';
$smarty->compile_dir = './template_c/';
$smarty->config_dir = './config/';
$smarty->cache_dir = './cache/';

$smarty->display('header.tpl');

//z tym ifem jest problem
if ($_POST['imie']!="") {
$_SESSION['imie2'] = array_merge($_SESSION['imie2'],$_POST['imie']);
}

$imie3="test";
print ($_POST['imie']);
print_r($_SESSION['imie2']);
//print($sesja);
$smarty->assign(array("imie2"=>$_SESSION['imie2'],"imie3"=>$imie3));


$smarty->display('index.tpl');
$smarty->display('footer.tpl');
?>[/php:1:89e2b18d2d]
patrycjusz
spróbuj
[php:1:e90e79f89a]<?php
if(!empty($_POST['imie']))
{
//....
}
//lub
if(!$_POST['imie'])
{
}
// i jeszcze jedno
//$smarty->assign( chyba powinno przyjmować dwa argumenty no i to nazwe tablicy co uzyłeś.. gdzie jest nazwa tej tablicy?
$smarty->assign('imiona',array('imie2'=>$_SESSION['imie2'],'imie3'=>$imie3));
?>[/php:1:e90e79f89a]
Pozdro
PMadej
co do smarty->assign to masz racje ze powinny byc dwa argumenty, ale bez nich tez dziala ... ten skrypt ma pare miesiecy a teraz przerabiam go na register_globals = off i przyznam sie nie pamietam dlaczego akurat tak to napisalem smile.gif

i juz dziala ... co najciekawsze bez zadnych wiekszych zmian, chyba mialem jakas literowke w kodzie.

PS po paru miesiacach wracam do php
scanner
Cytat
co do smarty->assign to masz racje ze powinny byc dwa argumenty, ale bez nich tez dziala ...
Pod warunkiem, że:
jeśłi jest tylko jeden argument, jest on tablicą asocjacyjną.
http://smarty.php.net/manual/en/api.assign.php
PMadej
Cytat
Pod warunkiem, że:
jeśłi jest tylko jeden argument, jest on tablicą asocjacyjną. http://smarty.php.net/manual/en/api.assign.php


a w moim kodzie tak jest czyli wszystko w porzadku z nim ?
scanner
Jełśi chodzi o assign() to tak.
Inna sprawa, ze nie rozumiem tego dość skomplikowanego żonglowania $_POST i $_SESSION...
PMadej
testuje sobie przesylanie danych postem i zapis ich do sesji w formie tablicy przy register_globals = off ... i na taki pomysl osiagniecia tego wpadlem ... szablon do tego wyglada tak:[xml:1:d0efc1a997]<form action="{$PHP_SELF}" method="post">
<input type="text" name="imie"><br>
Zniszczyć sesję?<br />
<input type="radio" name="sesja" value="tak">TAK<br />
<input type="radio" name="sesja" value="nie" checked>NIE<br />
<input type="submit" value="Podaj imię"/>
</form>

<table border>

{section name=imiona loop=$imie2}
<tr><td>{$imie2[imiona]}</td></tr>
{/section}
</table>
$imie3 to {$imie3}
[/xml:1:d0efc1a997] i pobiera imiona i wyswietla je potem w formie tabeli ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.