Segítséget szeretnék egy kódrészem átírásához. Tudnátok segíteni?
Értem, hogy PM, de ez az oldal nem ezért van!
"a tanárom mondta hogy ez nem jó mert hogy én honnan tudom h így kell ezzel a függvénnyel s hogy máshogy oldjam meg.
Töltsön fel egy teszt kódot. A kód mindig 24 karakter hosszú kell, legyen - betűket és számokat tartalmazhat az angol ABC betűiből. A kódhoz tárolja el a felhasználó azonosítóját, hogy a feltöltő azonosítható legyen, illetve alakítsa át a kódot, hogy csak nagybetűk és számok legyenek benne. A kód egyedi, tehát egy kódot csak egyszer lehet feltölteni.
hogy lehet ezt másképp megoldani?
function storeCode($code)
{
global $dbLink;
if (!preg_match('/[^A-Za-z0-9]/', $code) && strlen($code) == 24) // '/[^a-z\d]/i' should also work.
{
$code = strtoupper($code);
$query = "SELECT code FROM codes WHERE code='$code' LIMIT 1";
$result = mysqli_query($dbLink, $query) or die(mysqli_error($dbLink));
$row = mysqli_fetch_row($result);
if ($row[0] != null && $row[0] == $code) {
return 0;
}
$userId = $_SESSION['user_data']['id'];
$query = "INSERT INTO codes(code, user_id) VALUES('$code', '$userId')";
mysqli_query($dbLink, $query) or die(mysqli_error($dbLink));
return true;
}
return false;
}"
És ezt a kódot te ki is próbáltad?
if (!preg_match('/[^A-Za-z0-9]/', $code) && strlen($code) == 24)
Nekem van egy olyan érzésem, hogy ez azt jelenti, hogy '!preg_match()', nem illeszkedik a regexpre és a hossza mégis 24 karakter. Végül is a "betűket és számokat tartalmazhat az angol ABC betűiből" máris teljesül... gondolom ez volt a baja.
"Máshogy old meg",
Egyszerűen belerakod a karaktereket egy tömbbe, aztán egyesével végignézed mindegyik karaktert, hogy a tömb valamelyik eleme e. Ha nem, akkor ki lehet lépni, ha igen, akkor folytatod a következő elemmel. Bár eléggé favágós megoldás.
Anonymus
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!