Skocz do zawartości

[PhP] System powiadomień jak na nk


Markuz

Rekomendowane odpowiedzi

  • Administratorzy

Chociażby tak:

Jak dodajesz np. zdjęcie, to pobierasz z bazy znajomych danej osoby i dla każdego z nich wstawiasz nowy rekord, że jakiś tam znajomy dodał zdjęcie.

 

Sytuacja odwrotna:

Jak dodajesz zdjęcie, to dodajesz do bazy log, że dodałeś zdjęcie i gdy się logujesz to wyrzuca Logi należące do Twoich znajomych. (SELECT ... WHERE IN).

Odnośnik do komentarza
Udostępnij na innych stronach

Yhym. Jeszcze mam 1 taki problem z OR :

SELECT `id`,`user_id`,`user2_id`,`accept` FROM `zapro_znajomy` WHERE  user_id='$user_idd' OR user2_id='$user_idd' AND accept='1'

id- id zaproszenia

user_id - kto wyslal

user2_id - do kogo

accept - czy zaakceptowany

i teraz tak, $user_idd to jest id aktualnie zalogowane użytkownika, wiec sprawdzam czy istnieje zaproszenie gdzie ID Usera 1 badz 2 jest rowne teraz zalogowanemu uzytkownikowi a potem warunek ze accept='1' ;]

A to mi wyświetla zaproszenie gdzie accpet=0 , czemu? Czy musze robic 2 zapytania jedno o usera id a drugie o akceptacje? Prosze o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

SELECT `id`,`user_id`,`user2_id`,`accept` FROM `zapro_znajomy` WHERE  (user_id='$user_idd' OR user2_id='$user_idd') AND accept='1'

 

Twój AND dotyczył tylko user2_id :)

Odnośnik do komentarza
Udostępnij na innych stronach

Mam jeszcze 1 male pytanko :)

Jak zrobić funkcje która zwraca mi jakąś wartość ?

Np. chciałbym zrobić sb funkcje:

liczba_znajomych($user_id)

i potem

$znajomi = liczba_znajomych($user_id);

, jak zrobić żeby funkcja zwracała by jakąś wartość a nie wykonywała sam kod i tyle heh ? Mam nadzieje że wiecie o co mi chodzi . :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

function liczba_znajomych($user_id = -1)
{
if $user_id = -1 return 0;

$result=mysql_query("SELECT liczba_znajomych FROM user WHERE user_id = $user_id;");
list($znajomych)=mysql_fetch_array($result);

return $znajomych;
}

 

Edit: Tymon szybszy :P Za długo sie zastanawiałem czy fetch_array ma byc :P

Odnośnik do komentarza
Udostępnij na innych stronach

function liczba_znajomych($user_id = -1)
{
if $user_id = -1 return 0;

$result=mysql_query("SELECT liczba_znajomych FROM user WHERE user_id = $user_id;");
list($znajomych)=mysql_fetch_array($result);

return $znajomych;
}

 

Edit: Tymon szybszy :P Za długo sie zastanawiałem czy fetch_array ma byc :P

 

if $user_id = -1 return 0;

what the fock?

 

W ogóle się zastanawiam po co dawać $user_id jako opcjonalny argument ;s

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

I tak i nie, ponieważ select_num_rows służy do wyciągania liczby wierszy z wyniku zapytania, które nie ma w domyśle zwracać wartości skalarnej - po prostu nie do tego służy. Po pierwsze zapytanie powinno zwracać wartość skalarną (SELECT count(*) FROM ... ), a następnie wynik winen być wyciągany za pomocą mysql_result( $result, 0 ). Tak jest najprofesjonalniej.

Odnośnik do komentarza
Udostępnij na innych stronach

ok, to jak tak dużo już w tym temacie piszecie to pozwole sobie zadać jeszcze 1 pytanie. To będzie taka mała "burza mózgów" (chyba)

Jakie stosujecie zabezpieczenia w waszych skryptach php? Do sesji, formularzy itp. hmm? Ja w swoim używam tylko addslashes ale chciałbym wiedzieć o zabezpieczeniach troszke więcej :) Jakieś tutki?

Odnośnik do komentarza
Udostępnij na innych stronach

