Avaleht
uus teema   vasta Tarkvara »  WWW »  miks $_GET/POST ei toimi? :O märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
SGM
HV kasutaja

liitunud: 04.12.2005




sõnum 14.01.2008 13:28:42 miks $_GET/POST ei toimi? :O vasta tsitaadiga

Täitsa haige asi mul, pole kunagi varem olnud:
Mul on lehel üks nupp: <input type="button" class="button" value="blaablaa" onClick="document.location.href='?jeee=1';return false;">
ja see nupp enne saatis ilusasti impulsi if(isset($_GET["jeee"])){...} osasse, aga nüüd enam mitte. Täiesti lambist! icon_eek.gif Uurisin koodi, mitte kusagil pole selle "jeee"-ga midagi näpitud enne seda õiget kohta. Tegin isegi form-i selle ühe buttoni asemele, katsetasin isegi $_POST-iga, aga ikka sama jama, et ei lähe kohale! icon_evil.gif Millegipärast teine $_POST läheb kohale! Mõlemad asuvad includitud failis. Peafail includib headeri faili, milles on see button. Header includib veel ühe faili, mis omakorda includib selle $_POST ja $_GET sisaldava faili. Enne kõik toimis, aga ühtäkki enam mitte. Kui panin selle $_GET-i headeri faili, kus ka see button asub, siis jälle nagu toimis... Olen muutnud selle "jeee" nime ka... Midagi ei saa aru! icon_rolleyes.gif
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 14.01.2008 13:44:10 vasta tsitaadiga

Pista kuhugi vahele see ja vaata, kas kuvab sul jee väärtuse. Ma proovisin tuli läbi.
$jeee = $HTTP_GET_VARS['jeee'];
echo $jeee;

Ära seda kuhugi if sisse pane.

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
SGM
HV kasutaja

liitunud: 04.12.2005




sõnum 14.01.2008 14:28:19 vasta tsitaadiga

Mitte kui midagi! icon_evil.gif

Kui niisama midagi seal includitud failis echo'n, (nt. echo "blaa"; ) siis tuleb küll välja.

EDIT:
Ja imelik on ka see, et kui olen seal POST-formis vajutanud submitti, siis brauseri refresh lihtsalt refreshib lehte, isegi ei ütle, et POSTDATA oleks olemas! :O

Enne kõik töötas, iseenesest hakkas s***uma! Form action="", sest ei ole vaja kindlat faili - enne töötas nii! Ja töötab praegugi ühel teisel lehel.
W3C on ka korralikult valid...
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 14.01.2008 14:51:17 vasta tsitaadiga

proovi enda masinas või teises serveris, võid ka teist brauserit proovida
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
SGM
HV kasutaja

liitunud: 04.12.2005




sõnum 14.01.2008 15:46:48 vasta tsitaadiga

mikk36 kirjutas:
proovi enda masinas või teises serveris, võid ka teist brauserit proovida
Ammu proovitud. Sama jama. See algas vist siis, kui cookie-dega jändasin, mitte midagi muud ei näppinud. Nüüd aga kõik setcookie() käsud eemaldatud ja küpsised kustutatud, aga ikka ei toimi! Ja FF küpsiste osasse tekib mingi PHPSESSID küpsis, kustutan ära, aga kohe tuleb uuesti! IE-ga ei tule, aga ka IE ei saada mitte ühte bitti infot läbi $_GET ega $_POST'i icon_rolleyes.gif
Panin sinna posti vahele ühe echo, et kohe, kui mingi info postitatakse, echotaks välja mingi asi. Aga kuna postitamist mingil ülisalapärasel põhjusel ei toimu, siis on see vorm mul justkui dummy!

Samas näiteks otsing toimib, ometi on otsing ka $_GET ja asub samas headeri failis! Vahe selles, et seal on actioniks määratud teine fail. Proovisin seda probleemset kohta ka teise failiga - siis otse see fail, milles on need kõnealused $_POST ja $_GET, aga ei aita.
Selle kõige kirjeldamiseks sobib üks võõrsõna - absurd! icon_confused.gif
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 14.01.2008 16:00:43 vasta tsitaadiga

ehk siis ei toimi selline script külastades aadressi midagi.php?test=lammas ?
php:
  1. <?php
  2. if (isset($_GET["test"]))
  3. {
  4. echo $_GET["test"];
  5. }
  6. ?>
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
SGM
HV kasutaja

liitunud: 04.12.2005




sõnum 14.01.2008 16:20:13 vasta tsitaadiga

nii, kirjutasin faili (antud juhul index.php) otsa ?test=lammas, ja ette tuli "lammas", aga miks vorm ja button ei saada sellist asja edasi?
Seal on asi nii:
html:
  1. <form action="" method="POST">
  2. <strong>Kasutajanimi:</strong>
  3. <input type="text" name="user" size="9" maxlength="16" class="loginform">
  4. <strong>Salas&otilde;na:</strong>
  5. <input type="password" name="pass" size="9" maxlength="25" class="loginform">
  6. <input name="login" type="submit" class="loginbutton" value="Logi sisse">
  7. </form>

Selle peab kinni püüdma include->include->include("fail.php"), mis püüdis selle test=lammas küll kinni enne, kui tolle otse URLi taha lükkasin.
Selles "fail.php"-s on nii:
php:
  1. if(isset($_POST["login"])){
  2. echo "XXXX";
  3. // ja lisaks vajalik kood
  4. }

