form submit ellenörzés kikapcsolása

szistvan képe

Hi!

Új modul szerkesztésébe kezdtem, ami egy meglévő rendszerhez kapcsolódna, annak a .cgi-ét futtatné pár adattal. Ehhez egy űrlapot hoztam létre, hogy a két mezőt kitöltve azzal hívódjon meg a .cgi, a problémám "csak" az, hogy a form API szépen hozzátesz pár validációs értéket is és emiatt elhasal a .cgi. :-(
Így néz ki a címsor:
t1.vcsk.hu/cgi-bin/tlwww.cgi?au=ady&ti=&form_build_id=form-7e00fa40c3fae6f0ee2c3f6e66508dc7&f...

Addig kellene, hogy "cgi-bin/tlwww.cgi?au=ady&ti=", tehát a form_build_id és a form_id nagyon nem kellene.
Találtam egy Skip Validation modult a drupal.org-on, de valamit elbénázok, mert csak odateszi azt, amit nem szeretnék.

Valaki tudna segíteni, hogy mit hol nézzek meg, illesszek be?

Előre is köszönöm a segítséget!

Drupal verzió: 
pp képe

drupal_get_form('form_id') helyett a következőt tedd:

$form_array = form_id();
drupal_render($form_array);

Persze ekkor a teljes feldolgozást kihagytad.

pp

0
0
szistvan képe

Jól hangzik, de az első lépésnél elakadt(am). :-(

     $form_array = form_id();

Erre azt mondja: Call to undefinied function form_id() in ....

Ötlet?

0
0
Boobaa képe

Hogyan készítetted el azt az űrlapot?

0
0
pp képe

form_id helyett a Te form_id-et írd oda lécci. Tudod amit a drupal_get_form függvénynek átadtál és készítettél egy ilyen függvényt is. Azt kell ugyanis meghívni, ha nem lenne világos.

pp

0
0
szistvan képe

Igen, sajnos nem volt világos. A következőt "követtem el":

      ....
        $form_array = tl_gyorskereso();
        $block_content = drupal_render($form_array);
 
function tl_gyorskereso() {
 
  $form = array();
 
  $form['#action'] = '/cgi-bin/tlwww.cgi';
  $form['#method'] = 'get';
  $form['#attributes'] = array('name' => 'keres');
  $form['#attributes']['accept-charset'] = 'ISO-8859-2';
 
  $form['au'] = array(
    '#type' => 'textfield',
    '#title' => t('Szerző'),
    '#size' => 20,
    '#maxlength' => 30,
    '#prefix' => '',
    '#suffix' => '',
  );
 
  $form['ti'] = array(
    '#type' => 'textfield',
    '#title' => t('Cím'),
    '#size' => 20,
    '#maxlength' => 30,
    '#prefix' => '',
    '#suffix' => '',
  );
 
  $form['submit'] = array(
  	'#type' => 'submit', 
	'#value' => t('Search'), 
        '#name' => '',
        '#prefix' => '',
        '#suffix' => '',
	);
 
  return $form;
} 

Így már rendereli, de most úgy néz ki, hogy:
Cím: űrlapmező
Submit gomb
Szerző: űrlapmező

Ezen felül a form actiont sem tette bele. Ebből látszik, hogy azért még jócskán kezdő vagyok, sorry...

0
0
pp képe

Pontosan mit használsz a FormApi-ból? Szerintem semmit. Én a helyedben simán kitolnám azt a html-t amiben a form van. Így nem zavar a form api, ami jelenleg csak hátrány neked és semmi előny. Vagy tudsz mondani olyan előnyt, amiért megéri használni?

pp

0
0
szistvan képe

Valóban nem látok én sem előnyt - sőt kezd egyre zanzásabb lenni.
Mivel kezdő vagyok -e téren is, azért gondoltam a FormAPI-ra, hogy "szabványos" legyen.

0
0
szantog képe

meglévő rendszerhez kapcsolódna, annak a .cgi-ét futtatné pár adattal

Lehet, hülye kérdés, de ez csak nekem tűnik meredeknek?
Egy másik rendszerhez kapcsolódásnak megvannak drupalban az biztonságos, elfogadott módszerei, szerintem egy formba sittysuttyolt cgi nem tartozik ezek közé.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

szistvan képe

.. a .cgi is "saját" fejlesztésnek mondható.

Mint írtam, kezdőnek mondanám magam és szívesen tanulok, olvasok - bár mindkettőt lassa :-)
Komolyra fordítva a szót: az említett "másik rendszerhez kapcsolódásnak megvannak drupalban az biztonságos, elfogadott módszerei"-hez kaphatnék némi támpontot, hogy mire keresgéljek iletve mit érdemes elolvasni?

Esetleg némi example?

Előre is köszönöm a segítséget!

0
0
aboros képe

kéne egy űrlap amit ha beküldök az adatokkal lefuttat egy cgit egy másik webhelyen és a kapott eredményt megjeleníti?

0
0

-
clear: both;

szistvan képe

Valószínű az lesz a legjobb, ha leírom mit szeretnék, aztán a tapasztaltabbak majd megmondják, hogy merre vegyem az irányt.

Lészen egy könyvtári rendszer, benne személyekkel, könyvek kölcsönzési adataival és persze a könyvek adataival és még sok mindennel. Az egészhez van egy webes felület űrlappal, amit kitöltve kereshet szerző, cím és még sok minden alapján. Illetve az olvasó megadhatja az olvasójegyét és jelszavát, akkor láthatja a kölcsönzött dokumentumait, tartozásait, stb.

Ez az egész webes felület úgy működik, hogy van egy gateway.cgi ami kapcsolódik az adatbázishoz majd lekéri a megadott infókat és visszad egy .html oldalt. A gateway.cgi paraméterezhető, hogy ne .html-t adjon vissza, csak "tiszta" adatot, amit aztán megformázhatok, ahogy akarok.

A feladat az lenne, hogy a gateway.cgi által visszaadott eredményt a drupal alapú weboldalba integráljam iframe tag nélkül.

Erre egy modult kezdtem el készíteni, a saját block megvan, a többit nem írnám, inkább megvárnám a véleményeteket, javaslatotokat.

0
0
Boobaa képe

1. Az általad felvázolt rendszer megoldhatónak tűnik simán Drupalból – sőt mi több, talán még egyetlen sor kódot sem kell írnod hozzá, mert mintha minden részfeladathoz volna már kész modul. (Persze ez utóbbinak utána kéne nézni pontosan.) Ha neked lennék, inkább Drupalból oldanám meg az egészet: valószínűleg hamarabb célhoz érsz és megbízhatóbb eredményt kapsz egy „tisztán” Drupal oldallal, mint egy többféle rendszerből összerakott megoldással.

2a. Ha mégis ragaszkodsz a .cgi-s megoldáshoz (valamiért), akkor: a .cgi ugyanazon a szerveren van, mint a drupalos oldalad? A .cgi-d olyan adatbázisból dolgozik, amelyet a Drupal is támogat? Mert akkor ez esetben van lehetőség úgy megírni a Drupalhoz a modulodat, hogy közvetlenül azt az adatbázist kérdezze le, amit a .cgi is tenne. (Ne felejtsd el visszaállítani az aktív adatbázist, amilyen hamar az csak lehetséges, hogy komolyabb fejtörésektől megkíméld magad.)

2b. A Data és Views modulokkal lehetségesnek tűnik ugyanez a játék – persze itt is utána kéne nézni a konkrét követelményeknek (tudnak-e ezek másik adatbázisból dolgozni, stb.)

0
0
szistvan képe

A helyzet az, hogy a "... megbízhatóbb eredményt kapsz egy „tisztán” Drupal oldallal" részt nem igazán értem, hogy mire gondolsz. Amennyiben arra, hogy drupalból kellene közvetlenül az adatbázishoz kapcsolódni és mindent lekezelni, az sajna nem megy. Az adatbázis drupalból nem támogatott.

2a. Igen, a .cgi ugyanazon a szerveren fut. Az adatbázis nem támogatott.

0
0
york képe

Milyen adatbazis szerver?
Oracle?
Azt tudod kezelni PHP-bol, igaz, hogy a drupal db reteget nem tudod hasznalni, de ettol meg direktbe elered az adatokat.

0
0
szistvan képe

Az adatbázis egy saját fejlesztésű hálós adatszerkezetet kezelő rendszer, teljesen zárt kóddal.
Sajna ez az irány járhatatlan.

AZért köszi!

0
0
york képe

Ha boobaa megoldasai nem jok akkor en, csinalnek egy sima drupal formot (cgi keveres nelkul), es curl segitsegevel hivnam meg a .cgi-ket amit visszaad adatot azt mar ki tudod tolni drupalbol, de nem lesz egyszeru, foleg a login miatt. Sokkal tisztabb, ha direkt adatbazisbol dolgozol.

0
0
szistvan képe

Igen, ebbe az irányba indultam el. Készítek egy form-ot majd egy függvényben fsockopen()-el lekérem a .cgi-től az adatokat.

Próbáltam ránézni gyorsan a curl-ra, annyi jött le, hogy távoli oldalakat lehet vele beilleszteni drupálba. Jól értelmezem, vagy félrenéztem valamit? Ez utóbbi esetben kérhetnék egy pár mondatos magyarázatot?

0
0
szistvan képe

úgy látom ez a cURL a PHP-hez kapcsolódik és "csak" érintőlegesen drupal, így megköszönöm mindenkinek az eddigi hozzászólását, segítségét és megyek cURL felé tovább olvasni.

A nyitó kérdés tehát érvényét vesztette, más irányt vesz/vett a feladat megoldása.

Persze, ha valakinek van még hozzáfűzni valója, szívesen hallgatom.

Köszönöm még egyszer!

0
0
york képe

szistvan képe

Tegnap már felületesen nézegettem, nagyon remek!

Köszönöm!

0
0
nevergone képe

Nem biztos, hogy érdemes Curl-lel szívatni magad, ha továbbra is a Drupalban gondolkodsz, hiszen a Drupal mindent megcsinál az életben, csak nem mosogat el: drupal_http_request()

0
0
chx képe

a curl-ben süti támogatás, POST, fájl feltöltés, digest auth támogatás van hogy csak pár apróságot említsek ami gyakran kell.

0
0
nevergone képe

De itt ezekre nincs szükség, legalábbis eddig nem merült fel. Itt csak egy egyszerű lekérdezés kell, arra pedig a drupal_http_request() bőven elég és jobban is illik a Drupalos filozófiába. :)

0
0
york képe

Mintha emlitett volna beleptetest, oda konnyen lehet, hogy kell suti.

0
0
szistvan képe

Első körben lekérdezések vannak/lesznek.
Viszont később - jóval később - már az olvasók beléptetésére is sort kell keríteni, amihez sütire lesz szükség.
Így azt hiszem a cURL megfelelő választás lesz.

Köszönöm!

PS: cURL-al kapcsolatos kérdésekkel - ha lesznek - akkor nyitok újabb topicot, ha nem harapják le a fejem a nem teljesen drupálos téma miatt.

0
0
nevergone képe

A cURL egy más téma (Drupaltól független), javaslom a sok olvasgatást és a Weblabor használatát. Amúgy itt a beléptetés nem a Drupal beléptetését jelentette, hanem az adatbázis elérését.

0
0