Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Płeć rozpoznana po imieniu [substr]
xPietrek
post 11.03.2010, 14:31:56
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.09.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post 11.03.2010, 14:32:52
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




doczytaj sobie jaka jest roznica miedzy
=
a
==


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
skowron-line
post 11.03.2010, 14:33:30
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Bo nie = tylko ==


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
ShadowD
post 11.03.2010, 14:37:44
Post #4





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


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


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
xPietrek
post 11.03.2010, 14:47:49
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.09.2009

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
mike
post 11.03.2010, 14:58:00
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Czemu nie zapytasz użytkownika jakiej jest płci?
Go to the top of the page
+Quote Post
mrok
post 11.03.2010, 15:01:36
Post #7





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

Ostrzeżenie: (0%)
-----


Jest jeszcze Jan-Maria winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
Adis92
post 11.03.2010, 16:11:05
Post #8





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

Ostrzeżenie: (0%)
-----


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ć.

Ten post edytował Adis92 11.03.2010, 16:11:50
Go to the top of the page
+Quote Post
gadgetus2121
post 11.03.2010, 16:31:49
Post #9





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 9.03.2010
Skąd: Wronki

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
mike
post 11.03.2010, 16:52:15
Post #10





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
gothye
post 11.03.2010, 16:54:51
Post #11





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


zrób tablicę imion :
  1. $kobieta = array('anna',.........,'beata')


i porównaj z imieniem użytkownika w warunku If .... np za pomocą strncasecmp()


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
xPietrek
post 11.03.2010, 17:12:16
Post #12





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.09.2009

Ostrzeżenie: (0%)
-----


@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ć...
Go to the top of the page
+Quote Post
gothye
post 11.03.2010, 17:22:02
Post #13





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


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' ;


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
xPietrek
post 11.03.2010, 17:27:37
Post #14





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.09.2009

Ostrzeżenie: (0%)
-----


@gothye
Ale to musiałbym wpisać wszystkie imiona...?
Go to the top of the page
+Quote Post
gothye
post 11.03.2010, 17:28:40
Post #15





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


zgadza się ale masz wszystko tu http://forum.php.pl/lofiversion/index.php/t45683.html winksmiley.jpg


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
Adis92
post 11.03.2010, 18:12:39
Post #16





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

Ostrzeżenie: (0%)
-----


  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.
Go to the top of the page
+Quote Post
ShadowD
post 11.03.2010, 23:49:42
Post #17





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


  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.  


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
xPietrek
post 30.03.2010, 18:21:36
Post #18





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.09.2009

Ostrzeżenie: (0%)
-----


Ok, dzięki za pomoc smile.gif
Po repucie daje
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 07:41