PHP 5 :)

Informácie o software, ankety...
kuko_killer
Novice
Novice
Príspevky: 4
Registrovaný: 28 júl 2005, 8:30

PHP 5 :)

Príspevok od používateľa kuko_killer »

Zdravim


Robil som stránku pod PHP 4... a nahral som ju na server s PHP 5...

a nastali problémy, používam premenné, ktoré nedeklarujem dopredu, kedže PHP to umožňuje a pracuje s nimi dost dinamicky,

nohláška: Notice: Undefined variable: premenna in ...... ma zaskočila, čo s tým? dá sa deklarovať tak premenná, aby pri

deklarácii nebola prepísaná jej hodnota? a Ako deklarovať tak, že typ premennej sa počas skriptu mení... ?



Ešte jedna otázka, $_POST[] vracia hodnotu hociktorej premennej vrámci skriptu?, aj keď tá premenná nieje z adresového riadku?:

prečo mi toto jednoducho v PHP 4 funguje a v PHP 5 nie? mám problém s tým deklarovaním premenných.
ako by trebalo týchto pár riadkov pozmenit tak aby v PHP 5 boli v pohode?

<html>
<body>

<?php

if ($list == 2) {
echo $tt; // tu dostanem hlášku že UNDEFINED VARIABLE $tt / však PHP má automaticky deklarovať premenné, nie?
$b = $b + 1;
echo $_POST['b'];
}

?>

<form action="index.php?list=2" method="POST">
<input type="hidden" name="tt" value="1">
<input type="submit" value="OK">
</form>

</body>
</html>
TheSearch
Expert
Expert
Používateľov profilový obrázok
Príspevky: 150
Registrovaný: 10 aug 2011, 22:05

Re: PHP 5 :)

Príspevok od používateľa TheSearch »

skus do php kodu doplnit:

Kód: Vybrať všetko

$tt = $_POST['tt']
ja som to tiez musel takto definovat ked som si robil formular na posielanie mailov.
Tim si vlastne definujes premmenu z formulara. POST alebo GET je pouzity tip odosielania formulara a v zatvorkach je meno prvku (name). Dufam ze som pomohol aspon trochu.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP 5 :)

Príspevok od používateľa audiotrack »

och, to zase bude riešení, keď sa niekto pustí do programovania a vie hovno z toho. Tak postupne:
Ešte jedna otázka, $_POST[] vracia hodnotu hociktorej premennej vrámci skriptu?, aj keď tá premenná nieje z adresového riadku?:
wtf? Aký adresový riadok? Nepletieš si to s get? $_POST je superglobálne pole kde sú všetky premenné prenášané metodou post. Adresový riadok s tým nemá nič spoločné
echo $tt; // tu dostanem hlášku že UNDEFINED VARIABLE $tt / však PHP má automaticky deklarovať premenné, nie?
a prečo by to malo php robiť automaticky? Ako si ono má tipnúť či tam chceš boolean, integer, string.. a akú hodnotu má mať? Ono ti má čítať myšlienky? Daj si tam niekde pred tým echom (pred podmienku) $tt = ""; A vôbec neviem čo je to $tt, vari len nepoužívaš register_globals?!
Xauder
Novice
Novice
Príspevky: 9
Registrovaný: 05 aug 2011, 21:21
Kontaktovať používateľa:

Re: PHP 5 :)

Príspevok od používateľa Xauder »

echo $tt; // tu dostanem hlášku že UNDEFINED VARIABLE $tt / však PHP má automaticky deklarovať premenné, nie?
a prečo by to malo php robiť automaticky? Ako si ono má tipnúť či tam chceš boolean, integer, string.. a akú hodnotu má mať? Ono ti má čítať myšlienky? Daj si tam niekde pred tým echom (pred podmienku) $tt = ""; A vôbec neviem čo je to $tt, vari len nepoužívaš register_globals?![/quote]

Tu musim troska upozornit, ze PHP je slabo a dynamicky typovany jazyk, to znamena, ze mu je uplne ukradnuty datovy typ premennej.

co sa tyka toho $tt, tak ak sa jedna o udaj z formulara, tak treba k nemu pristupovat bud cez $_POST['tt'] alebo $_GET['tt']. Zalezi na tom aka je metoda formulara, takze ci v html kode mate

Kód: Vybrať všetko

<form method="post">
alebo

Kód: Vybrať všetko

<form method="get">
. Ak tam je iba

Kód: Vybrať všetko

<form>
tak prednastavene to je myslim GET.
Napísať odpoveď