Nefunguje prenos $_POST[]

4 příspěvky

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Zdravím, mám dva jednoduché php súbory: --login.php <?php session_start(); if (isset($_POST["send"])) Header("Location:main.php"); echo "<form action='login.php' method='POST'>\n"; echo "<input type='text' name='premenna'>\n"; echo "<input type='hidden' name='send' value='yes'>\n"; echo "<input type='submit' value='Odoslať'>\n"; echo "</form>"; ?> --main.php <?php session_start(); if (isset($_POST["premenna"])) echo $_POST["premenna"]; ?> Problém je v tom, že po odoslaní jednoduchého formulára a následnom presmerovaní na main.php sa neprenesie hodnota $_POST["premenna"]. Môžete poradiť, kde robím chybu? Celý jednoduchý príklad som napísal pre riešenie zložitejšej úlohy, ktorú robím na localhoste. Narazil som na tento problém, a nenapadá mi nič, čo robím nesprávne. Treba nastaviť nejaké direktívy týkajúce sa session v php.ini? A ak áno, tu na wz.cz aj tak nič nezmením. Je to onlajn: www.barguzin.wz.cz/session/login.php, stačí len vyplniť nejaký textový reťazec do inputu a odoslať. Ďakujem za rady.
  2. A co kdyby sis obsah té proměnné uložil do session, kam patří? Ještě před voláním funkce header().
  3. Ďakujem, pomohlo :-) Uložil som do $_SESSION[]. Mám však nový problém, a to ako zabezpečiť odovzdanie POST premenných z formulára do obslužného skriptu? Mám tri súbory: 1. index.php je súbor s formulárom - užívateľovi aplikácie je viditeľný 2. login.js je súbor s ajaxom - funkcia xxx() 3. login.php je skript volaný AJAXom ------------------ Fragment index.php: <form action='POST' name='login'> <input type='text' name='user' maxlength='25' size='25' class='txt'> <input type='password' name='pass' maxlength='25' size='25' class='txt'> <input type='button' value='Prihlásiť' name='send' onClick='xxx();'> </form> Odoslanie dát je teda nie submitom, ale javascriptovým tlačidlom. ---------- login.js: Za pomoci návodu, ktorý som na internete našiel, som vytvoril nasledujúcu funkciu: function xxx () { var url="login.php; var params="";// ? var xmlhttp; xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.setRequestHeader("Content-length", params.length); xmlhttp.setRequestHeader("Connection", "close"); if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest(); else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { document.getElementById('msg').innerHTML=xmlhttp.responseText; } } xmlhttp.send(params); } No a v tomto JavaScriptovom súbore mám otázku týkajúcu sa riadku s otáznikmi, pôvodne tam bolo v ukážke na internete: var params="lorem=ipsum&name=binny"; Ja odosielam zo svojho formulára hodnotu user a pass. Kým v tejto ukážke http://www.openjs.com/articles/ajax_xmlhttp_using_post.php je parameter odoslaný síce metódou POST, ale v premennej PARAMS zadaný priamo v JavaScripte, ja potrebujem získať hodnotu POST premenných z formulára index.php , ako $_POST["user"] a $_POST["pass"], teda ako to zakomponovať do toho JavaScriptu (riadok s otáznikmi)? V ukážkovom príklade sa totiž neriešilo prevzatie POST premenných z formulára, ukážka len demonštrovala použitie metódy POST v Ajaxe.
  4. Doporucuji davat do formulare vzdy submit tlacitko. Prohlizece v tomto maji pak spoustu bugu a jeden napr poouzije nejblizsi input type=botton za odesilaci, druhy provadi autoodesilani formulare po zmacknuti enter klavesy, atd. Nasledne se blokuje odeslani akci <form onsubmit=...> K otazce Najdi si priklady na javascript jquery formulare. Ale samozrejme to muzes udelat rucne, pripis tam na zacatek kodu toto pro zjisteni hodnoty input policka. a dal uz si s tim poradis, asi. var f = document['login']; alert(f.user.value); alert(f.pass.value); alert(f.send.value); pôvodne tam bolo v ukážke na internete: var params="lorem=ipsum&name=binny"; Takze musis vytvorit stejny retezec jako oni? Muzes zkusit upravit toto. http://peter-mlich.wz.cz/web/js/prjpw/ajax.html

← Zpět na všechna témata