Aga mida ei kuvata, on "XXXX" ja isegi postdata ei lähe sisse! Seega võin pärast submitti teha refreshi vabalt... Justkui form oleks niisama dummy või GET vms...
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 14.01.2008 16:21:00 vasta tsitaadiga

$_POST muutujas ei peagi midagi olema, kuna vormi ei saadeta ju ära, kasutaja suunatakse nupu vajutamisel ?jee=1 lehele.

var_dump() on ka su sõber. Ilmselt on sul asi lihtsalt vales kohas. :p
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
SGM
HV kasutaja

liitunud: 04.12.2005




sõnum 14.01.2008 16:28:10 vasta tsitaadiga

imelik, nüüd eemaldasin koodist sellise asja nagu session_start() ja siis saatis $_POST ja $_GET info edasi, aga enam ju sessiooni pole. Fui... enne ju töötas, aga lambist keset päeva äkki mitte. Kohe, kui hakkasin küpsistega jamama.
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 14.01.2008 16:48:55 vasta tsitaadiga

Mida väljastab var_dump($_POST); ?
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 14.01.2008 16:52:51 vasta tsitaadiga

type=submit ei peagi omama ju väärtust ?
pakun et kui üritad väljastada $_POST["user"] ja $_POST["pass"] saad sa ka oma väärtused kätte
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 14.01.2008 16:56:51 vasta tsitaadiga

mikk36 kirjutas:
type=submit ei peagi omama ju väärtust ?

Üldjuhul ikka, sellest oleneb ju nupu tekst. icon_wink.gif
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 14.01.2008 17:36:18 vasta tsitaadiga

linnumees kirjutas:
mikk36 kirjutas:
type=submit ei peagi omama ju väärtust ?

Üldjuhul ikka, sellest oleneb ju nupu tekst. icon_wink.gif
post infosse see aga kirja ei lähe
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 14.01.2008 19:24:41 vasta tsitaadiga

Läheb ikka.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="et" lang="et">
<head>
   <title></title>
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />
</head>

<body>

<form action="" method="post">
   <input type="text" name="tekst" value="Lorem ipsum dolor sit amet..." />
   <input type="submit" name="nupuke" value="Saada" />
</form>

<?php
var_dump($_POST);
?>

</body>
</html>


array
  'tekst' => string 'Lorem ipsum dolor sit amet...' (length=29)
  'nupuke' => string 'Saada' (length=5)


Pildi puhul on väärtuseks punkt, kus kasutaja klikkis (x&y).

Kui name väärtust ei määra, mis ei ole ka nõutav, ei ole seda muidugi kusagilt võtta...
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 14.01.2008 19:31:02 vasta tsitaadiga

ahaa, jah, no tõesti, ei kasuta name andmist submitile (kuigi vastavalt sinu väljatoodud võimalusele võib sellest ka kasu olla)
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
SGM
HV kasutaja

liitunud: 04.12.2005




sõnum 14.01.2008 22:00:57 vasta tsitaadiga

Ma panen submitile alati name="nimi", olen nii harjunud, siis on selgem "püüda" seda koodis.

Ma ei mõika, miks see session_start() mul seal $_GET ja $_POST asjad olematuks tegi... Kui see ikka selle viga oli. Tõstsin session_start()-i üldse päris koodi algusesse ja siis nagu hakkas tööle jälle. icon_rolleyes.gif Asjad on imelikud - näiteks doctype'i tagi sees olev url segas javascripti tooltippide kuvamist! Selle avastamisega oli peaaegu sama palju kebensit kui nende get/post-idega.
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
tanzanite
HV kasutaja
tanzanite

liitunud: 13.05.2006




sõnum 16.01.2008 15:59:13 vasta tsitaadiga

Mina jällegi väldin submit nupule nime andmast - kuna mingi värdjalik haige lehm (TM) arvas, et pagana kaval on saadetav väärtus võtta võrdseks nupu pealkirjaga (ehk vormi vastu võtva poole juures täiesti kasutuskõlbmatu).
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 17.01.2008 01:35:25 vasta tsitaadiga

tanzanite kirjutas:
Mina jällegi väldin submit nupule nime andmast - kuna mingi värdjalik haige lehm (TM) arvas, et pagana kaval on saadetav väärtus võtta võrdseks nupu pealkirjaga (ehk vormi vastu võtva poole juures täiesti kasutuskõlbmatu).


Selle probleemi vältimiseks on sul võimalik kasutada <button> elementi:

<button type="submit" name="nimi" value="väärtus">Saada</button>
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
tanzanite
HV kasutaja
tanzanite

liitunud: 13.05.2006




sõnum 18.01.2008 15:21:39 vasta tsitaadiga

8nnelikul FF-maal küll jah ... aga IE6'e support on ka vajalik.
tagasi üles
vaata kasutaja infot saada privaatsõnum
SGM
HV kasutaja

liitunud: 04.12.2005




sõnum 18.01.2008 18:16:38 vasta tsitaadiga

tanzanite kirjutas:
8nnelikul FF-maal küll jah ... aga IE6'e support on ka vajalik.

Kas keegi oskaks kribada valmis viiruse, mis kõik maailma IE-d halvaks? icon_confused.gif Siis oleks palju kergem elu...

See nene näide võib olla vajalik siis, kui tahad sisestada mingit väärtust ainult nupuga, et mingeid textivälju, valikuid, hiddeneid ega muud ei oleks formi vahel...
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 1 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  miks $_GET/POST ei toimi? :O
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.