ugrás a tartalomhoz

Űrlap adat rögzítés PHP-vel

Anubisss · 2005. Szep. 25. (V), 16.02
Nos nem nagyon értem a php-t de tok egy két dolgot meg egy keveset html-ben is lenne egy pár kérdésem.:
kérlek ha tudtok segitsetek:
nos:
olyan kéne nekem h pl. egy index oldal ahol van egy nagy text area és lehet oda irni majd van 1 submit gomb és ha megnyomom akkor elugrik a 1.php oldalra és ott megjeleniti a szöveget amit beirtam (mind1 fórum) na de ez lenne e lényeg h ezt mentse el mysql adatbázisba és megis tudjam jeleniteni. pl.:
az index oldalon legyen egy olyan menü pont h : nézet és ha megnyomom akkor megjeleniti amit edig irtam a fórumba.
tehát ha irok pl. 3x a textarea-ba akkor azt jelenitse meg .
tipikus fórum
rem tudtok segiteni és nagyábol megfogom érteni
előre is kössz
engem nagyon érdekel csak nem értek hozzá enyire
kössz
 
1

túl sok kérdés, alapismeret

Hojtsy Gábor · 2005. Szep. 25. (V), 16.11
Megpróbáltam megérteni, hogy mit szeretnél, bár nem volt egyszerű. A titkosszolgálatok alkalmazhatnának titkos szövegek szerkesztésére. Ha jól értem arról lenne szó, hogy egy egyszerű vendékkönyvet látnál, amibe be lehet írni valamit egy szövegbeviteli mezőn keresztül, és MySQL adatbázis működne a háttérben. Ennek megfelelően módosítottam a fórum témacímét.

Ami a választ illeti, a kérdésed a PHP legalapvetőbb feladatának és funkciójának megértéséről szól, amihez leginkább egy kezdőknek szóló PHP könyvet tudnék ajánlani, vagy egy meglévő magyar cikket a PHP űrlapfeldolgozásra történő használatáról.
2

igen

Anubisss · 2005. Szep. 25. (V), 16.14
Igen nagyából eről lenne szó.
Csak nekem ez ugy kéne hogy semmi könyv vagy pedig egy jó magyar leirás amiből megértem jól elmagyarázza és vannak benne példák.
3

Csatlakozás

Anubisss · 2005. Szep. 25. (V), 16.18
ezzel csatlakozok aztán hova tovább?meg nincs kiváklasztva adatbázis
<?php
$kapcsolat = mysql_connect("127.0.0.1", "root@localhost", "");
if (!$kapcsolat) {
    die('Nem lehet csatlakozni ' . mysql_error()));
}
echo('A csatlakozás sikerült');
mysql_close($kapcsolat);
?> 

4

mysql_connect()

Anonymous · 2005. Szep. 25. (V), 19.51
Olvasd át erősen mégegyszer ezt a részt!!!

http://dev.mysql.com/doc/mysql/en/mysql-connect.html
5

Nem tudok angolul

Anubisss · 2005. Szep. 25. (V), 19.59
kössz
csak anyira nem tok angolul
hogy le is forditsam
6

ürlap>php>sql

Anonymous · 2005. Szep. 26. (H), 21.28
Elöször ugye egy ürlappal elküldöd az adatokat a php oldalnak, ahogy megnítod az adabázis kapcsolatot, és beilleszted a megfelelő értékeket.
html:
<form action="feldolgoz.php" method="POST">
<input type="textarea" name="szoveg">
<input type="submit" name="button" value="elküld">
</form>
feldoloz.php:
csatlakozás megnyitása,
beérkezett adatok ellenőrzése
feltöltés
kapcsolat bezárása

Függvények:
http://www.php.net/manual/hu/ref.mysql.php

sok sikert
7

<Nincs cím>

Anubisss · 2005. Szep. 26. (H), 22.01
ok kössz
de minek a tábla azt nem értem meg milyen fájlt nyitok meg mikor nincs benne semmi?
8

forum

kiuka · 2005. Szep. 27. (K), 07.21
hello, na tehát előszöris a dolgod hogy csinálj két php fájlt, jelen esetben legyen egy hozzaszolas.php meg egy kiolvasas.php.

namost ha ez megvan akkor a hozzaszolas.php-ba azt kéne beleirnod hogy:

<!-- ezzel itt megadod neki hogy térjen át a kiolvasas.php-ra mikor elpostolja a dolgokat. -->
<form action="kiolvasas.php" method="post">
<textarea type="text" name="szoveg"></textarea> <!-- adunk neki nevet meg hogy szöveges -->
<button type="submit" name="gomb">Hozzászolás</button> <!-- ennek is nevet meg hogy ez küldö gomb itt. -->
</form> <!-- lezárjuk a formot mert mértne. -->
ha ezzel meg vagy akkor ha ebbe beleirsz valami jot, akkor átis tér a hozzaszolasok.php ba, amibe a következőket kéne irni:

