| -matuty- |
Post
#1
|
|
Goście |
Witam!
Słabo ogarniam forum,i jestem nowy więc szukając podobnego tematu mogłem go pominąć.Jeśli podobny temat istnieje to proszę mnie do niego przekierować bez głupich odpowiedzi ;D Jak napisać skrypt który gdy użytkownik zablokuje pokazywanie e-maila to się on niepojawia.Chodzi mi o profil i listę użytkowników Jeśli będziecie potrzebowali jakiś skrypt to wystarczy napisać. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 154 Pomógł: 3 Dołączył: 1.08.2011 Ostrzeżenie: (0%)
|
No to daj jakiś kod, bo na sucho można gdybać...
Ten post edytował przemo191 15.02.2014, 18:09:49 |
|
|
|
| -matuty- |
Post
#3
|
|
Goście |
Plik profil.php
CODE <?php require_once('inc/inc.php'); if(!empty($user['login'])) { require('style/menu_1.php'); echo '<div class="przes">'; if (isset($_GET['gracz'])) { $username = $_GET['gracz']; $userquery = mysql_query("SELECT * FROM user WHERE login = '$username'") or die (mysql_error().'funkcja profili tymczasowo niedziała'); $rows = mysql_num_rows($userquery); if ($rows != 1) { die('<center><h2><div id="a">Nieznaleziono gracza o takim loginie!</div></h2></center>'); } else{ while( $row = mysql_fetch_array($userquery, MYSQL_ASSOC)) { $login = $row['login']; $email = $row['email']; $opis = $row['opis']; require_once('style/profil/profil_func.php'); } } } echo '</div>'; require_once('style/menu_end.php'); mysql_free_result($userquery); mysql_close(); }else { header('Location: index.php'); } ?> Plik z listą użytkowników CODE <?php require_once('inc/inc.php'); if(!empty($user['login'])) { $all = "SELECT * FROM user"; $wyb = mysql_query($all) or die("Nie udało się wywołać użytkowników..."); $query = mysql_query("SELECT count(*) FROM `user`"); $ile = mysql_fetch_assoc($query); echo ' <div class="prze"> <div id="a"> <h2> '."liczba użytkowników: ". $ile['count(*)'].' </h2> <form action="profil.php" method="GET"> Idź do profilu użytkownika: <input type="text" name="gracz" style="color:white;background-color:#000000;border:0;border-radius:5px;" size="16"> <input type="submit" value="Przejdź"> </form> </div> <center> <table cellspacing="39px" cellpadding="0px"> <tr> <td> <img src="img/users/uslog.png"> </td> <td> <img src="img/users/email.png"> </td> <td> <img src="img/users/uslvl.png"> <td> <img src="img/users/uswin.png"> </td> <td> <img src="img/users/uslose.png"> </td> </tr> </table> '; while ($row = mysql_fetch_array($wyb)) { if($row["email"] == $user["email"]) { $row['email'] = '<div id="a">'.$row ["email"].'</div>'; }else { $row['email'] = $row['email']; } echo ' <div id="ramka"> <div id="tab"> <center> <table cellpadding="7px"> <tr align="center"> <td> <div id="a"> <a href="profil.php?gracz='.$row['login'].'">'.$row['login'].'</a> </div> </td> <td align="left">'.$row["email"].'</td> <td>'.$row["lvl"].'</td> <td>'.$row["wygrane"].'</td> <td>'.$row["przegrane"].'</td> </tr> </table> </center> </div> </div> '; } mysql_free_result($wyb); mysql_free_result($query); mysql_close(); }else { header('Location:index.php'); } ?> Plik profil_func.php CODE <?php if($login == $user['login']) { if(isset($_POST['op'])) { $nowy_opis = $_POST['opis']; $zmien_opis = mysql_query("UPDATE `users` SET `opis`='$nowy_opis' WHERE `id`='$user['id']'"); if($zmien_opis != 1){ echo "nie można zmienić opisu"; }else{ echo"Zmieniono opis"; } } if(isset($_POST['mail'])){ } echo' <table> <tr> <td> <table> <tr> <td bgcolor="1F89FF" width="250px" align="center" height="300px"> <div id="tab3"> <center> <div id="b"> '.$login.' - to twój profil. </div> </center> <table cellspacing="20px"> <tr align="center"> <td> <img src="img/users/email.png"> </td> </tr> <tr align="center"> <td> <div id="a">'.$email.'</div> </td> </tr> <tr align="center"> <td> <img src="img/users/uslog.png"> </td> </tr> <tr align="center"> <td> <div id="a">'.$login.'</div> </td> </tr> </table> </div> </div> </td> <td> <table> <tr> <td> <form action="" method="post"> Zmień opis:<br /> <textarea name="opis" cols="30" rows="5"></textarea> <input type="submit" value="zmień" name="op"> </form> </td> </tr> <tr> <td> <form action="" method="post"> <h4>Pokazywać e-mail?</h4> <input type="radio" name="tak" /> Tak<br /> <input type="radio" name="nie" />Nie<br /> <input type="submit" value="zapisz" name="mail"> </form> </td> </tr> </table> '; } ?> Jeżeli czegoś nierozumiecie to chętnie wyjaśnie |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%)
|
Wklej kod z odpowiednim bbcode.
|
|
|
|
| -matuty- |
Post
#5
|
|
Goście |
Plik z listą użytkowników
Plik profil_func.php
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Jeżeli pobierasz jednego usera to pętla nie jest potrzebna
Genialne
Dałeś kod, który nic nie mówi. Musisz mieć gdzieś zapisane czy user zezwala na pokazywanie e-maila czy nie. Na tej podstawie tworzysz prosty warunek if i to wszystko... |
|
|
|
| -matuty- |
Post
#7
|
|
Goście |
Ta pętla robi profile do każdego użytkownika osobno.zasada jest taka jak przy liście użytkowników.
Wgl przeczytałeś to?
Gdy w pasku napiszemy : Profil.php?gracz=hiniec123 - to pokaże się profil hinca jeśli taki użytkownik istnieje Jeśli profil.php?gracz=matuty - to samo tylko że profil matutyego a z tym $row['email'] = $row['email'] się pomyliłem ;p Ten post edytował matuty 16.02.2014, 12:32:56 |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 9 Dołączył: 14.01.2010 Ostrzeżenie: (0%)
|
Jak napisać skrypt który gdy użytkownik zablokuje pokazywanie e-maila to się on niepojawia.Chodzi mi o profil i listę użytkowników Znajdz sobie w tych plikach linijke, gdzie pokazujesz maila. Przed pokazaniem maila daj if`a , cos w stylu
Wypadalo by w profilu dodac pole typu checkbox, aby user okreslil, czy chce pokazac mail, czy nie. Potem z profilu robisz UPDATE z polem showMail - wystarczy tinyint(1) - jesli chce pokazac mail, to przyjmuje wartosc 1, inaczej 0. Jak to sobie obrobic, to raczej bedziesz juz wiedzial (IMG:style_emoticons/default/wink.gif) EDITED: Znalazlem jeszcze takie cos:
Sam jestem poczatkujacy, wiec moge sie tu mylic, ale jesli masz spora baze, to takie zapytanie bedzie bardziej obciazalo baze, niz gdy zawezisz zapytanie do:
Chodzi o to, aby nie mielilo zapytanie wszystkich pol, tylko te ktore potrzeba, wiec wystarczy policzyc liczbe loginow, czy tez pewnie masz jakies `id` w tej tabeli - bedziesz miec rowniez liczbe rekordow, a oszczedzisz na czasie i nie obciazysz bazy tak bardzo. Chyba, ze w tym pliku jeszcze korzystasz z innych pol... ale tak dokladnie sie nie wczytywalem. Ten post edytował c4ash 17.02.2014, 09:16:21 |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Ta pętla robi profile do każdego użytkownika osobno.zasada jest taka jak przy liście użytkowników. Wgl przeczytałeś to?
Gdy w pasku napiszemy : Profil.php?gracz=hiniec123 - to pokaże się profil hinca jeśli taki użytkownik istnieje Jeśli profil.php?gracz=matuty - to samo tylko że profil matutyego a z tym $row['email'] = $row['email'] się pomyliłem ;p Zapytanie może zwrócić 1 wynik bądź 0, bo warunek może spełnić maksymalnie 1 użytkownik, więc pętla nie jest potrzebna jeszcze raz powtórzę. |
|
|
|
| -matuty- |
Post
#10
|
|
Goście |
Znajdz sobie w tych plikach linijke, gdzie pokazujesz maila. Przed pokazaniem maila daj if`a , cos w stylu
Wypadalo by w profilu dodac pole typu checkbox, aby user okreslil, czy chce pokazac mail, czy nie. Potem z profilu robisz UPDATE z polem showMail - wystarczy tinyint(1) - jesli chce pokazac mail, to przyjmuje wartosc 1, inaczej 0. Jak to sobie obrobic, to raczej bedziesz juz wiedzial (IMG:style_emoticons/default/wink.gif) EDITED: Znalazlem jeszcze takie cos:
Sam jestem poczatkujacy, wiec moge sie tu mylic, ale jesli masz spora baze, to takie zapytanie bedzie bardziej obciazalo baze, niz gdy zawezisz zapytanie do:
Chodzi o to, aby nie mielilo zapytanie wszystkich pol, tylko te ktore potrzeba, wiec wystarczy policzyc liczbe loginow, czy tez pewnie masz jakies `id` w tej tabeli - bedziesz miec rowniez liczbe rekordow, a oszczedzisz na czasie i nie obciazysz bazy tak bardzo. Chyba, ze w tym pliku jeszcze korzystasz z innych pol... ale tak dokladnie sie nie wczytywalem. z tym emailem-to już obczajam oco chodzi (IMG:style_emoticons/default/biggrin.gif) thx. a z liczeniem użytkowników sie zaraz przekonam jeśli zadziała to spowoduje duże odciążenie dla serwera ;D Zapytanie może zwrócić 1 wynik bądź 0, bo warunek może spełnić maksymalnie 1 użytkownik, więc pętla nie jest potrzebna jeszcze raz powtórzę. hmm jemu działa - http://www.youtube.com/watch?v=IYmJeri6r0Y w sumie to mało mnie obchodzi na jakiej podstawie to działa ale uzyskałem oczekiwany rezultat (IMG:style_emoticons/default/biggrin.gif) Ten post edytował matuty 17.02.2014, 10:46:13 |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Sprawdź to
Ten post edytował Turson 17.02.2014, 10:57:43 |
|
|
|
| -matuty- |
Post
#12
|
|
Goście |
to wszystko:
ma być w $row? czy to ma być tak?(chodzi mi o średnik) |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Po prostu zgubiłem średnik. Ma być.
|
|
|
|
| -matuty- |
Post
#14
|
|
Goście |
ok spróbuje (IMG:style_emoticons/default/biggrin.gif)
Działa dzięki.Ale dalej nie rozumiem dlaczego niemoże być tak jak było... nie widze żadnej różnicy ale już zostawie bez pętli. |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Pętla jest używana, kiedy pobierasz wiele wyników i chcesz je np. wyświetlić. Jeżeli pobierasz 1 rekord jest ona zupełnie niepotrzebna i zastosowanie z posta #11 jest najlepsze.
|
|
|
|
| -matuty- |
Post
#16
|
|
Goście |
ok zastosuje sie (IMG:style_emoticons/default/tongue.gif)
|
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Warto również wspomnieć o
wstawianie wartości bezpośrednio do zapytania, która może być edytowana przez użytkownika (a więc dowolna) jest niebezpieczne. Podatne na SQL injection. |
|
|
|
| -matuty- |
Post
#18
|
|
Goście |
Warto również wspomnieć o
wstawianie wartości bezpośrednio do zapytania, która może być edytowana przez użytkownika (a więc dowolna) jest niebezpieczne. Podatne na SQL injection. A jeśli to zrobię tak? |
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Najlepiej używać PDO bądź MySQLi.
|
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 9 Dołączył: 14.01.2010 Ostrzeżenie: (0%)
|
Ale sie Wam temat rozwinal!
PDO to chyba na przyszlosc bedzie. Teraz aby za duzo nie pisac, mozesz zrobic tak jak ja mam. Wszedzie gdzie mam pobieranie wszelkiego rodzaju danych od usera mam na poczatku include do pliku z funkcjami, a w nim mam:
Potem kazdy jeden wpis traktuje $dane = clear($_GET['dane']); I po klopocie (IMG:style_emoticons/default/wink.gif) |
|
|
|
![]() ![]() |
|
Aktualny czas: 22.12.2025 - 23:34 |