ugrás a tartalomhoz

Archívum - Aug 31, 2009 - Fórum téma

Űrlapokkal kapcsolatos kérdések

rockybro · 2009. Aug. 31. (H), 21.37
Hali!

Lenne pár űrlapokkal kapcsolatos kérdésem:

1. Melyik a korrekt mód az űrlapok elküldésének ellenőrzésére? Ha csak szöveges mezők vannak az űrlapon, akkor szépen átadhatjuk isset()-nek a $_POST tömbben lévő (vagy nem lévő) változókat, és megmondja, hogy el lett-e küldve az űrlap, akkor is ha üresen, akkor is ha kitöltve. De mi van, ha checkbox-ok vagy radio button-ök vannak az űrlapon? Akkor az isset() FALSE-al tér vissza, akár el lett küldve az űrlap, akár nem.

Lehetséges megoldások saját kútfőből:
- Teszünk egy rejtett mezőt az űrlapba, mondjuk submitted névvel, és 1-et adunk neki értéknek. Ezután le tudjuk ellenőrizni, hogy $_POST['submitted'] egyenlő-e 1-gyel.
- A submit inputot elnevezzük pl. submitted-nek (<input type="submit" name="submitted" value="Elküld" />, és le tudjuk ellenőrizni, hogy $_POST['submitted'] megegyezik-e a submit értékvel(vagyis "Elküld"-del). Ezt én speciel nem tartom elegáns megoldásnak. Mi van ha például megváltoztatom a gomb szövegét? Akkor a PHP kódban is át kell írni.

Most ennyi jutott eszembe, ha van ezeken kívül korrektebb megoldás is erre a problémára, akkor írjátok meg legyetek szívesek.

2. UTF-8 kódolást használok a weboldalamon, nincs vele semmilyen karakterkódolási problémám. Az adatbázisban és az oldalon is minden rendben. Viszont észrevettem, hogy van az űrlapoknak egy accept-charset attribútuma is. Megnéztem a Weblabor forráskódját, és láttam, hogy megadjátok (accept-charset="UTF-8"). Mért jó, ha megadom; mi baj lehet abból, ha nem?

3. Azt is észrevettem, hogy az űrlapoknak van egy name attribútuma is. Ez mire jó, mire lehetne használni? Inputoknál oké, kell egy név, ami alapján le lehet ellenőrizni az értékét, de az űrlapnál mi értelme van?

4. Még egy attribútumot felfedeztem, ez a lang. Értem, hogy mit lehet megadni, de a kérdés az, hogy mi értelme van, ha megadom?
 

Reguláris kifejezések

whiteman0524 · 2009. Aug. 31. (H), 21.19
Üdv

Csak annyi lenne a problémám, hogy nagyon szeretnék megszerezni egy könyvet egész pontosan ezt : Friedl, Jeffrey E. F.: Reguláris kifejezések mesterfokon. Sok jót olvastam a könyvről és nagyon érdekelne, továbbá már számtalanszor botlottam olyan problémába amit igazán jól csak reguláris kifejezésekkel lehetett volna megoldani de sajnos nem értek hozzá, ezért szeretném megtanulni. Kerestem a Google-ban de sajnos minden egyes helyen azt írják hogy már kifutott, és hogy keressem antikváriumban. Tudom elég "régi" könyv, 2003 - mas de szerintem azóta nem igen változtak ezek a dolgok, szóval nekem tökéletes lenne. Valakinek nincs ötlete hogy honnan lehetne ezt beszerezni ? Vagy ha esetleg tudna a témában hasonló nagyon jó (és hangsúlyozom nagyon jó) könyvet ajánlani akkor azt is szívesen fogadnám. A segítséget előre is kösz. (Jah és tudom hogy vannak online leírások is a témáról de őszintén szólva nem vagyok ezeknek a híve. Nem szeretek monitorról tanulni :) Plusz bocs ha rossz témába tettem a kérdésemet, de máshova se illett volna be igazán...)
 

Aktivációs hiba

robin97 · 2009. Aug. 31. (H), 17.32
Az a kérdésem van hogy egy oldalór megírtam egy aktivációs scriptet úgy ahogy írták és amikor regisztrálni akartam azt írta ki hogy:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /disk/raid0/r/o/robinszerogtasa/verify.php on line 42

Parse error: parse error, unexpected T_STRING in /disk/raid0/r/o/robinszerogtasa/verify.php on line 42

Két fáljból áll az egyik register.php:
<html>
<body>
<form action="verify.php" method="post" name="register">
Felhasználónév: <input type="text" name="username" />
Jelszó: <input type="text" name="password" />
Email: <input type="text" name="email" />
<input type="hidden" name="Regisztrálás" value="1"/>
<input type="submit" />
</form>
</body>
</html>

A másik verify.php:
<?php

mysql_connect("sql","ezt most nem írom be","ide most nem íróm be") or die(mysql_error());

mysql_select_db("robinszerogtasa") or die(mysql_error());

if ($_POST['form_submitted'] == '1') {
##User is registering, insert data until we can activate it

$activationKey = mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();
$username = mysql_real_escape_string($_POST[username]);
$password = mysql_real_escape_string($_POST[password]);

$email = mysql_real_escape_string($_POST[email]);

$sql="INSERT INTO users (username, password, email, activationkey, status) VALUES ('$username', '$password', '$email', '$activationKey', 'verify')";

if (!mysql_query($sql))

{

die('Error: ' .

PHP, MySQL és checkbox

szpistomi · 2009. Aug. 31. (H), 14.25
Hali!

Ismét problémába futottam...
A problémám a checkbox-okkal adódott. Eléggé kezdő szinten állok ezekkel a dolgokkal, de próbálok haladni...
Adott egy adatbázis, benne felhasználók adatai. A felhasználó admin is, ezt az adatbázisban "tinyint" típussal tárolom egy rekordban, NULL vagy 1 értékkel.

Így kellene működnie:
Amikor megnyitom a formot, az kitöltődik a kiválasztott user adataival, köztük checkboxokkal jelölve az adott tagságokat. Ha módosítok valamelyik boxon (kiveszem, azaz törlöm a tagságot, vagy bejelölöm, azaz létrehozom a tagságot), akkor azt a feldolgozó beírja az adatbázisba (a "$bg_admin" változó értékét NULL vagy 1-re állítja).

Ez a form részlete. A lekérdezés, és a többi szöveges mező működik, azt nem írom.

BG Admin: <input type="checkbox" name="bg_admin" value="be" checked="
<?php
if ($adatok['bg_admin'] = 1) {
echo 'yes';
} else {
echo 'no';}
?>"><br><br>
<input type="hidden" name="bg_admin_ki" value="ki">
A rejtett mező elvileg a kikapcsolás miatt kell, azt hiszem ilyesmit olvastam...
Önmagában ez se működik, mert mindenhol bejelöltet ad vissza.

Ez a feldolgozó része, de már az adatok beolvasásánál hibás...

if (isset($_POST['bg_admin']))
$bg_admin= "1";
else
{$_POST['bg_admin_ki'] = "ki";
$bg_admin= "NULL")};
Tudna valaki egy kis segítséget adni a hibajavításhoz, vagy esetleg korrekt kódot? Köszi!
 

Weblap látogatók kijelzése

tomi255 · 2009. Aug. 31. (H), 13.02
Hogyan lehet azt megcsinálni, hogy valamelyik menüsorban megjelenjen az hogy jelenleg kik tartózkodik az oldalon?Ez fontos lenne tudna valaki segíteni?