<?php
mysql_connect('localhost', 'felhasználonév', 'jelszo');
mysql_select_db('adatbázisod');

 if(isset($_POST['gomb']) //Ha lenyomta a gombot
  && !empty($_POST['szoveg']) // ha van valami irva a szövegbe
  ){

 $_POST['szoveg'] = htmlspecialchars($_POST['szoveg']); // akkor itt most jol kiszedjük belőle a html tageket
 $_POST['szoveg'] = trim($_POST['szoveg']); // akkor még levágdossuk a felesen maradt részeket is.
 $_POST['szoveg'] = nl2br($_POST['szoveg']); // és átalakitjuk a sortöréseket br ekké

 mysql_query('INSERT INTO `tábla` (szoveg) VALUES (\''.mysql_real_escape_string($_POST['szoveg']).'\')'); // akkor jol beleirjuk ide a mysql-be a tábla nevü táblába és a szöveg nevü mezőbe.

}
?>
aztán most szépen kiolvassuk belőle hogy azért lehessen is érteni miről van szó.

<?php
if($q = mysql_query('SELECT * FROM `tábla`')){ // ha kiszedünk mindent a táblábol
 while($kiolvasás = mysql_fetch_assoc($q)){ // közbe hozzá adjuk ehhez a kiolvasás nevü változohoz az egészet
  extract($kiolvasás, EXTR_OVERWRITE); // és kivarázsoljuk belőle $mezőnével lehet majd igy jol kiszedegetni
   print($szoveg.'<br/>'); // ide meg kiirogatjuk azt hogy $szoveg magyarul amit beirtunk mysqlbe.
 }
}
?>
na, asszem valahogy igy. lehet elirtam kicsit valamit ha nemmegy szolj még korán van..:)
9

<Nincs cím>

Anubisss · 2005. Szep. 27. (K), 18.40
ok.kössz
ott hon sikerült végre.
de u csintam h létrehoztam egy táblát és ott létrehoztam egy akármit gondolom ez az ahova beirja na de most melyiket kell megadni.
én mind2 szoveg-nek neveztem el.
és mi az a sok választási lehetőség ahol én pl. a TEXT -et választtotam gondolom ez kellett a szöveghez de nem bizt.
és van ott olyan h user gondolom az felhasznhöz kell.
és ha mondjuk külön akarom megjeleniteni akkor hogy különböztetem meg.
és felhasznt hogy tok csini és akkor csak az tudjon beléni mert nem értem azt igazán pl létrehozok egy felhasznt pl. istar na de most ha be akarok lépni és kéri a jelszót akkor rákeres a táblában az istar névre és mellete lévő jelszóra vmi?
10

<Nincs cím>

Anubisss · 2005. Szep. 27. (K), 20.21
ja olyan nincs is h user.(nem tom honét szedtem)
11

<Nincs cím>

Anubisss · 2005. Szep. 28. (Sze), 16.57
a user ha jól tom a varchar-ba kell beirni.
ok de ha megvan akkor h keresek rá a user navére.???
és ha pl olyat szeretnék mint 1 fórum akkor az új hozzászólást h jelenitem meg
uh ilyen külön ablakba legyen vagy azt vmi css-ben v témában kell??
12

Mas lap

zsugo · 2005. Okt. 22. (Szo), 16.02
Sziasztok. Nekem is lenne egy kerdesem a dologgal kapcsolatban.
Hogyan lehetne azt megoldani hogy miutan elvegeztem az adatbaziba valo beirast egy masik lapot is nyisson meg (pl. ahonnan indultam)?

Elore is kosz.
13

átirányítás

Anonymous · 2005. Okt. 22. (Szo), 20.40
az oldalon, ahol elvégezted az adatbázisműveletet, nem iratsz ki semmit. Így csinálhatsz egy header("Location: http://sdfa.hu/index.php"); fejlécmódosítást, és a user a megadott oldalra kerül.
14

kimenetszabályzó függvények

Dualon · 2005. Okt. 23. (V), 00.54
Szerintem elegáns megoldás, ha a kimenetet puffereled, így a fentebb említett header() használata is menni fog. A felhasználónak szóló üzeneteket (pl. sikeres belépés, hibás adat, stb.) sessionben rögzítve azokat a lapok közt "szállíthatod".
Szerk.: A $_SERVER['HTTP_REFERER'] változó - meglétének ellenőrzése mellett - is hasznodra lehet.

Dúalon
http://e-arc.hu/
15

lehet mégis inkább meta

Anonymous · 2005. Okt. 23. (V), 08.55
Ha állapotot is ki akarja irni, akkor szerintem még egyszerübb egy meta-t berakni mondjuk 5 mp-es frissítéssel. Így el lehet olvasni az üzenetet is, és tovább is viszi a felhasználót. És megspóroltunk egy session bejegyzést. A hibás adatokra meg úgy is az ürlapoknál jobb figyelmeztetni szerintem, és ott kliens oldalon JS-el meg tutod tenni.


