Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Płeć rozpoznana po imieniu [substr]
Forum PHP.pl > Forum > Przedszkole
xPietrek
Witam. Mam zrobiony formularz, który pyta o imię (wyslij.php i odbierz.php). Po wpisaniu imienia, przekierowuje mnie do pliku odbierz.php, w którym pisze: "Witaj Imie". Tylko że teraz mam jeszcze zrobić takie coś, że formularz musi rozpoznać płeć i napisać "jesteś kobietą" lub "jesteś mężczyzną".
Do tego ma być użyta funkcja 'substr'. Czytałem o niej w dokumentacji, jednak nie potrafię napisać takiego kodu.. Dopiero raczkuję. Naklepałem takie coś:

  1. $sex = substr('imie', -1);
  2. if ($sex = 'a')
  3. {
  4. echo("Jesteś kobietą")
  5. }
  6. else
  7. {
  8. echo("Jesteś mężcyzną")
  9. }

Jednak nie działa, zawsze wyskakuje "Jesteś kobietą". Proszę o pomoc.
nospor
doczytaj sobie jaka jest roznica miedzy
=
a
==
skowron-line
Bo nie = tylko ==
ShadowD
Tak w ogóle Twój algorytm jest błędny, jest kilka wyjątków od reguły końcówki "a". W sieci możesz znaleźć kilka imion nie kończących się na "a" i dość często spotykanych w naszym kraju. winksmiley.jpg
xPietrek
Noo faktycznie są imiona kończące się na 'a', ale to już dla mnie za trudne.
Chyba że kolega zechciałby trochę doradzić.
Poprawiłem i teraz to wygląda tak:
  1. <?php
  2. $sex = substr('imie', -1);
  3. if ($sex == 'a')
  4. {
  5. echo("Jesteś kobietą");
  6. }
  7. else
  8. {
  9. echo("Jesteś mężcyzną");
  10. }
  11. ?>

I póki co działa... Zmienna 'imie' jest podawana we wcześniejszym formularzu, zadziała tutaj ? Zamiast niej powinno się tam znaleźć imię danej osoby. Nie dam rade sprawdzić bo nie mam u siebie tamtych plików, a nie pamiętam jak one wyglądały. Dopiero raczkuję. Jakby ktoś mógł to proszę o jakąś ogólną poprawę tego kodu...
mike
Czemu nie zapytasz użytkownika jakiej jest płci?
mrok
Jest jeszcze Jan-Maria winksmiley.jpg
Adis92
Ja bym to rozwiązał tak że przepuściłbym przez funkcje sprawdzającą czy podane imię jest np: Kuba. Jeżeli tak to automatycznie by pomijało substr i podawało że płeć to mężczyzna. Oczywiście byłyby tam wypisane tylko wyjątki jeżeli tam by nie było danego imienia to by przechodziło do tej funkcji substr. Nietrudne i będzie działać.
gadgetus2121
wystarczy może prosta obsługa wyjatków try i catch dla tych które sa wyjatkami a w pozostałych przypadkach jesli sie kończy na a to kobieta imiona idzie wyliczyc na palcach disney,barnaba itp
mike
Cytat(gadgetus2121 @ 11.03.2010, 16:31:49 ) *
wystarczy może prosta obsługa wyjatków try i catch dla tych które sa wyjatkami (...)
Blok try ... catch nie do tego służy. To, że jakiś wyraz nie pasuje do pozostałych to nie jest wyjątek w kontekście programowania.
Nie podpowiadaj błędnych wzorców.
gothye
zrób tablicę imion :
  1. $kobieta = array('anna',.........,'beata')


i porównaj z imieniem użytkownika w warunku If .... np za pomocą strncasecmp()
xPietrek
@mike, bo to jest zadanie, żeby skrypt rozpoznał tongue.gif
I w jego treści jest "Skorzystaj z funkcji substr". A odnośnie tych wyjatków.. To można to jakoś tak zrobić:

if ('imie' == 'Kuba','Barnaba')
{
echo("Jesteś mężczyzną");
}

Bo z tą tablicą imion to nie za bardzo potrafię...

@gothye
Miałbym w tej tablicy wkleić wszystkie imiona kobiece ?

@Adis92 lub @gothye
Mógłbyś mi napisać cały taki kodzik...? Wiem że chcę iść na łatwiznę, ale potrzebuję tego na jutro, a nie zdążę nadrobić...
gothye
hmm ,mniej więcej tak :
  1. $kobieta = array('anna','beata');
  2. $facet = array('romek','jarek');
  3.  
  4. $user = 'Romek';
  5.  
  6. if(in_array ( strtolower($user) , $kobieta) ) echo 'jestes kobieta' ;
  7. else if(in_array ( strtolower($user) , $facet) ) echo 'jestes facetem' ;
xPietrek
@gothye
Ale to musiałbym wpisać wszystkie imiona...?
gothye
zgadza się ale masz wszystko tu http://forum.php.pl/lofiversion/index.php/t45683.html winksmiley.jpg
Adis92
  1. if ($sex == 'Kuba','imiona','...'){
  2. echo("Jesteś mężcyzną");
  3. }else{
  4. $sex = substr('imie', -1);
  5. if ($sex == 'a')
  6. {
  7. echo("Jesteś kobietą");
  8. }else{
  9. echo("Jesteś mężcyzną");
  10. }
  11. }

Coś w tym stylu.
ShadowD
  1. <?php
  2.  
  3. $imie='xyz';
  4.  
  5. $meszczyzniNaAWyjadki=array('a','b');
  6.  
  7. IF(in_array($imie,$meszczyzniNaAWyjadki))
  8. echo 'men';
  9. else
  10. {
  11. $sex = substr($imie, -1);
  12. if ($sex == 'a')
  13. {
  14. echo("Jesteś kobietą");
  15. }
  16. else
  17. {
  18. echo("Jesteś mężcyzną");
  19. }
  20. }
  21. ?>
  22.  
xPietrek
Ok, dzięki za pomoc smile.gif
Po repucie daje
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.