A co tu jest do zabezpieczania, sql injection i xss. Dane trzeba tylko filtrować w 2 miejscach, przed wysłaniem do zapytania i przed wyświetleniem. I wszystko.

Ja mam odpowiednie klasy do obsługi danych wejściowych i generowania zapytań.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
if $user_id = -1 return 0;

what the fock?

 

W ogóle się zastanawiam po co dawać $user_id jako opcjonalny argument ;s

 

W razie gdyby zapomniał :) Chciałem przy okazji pokazać budowę funkcji i domyślne parametry, zeby też nieco nauczyć. A tam oczywiście miało być ==, ale ostatnio kodzę głównie w Delphi i GML gdzie wystarczy = stąd pomyłka.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale miałem na myśli flooding, co jest z poziomu php możliwe do ograniczenia.

To już odrębny temat, DDoS to większe ataki, flooding to podstawowa rzecz lol ;d, np. masz formularz dodawania usera który przenosi do skryptu dodającego, później nie przeładowując strony wyświetla się komunikat o dodaniu, a to jest błąd. ;p

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
W razie gdyby zapomniał :) Chciałem przy okazji pokazać budowę funkcji i domyślne parametry, zeby też nieco nauczyć. A tam oczywiście miało być ==, ale ostatnio kodzę głównie w Delphi i GML gdzie wystarczy = stąd pomyłka.
No ale nie od tego służą domyślne parametry. One mają umożliwiać prawidłowe wykonanie funkcji jeśli nie są przekazywane argumenty. W przypadku co podałeś, służą do blokady wykonywania funkcji, co jest koncepcyjnie złe. Przecież wystarczy nie określać domyślnych argumentów funkcji i po problemie. Takie błędy to powinien programista poprawiać na etapie tworzenia projektu.
Odnośnik do komentarza
Udostępnij na innych stronach

Jeszcze 1, zrobiłem upload do zdjęć, wszystko działało ok, aż po restarcie kompa sprawdzam i nie chce uploadować, nic nie pisze ... i nic nie zmieniałem ;] Oto kod:

open_grey('Dodaj zdjecie');
echo'
<div id="user_div">
<form enctype="multipart/form-data" action="profil.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="50000" />
<input name="plik" type="file" />
<input type="submit" value="Wyślij plik" />
</form>
</div>
';


if(isset($_POST['plik']))
{
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];
//Sprawdzamy czy plik został wysłany
if(!is_uploaded_file($_FILES['plik'][tmp_name])){
echo "<div id='user_div'>Musisz wybrać jakiś plik !</div>
";
exit;}
//Sprawdzamy czy nie ma błędów
if($_FILES['plik'][error] != 0){
echo "<div id='user_div'>Wystąpił błąd podczas przesyłania pliku!
Sprawdź czy plik posiada odpowiednią wagę i spróbuj ponownie!</div>
";
exit;}
//Sprawdzamy MIME TYPE pliku
if($_FILES['plik'][type] == "image/pjpeg" ||
$_FILES['plik'][type] == "image/png" ||
$_FILES['plik'][type] == "image/gif"){
//Dotarliśmy tutaj to wszystko jest OK = UPLOAD
$md_time = md5(time());
$md_liczba = rand(0,9999);
if(move_uploaded_file($_FILES['plik'][tmp_name], "./user_images/".$md_liczba."$md_time".$_FILES['plik'][name])){
$sciezka_pliku = $md_liczba."$md_time".$_FILES['plik'][name];
$user_idd = $_SESSION['user_id'];
$zapytanie3 = "INSERT INTO `user_zdjecie` 
(`id`, `user_id`,`opis`,`url`) 
VALUES ('', '$user_idd', '','$sciezka_pliku')";
$idzapytania3 = mysql_query($zapytanie3) or die('Error: '.mysql_error());

miniaturka('user_images',$sciezka_pliku);

echo "<div id='user_div'>Plik wrzucono pomyslnie! </div>
";
exit;
}else{
echo "<div id='user_div'>Wystąpił nieoczekiwany błąd podczas kopiowania!</div>
";
exit;
}
}else{
echo "<div id='user_div'>Możesz uploadować tylko zdjecia w formacie *.png,*.gif oraz *.pjpeg</div>!
";
exit;
} 
}
close_grey();

 

PS. Poradziłem sb już heh :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...