Kiskalóz Posted March 23, 2009 Posted March 23, 2009 Ebben a kódban szerintetek mi a hiba? 1. nincs lezárva a form 2. ezek függvény hívások akarnak lenni a form-ban? 3. legyen 1 form ahol bekéred az adatokat, és legyen a print ahol kiírod a függvényhívás eredményeit
payskin Posted March 24, 2009 Posted March 24, 2009 A kérdés igen egyszerű. PHP tud HTML-t is generálni, vagy csak XHTML-t? A PHP önmagától nem generál semmit. Az a kód generál bármit is, amit te megírsz. Ha úgy írod meg, HTML-t generálsz, ha úgy írod meg, akkor XHTML-t De nem okvetlenül kell, hogy bármit is generáljon, ha mondjuk az oldalnak csak bizonyos részeit akarod PHP-val megjelentetni, akkor az egész oldalad lehet HTML vagy XHTML és benne az a pár rész PHP. Ami meg a hivatkozott XHTML "problémát" illeti: Ha XHTML-ben írjuk meg oldalainkat, akkor mindenképpen tudnunk kell arról, hogyan kell helyesen használni az XHTML-t application/xhtml+xml típusban, még akkor is, ha mindig text/html típusban küldjük vagy küldtük eddig XHTML oldalainkat! Igaza is van az embernek, meg nem is. Simán csinálhatsz XHTML 1.0 Transitional vagy Strict oldalakat text/html módban, ez teljesen elfogadott, gyakorlatilag mindenki ezt csinálja, aki XHTML-t használ. Igen, tény, hogy az igazi XHTML-t application/xhtml+xml módban kéne használni. Úgy volna szép. Pláne kezdőként nem kell ezzel foglalkozni. Egyébként meg teljesen tök mindegy mit használsz, a lényeg, hogy tartsd be a szabályait. ----------------------- @wemen: ahogy így elnézem, sajnos az egésznek semmi értelme nincs. Egyrészt a$_POST globális változó, nem kell paraméterként átadni egy függvénynek. Másrészt a függvény paramétere a függvény hívásakor kap értéket, ehhez képest te a $_POST-oknak akarsz így értéket adni, hogy HTML kódrészleteket küldesz beléjük? Esetleg fussunk neki onnan, hogy mit szerettél volna csinálni.
wemen Posted March 24, 2009 Posted March 24, 2009 Egy kis számoló programot. PHP-val. És azzal amit mondtál, arra célzol hogy elég megadnom a $_POST-ot a function zárójelében?
arpsoft Posted March 24, 2009 Posted March 24, 2009 Ez így nagyon össze-vissza van kódolva. Alapvetõ dolg, hogy a globális változókat (ahogy Balázs is írta) nem kell paraméterként átadni. Ha már mindenképpen paraméterátadást szeretnél csinálni, akkor legyen a függvény fej valami ilyesmi: function plusz($a,$b) aztán belül is a globális változók helyett $a és $b szerepeljen. A form jelen állapotában nem csinál semmit, mivel nincs submit gombja, nincs amire elinduljon a POST. További alapvetés, hogy a kód nem árt, ha áttekinthetõ. Ez most nem az és szerintem Te is ezért kavarodsz bele. Én személy szerint, ha php-t írok egy oldalba, akkor lehetõség szerint az egész oldalt, de legalább a php által elõállított részt a php printf utasításával küldöm ki, nem pedig zárom és nyitom a szkriptet. Persze lehet, hogy ez csak az én programozós agyam szüleménye, de nekem így jobban áttekinthetõ.
Zénón87 Posted March 24, 2009 Posted March 24, 2009 Köszi a segítséget. Akkor html és majd jön a PHP is. mert pl azt nem tudtam, hogy lehet csak bizonyos részeket is PHP-ben megírni. Iagzából azért lenne jó, mert ha új hírt adok hozzá, vagy új feltöltést akkor ne keljen a táblázatba, vagy szövegrészbe mindig egyenként kézzel beírni a forrást, hanem autómatice csapja hozzá ha feltöltöm THX a segítségért.
payskin Posted March 24, 2009 Posted March 24, 2009 Az arpsoft által elmondottakhoz annyit tennék hozzá, hogy szerintem látványosan nem tudod szétválasztani a feladat PHP-t és HTML-t igénylő részeit. A dolog teljesen értelemszerűen két részből áll: egy adatbeviteli részből és egy feldolgozó részből. Az adatbeviteli rész ebben az esetben annyira egyszerű, hogy simán megoldható csak HTML-ből. Ez volna az első feladat, hogy bármiféle PHP használata nélkül rakjál össze egy szabályos HTML vagy XHTML oldalt benne egy űrlappal és annak mezőivel. (Ez egyébként a tanulásban is az első lépés. Amíg a HTML alapok nincsenek meg, teljesen felesleges programozással vesződni.) Ha ezzel megvagy, és minden csodálatos, akkor írj egy teljesen különálló PHP programot ami tartalmaz egy összeadó, kivonó, stb. függvényt (lásd arpsoft javaslatát), de semmi köze nincs a korábban megcsinált HTML űrlaphoz, önmagában működjön. Teszteld le őket általad beírt számokkal. Aztán ha ezzel is megvagy, akkor kapcsold össze a kettőt és írd meg azt a pár sort, ami a fórumból jövő adatokat átpasszolja paraméterként a függvényeidnek. (Majd ez lesz az a rész, ami a $_POST tömböt kezeli.) Kész is vagy.
h.arpad Posted March 24, 2009 Posted March 24, 2009 (edited) Már csak azt nem értem, hogy egy sima összeadáshoz vagy kivonáshoz minek külön függvényt csinálni. <?php $_POST['a'] = $a; $_POST['b'] = $b; $c = $a + $b; print "A két szám összege: " . $c; ?> Hát, nagyjából ennyi két szám összegének a kiíratása. Én inkább így közelíteném meg: 1. Csinálok egy HTML űrlapot, ami 3 mezőt tartalmaz, két mező közül az egyik (a középső pl.!) egy legördülő lista, amiben a műveleti jelet ki lehet választani. 2. Csak azután agyalok azon, hogy a 3 mezőben lévő paramétert átadjam egy függvénynek, ami a műveleti jel alapján kiválasztja, hogy mit is csináljon... Csak gondolatmenet szintjén: (>>Ajánlom elolvasni hozzá<<) fuggveny szamol ($elsoszam, $muvelet, $masodikszam) { kapcsolo ($muvelet) { eset1 "-": $eredmeny = $elsoszam - $masodikszam; visszaad $eredmeny; megszakit; ... stb. } } Edited March 27, 2009 by h.arpad
payskin Posted March 24, 2009 Posted March 24, 2009 Alapvetően igazad van, de egy másik probléma/feladat megoldása az eredeti helyett, nem biztos, hogy segít. Mint ahogy az sem, ha megoldod a problémád a kezdő helyett. Saját függvény írásának tanulásakor általában az a típusfeladat, hogy készítsünk függvényt valami rém egyszer dologra, mint például két szám összeadása. Nyilván senki nem a jókedvében ír erre programot. Még ha az illető addig mindent értett is a témából, a saját függvény írása egy olyan új paradigma, amit nem egyszerű egyből megérteni, elsajátítani, pláne alkalmazni (paraméterek, lokális, globális változók, visszatérési érték stb.) Ráadásul a kódod még "hibás" is!
h.arpad Posted March 25, 2009 Posted March 25, 2009 Én a gyorstalpalás híve vagyok PHP-ból, mert annyi minden van, amit még érdemes megtanulni benne (pl a switch használata... ) Másrészt wemen problémája úgy néz ki nem a kigondolásban, hanem a kivitelezésben van. Általánosságban igen, azt kellett volna mondanom, hogy ne elégedjen meg ezzel, készítsen olyan függvényt, ami kiszámolja az eredményt akkor ha 3 tetszõleges paramétert ad. (Némi korlátok között, persze.)
payskin Posted March 25, 2009 Posted March 25, 2009 Persze hogy a kivitelezésben van. Minden kezdőnek a kivitelezéssel van problémája: fogalma nincs hogyan kell megoldani a feladatot. A gyorstalpalás működhet, ha már tudsz programozni és csak a nyelvjárást kell megtanulnod. Ha az alapok még nincsenek meg, akkor nincs hova, mivel gyorstalpalni. $_POST['a'] = a$; ??? Ja és most látom, hogy a dollárok mindenhol rossz oldalon "ülnek". Akkor nemcsak "hibás", de hibás is.
Atys Posted March 25, 2009 Posted March 25, 2009 Lehet alap a kérdésem, de nem találtam rá választ ( a google most nem volt a barátom...) Mit jelent egy hivatkozásban a % jel? Nem tudom, hogy PHP kérdés-e ez?
arpsoft Posted March 25, 2009 Posted March 25, 2009 Azt jelenti, hogy a következõ két jegy egy speciális karakter kódja lesz. Paraméterekben például a %20 jelenti a space karaktert.
wemen Posted March 25, 2009 Posted March 25, 2009 Hadgyjuk, a PHP nekem nem megy. Nem tudok még egy ilyen kis semmiséget sem megcsinálni. Ehhez is béna vagyok. Na mindegy. Azért köszi mindenki.
payskin Posted March 25, 2009 Posted March 25, 2009 Én mondtam, hogy alapok nélkül nem fog menni. De egy biztos: feladni a legegyszerûbb.
Atys Posted March 25, 2009 Posted March 25, 2009 @arpsoft: Köszi a gyors választ! És ennek van valamilyen kódtáblája? @wemen: Balázsnak igaza van! Feladni a legegyszerûbb! Én is csak natúr HTML-t tanultam még annak idején, de nem adtam fel, hogy mást is megtanuljak. Így már kapisgálom a PHP-t is! Csak kitartás!
arpsoft Posted March 25, 2009 Posted March 25, 2009 Persze, általában a % utáni két karakter az ASCII tábla karakterkódja 16-os számrendszerben. Lásd az elõbbi példát: %20 -> 32 -> space De vannak bonyolultabb kódok is, mint például: %26%23337%3B = õ %26%23336%3B = Õ %26%23369%3B = û %26%23368%3B = Û
h.arpad Posted March 25, 2009 Posted March 25, 2009 Ja és most látom, hogy a dollárok mindenhol rossz oldalon "ülnek". Akkor nemcsak "hibás", de hibás is. Javítva.
payskin Posted March 27, 2009 Posted March 27, 2009 Ja, én azt hittem, hogy a $_POST-ban érkezõ adatokat akarod összeadni, de ezek szerint a $_POST-ot csak adattárolásra használod. Meglehetõsen szokatlan, de végül is mûködik.
h.arpad Posted March 27, 2009 Posted March 27, 2009 Teljesen más hibára gondoltam. Mindegy, azért kijavítottam.
Dani991 Posted March 27, 2009 Posted March 27, 2009 Akadt egy olyan problémám, hogy a php kódom nem olvassa ki az adatokat az adatbázisból. Íme a kódrészlet: include("connect_db.php"); $sel_db_lang = @mysql_query("SELECT * FROM contact2 WHERE id='1'"); $sel_db_lang_array = @mysql_fetch_array($sel_db_lang, MYSQL_ASSOC); $contact1 = $sel_db_lang_array["$lang"]; A php semmilyen hibaüzenetet nem küld, tehát valami mysql probléma van. Csak éppen azt nem értem, hogy miért, hiszen ugyanezt a kódot használom a többi aloldalon is és mindenhol máshol mûködik. Külön phpMyAdminban is lefuttattam a kérést és ott is minden rendben volt.
arpsoft Posted March 28, 2009 Posted March 28, 2009 Én úgy emlékszem a mysql_query-nek kell egy kapcsolat azonosító is. Vagy ez egy saját függvény?
Dani991 Posted March 28, 2009 Posted March 28, 2009 Úgy tudom, az a kapcsolat azonosító nem kötelezõ paraméter, de most kipróbáltam azzal együtt is. Sajnos továbbra sem mûködik a dolog.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now