Kontrollera om Å, Ä, Ö finns i en sträng

Permalänk
Medlem

Kontrollera om Å, Ä, Ö finns i en sträng

Ett litet nybörjarproblem som jag behöver hjälp med!

Jag vill kontrollera att ett lösenord inte innehåller Å, Ä, Ö då databasen inte kan hantera dessa.

Hur kontrollerar jag att en sträng inte innehåller Å, Ä, Ö på bästa sätt?

//Ungefär såhär tänker jag if($password == "Å, Ä, Ö") { $error = true; }

Hur gör jag detta bäst i pratiken? Med en preg match funktion?

Tacksam för svar!

Permalänk
Medlem

Personligen hade jag ändrat om så att databasen kan hantera dem.

Du gör som du vill.

Ja, preg_match är nog bra att använda.

Exempel (otestad):

if (preg_match("/[ÅÄÖåäö]/", $password)) //Returnerar true om någon eller alla tecken inom [ och ] förekommer. { echo "Your password contains an illegal character."; } else { echo "Your password is ok."; }

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Här är en annan variant, som bygger på strpos (länk). Otestad, men bör fungera.

function strContains($haystack, $needles) { foreach($needles as $needle) { if(strpos($haystack, $needle) !== false) { return true; } } return false; }

Permalänk
Medlem

Nämen det där verkar fungera utmärkt! Tackar

Permalänk
Medlem

Sedan bör du använda någon form av Hash på dina lösen.

md5()
http://se2.php.net/manual/en/function.md5.php

sha1()
http://se2.php.net/manual/en/function.sha1.php

Använd detta gärna med ett salt av något slag.

Detta för att inte lösenorden ska stå i Klartext i din databas.

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.