Szerver oldali ellenőrézést meg így csinálnám:

pl: header("Lo... ... xy.php?id=errorshortpass") ?

És az űrlapnál megy egy swichel kiirjatjuk a hozzá tartozó hibaüzenetet.
16

session vs meta tag

Dualon · 2005. Okt. 23. (V), 13.54
Ha állapotot is ki akarja irni, akkor szerintem még egyszerübb egy meta-t berakni mondjuk 5 mp-es frissítéssel.


Ha az X másodperces közbenső időszakban a user ráfrissít a lapra (majd reflexből nyomja a gombot, mert nem tudja, mit akar a kisablak a postolt datával), már küldi is be újra ugyanazt az adatot. Kiszűrhető ez is egyedi timestamp-ekkel, stb., de értelmetlen fáradtság. Sokkal tisztább, ha sessiont használsz. Én jobban szeretem az idiótabiztos megoldásokat.

A hibás adatokra meg úgy is az ürlapoknál jobb figyelmeztetni szerintem, és ott kliens oldalon JS-el meg tutod tenni.


Hibás űrlapadatok esetén természetesen az űrlapot dobod vissza.
Kliens oldali javascriptes ellenőrzés accessibility szempontjából nem a legelőnyösebb (úgy emlékszem, a blogmarkok közt volt erről nemrégiben).

És az űrlapnál megy egy swichel kiirjatjuk a hozzá tartozó hibaüzenetet.


És ha több hibaüzeneted van?

Sessionbe beraksz annyi üzenetet, amennyit akarsz (én spec. a státuszukat is rögzítem, pl. hiba, siker, helyzetjelentés), aztán egy ciklussal végigszaladsz az üzenetek session-tömbjén, és státuszuknak megfelelően olyan színnel, oda írod ki őket, ahova akarod. (Még egyszer hangsúlyoznám, hibás űrlapadatok esetén nincs ilyen átirányítás, ott azonnal a megfelelően jelölt űrlapot kapja vissza a user). Szerintem ez még nagy (10^6) lekérésszám mellett sem öli le a szervert.
17

kontra

Anonymous · 2005. Okt. 23. (V), 15.34
Ha az X másodperces közbenső időszakban a user ráfrissít a lapra (majd reflexből nyomja a gombot, mert nem tudja, mit akar a kisablak a postolt datával), már küldi is be újra ugyanazt az adatot. Kiszűrhető ez is egyedi timestamp-ekkel, stb., de értelmetlen fáradtság. Sokkal tisztább, ha sessiont használsz. Én jobban szeretem az idiótabiztos megoldásokat.

Erre egy megoldás: ha végrehajtod a rögzítést, akkor mondjuk csinálsz egy modified = TRUE változót, és ezt az egyet tárolod le sessionba...

És ha több hibaüzeneted van?


pl létrehozol egy tömböt, ahol számokkal nevelez el hibatípusokat. Tömböt serialozod, majd elküldöd...

és swich-nél is tudsz más színű hibaüeznetek, sőt még talán egyszerübben. Ha logikusan építed fel a hibakódokat, akkor hiba súlyosságától be tudsz állítani egyszerű megjelenési tulajdonságokat is.
18

Minek?

Dualon · 2005. Okt. 23. (V), 17.08
De minek? Bonyolítod a saját életed...
Mi a hátránya az általam vázolt sessionös megoldásnak, amiért nem akarod használni?

Erre egy megoldás: ha végrehajtod a rögzítést, akkor mondjuk csinálsz egy modified = TRUE változót, és ezt az egyet tárolod le sessionba...


Tehát ugyanúgy átirányítasz, ugyanúgy sessiont használsz (csak a hibaüzenet helyett egy true értéket raksz sesibe), csak utána még a modified session értékkel is játszogatnod kell (hisz mi van, ha a user újfent módosítani akar? -> bejön az idő, vagy később törlöd a modified értéket...). Minek túlbonyolítani?

és swich-nél is tudsz más színű hibaüeznetek, sőt még talán egyszerübben. Ha logikusan építed fel a hibakódokat, akkor hiba súlyosságától be tudsz állítani egyszerű megjelenési tulajdonságokat is.


Mint ahogy a sessionösnél is. Ez nem switch/ciklus erősség-hátrány kérdés.
Mivel nem írtad le, ezért feltételeztem, hogy a switch-et arra érted, hogy a különböző hibahelyzetek egy-egy case-t képviselnek. Erre írtam, hogy mi van, ha többféle hibád (magyartalanul, a többesszám kedvéért: hibáid) van?

Dúalon
http://e-arc.hu/
19

Koszi

zsugo · 2005. Okt. 24. (H), 08.34
Mindenkinek koszonom, megragcsalom.