Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php+mysql] prywatne wiadomości
klapaucius
post 22.07.2009, 15:18:49
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Witam wszystkich! Mam problem nad ktorym siedze juz 2 dni i nic nie moge wskurac. Mianowicie na mojej stronie zrobilem system wiadomosci. Chce jednak zrobic cos takiego, ze jesli ktos w polu "adresat" wpisze nieprawidlową nazwe uzytkownika, to zeby wywalil wlasnie taki komunikat ze taki user nei istnieje. Niestety mam problem bo za kazdym razem pisze to samo, ze uzytkownik nie istnieje, nawet jak wpsize poprawnie. Oto kod:
  1. <?php
  2. include('baza.php');
  3. include('gora.php');
  4. $date = date("Y-m-d H:i:s");
  5. $q = mysql_query("SELECT `id` FROM `users` WHERE `user` = '".addslashes($_POST['odbiorca'])."'") or die ("Błąd przy q!");
  6.    if(isset($_POST['temat']) && isset($_POST['odbiorca']) && isset($_POST['tresc'])) {
  7.                         if(isset($q['id'])){
  8.                                               mysql_query("INSERT INTO `wiadomosci` (`login`, `od`, `temat`, `tresc`, `date`) VALUES ('".addslashes($_POST['odbiorca'])."', '$user', '".addslashes($_POST['temat'])."', '".addslashes($_POST['tresc'])."', '$date')") or die ("Błąd przy wysyłaniu wiadomości!");
  9.                                               echo "Wiadomość wysłana";
  10.                               }
  11.                         else{
  12.                                               echo "Nie ma takiego nicku" ;
  13.                             }
  14.    } else {
  15.        echo "<form method='POST'>
  16.                        <p>Temat: <input type='text' name='temat' size='40' maxsize='100' value='".$_POST['temat']."' /></p>
  17.                        <p>Treść: <textarea name='tresc' columns='80' rows='5' >".$_POST['tresc']."</textarea></p>
  18.                        <p>Adresat: <input type='text' name='odbiorca' maxsize='50' value='".$_POST['odbiorca']."' />
  19.                        <input type='submit' name='wyslij' value='Wyślij wiadomość' />
  20.                    </form>";
  21.    }
  22. include('dol.php');
  23. ?>

pozdrawiam
Go to the top of the page
+Quote Post
erix
post 22.07.2009, 15:30:13
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. if(isset($q['id'])){
  3. ?>

A wiesz, po co jest mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual? Kurs PHP+MySQL.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
ucho
post 22.07.2009, 15:30:43
Post #3





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

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


A gdzie pobierasz wyniki zapytania SQL? Żadnego mysql_fetch_* nie widzę
Go to the top of the page
+Quote Post
marcio
post 22.07.2009, 15:32:16
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Ja mam to zrobione tak kodu nie podam bo to jest latwe:

Masz form ktos wpisuje dane i naciska submit po czym sprawdzasz czy pola nie sa puste jezeli nie to robisz zapytanie takie jakie masz:
Kod
$q = mysql_query("SELECT `id` FROM `users` WHERE `user` = '".addslashes($_POST['odbiorca'])."'") or die ("Błąd przy q!");

Np za pomoca mysql_num_rows() sprawdzasz czy znaleziono takiego user;'a jesli tak dodajesz do bazu jesli nie to nie dodajesz.


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
klapaucius
post 22.07.2009, 17:16:22
Post #5





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


aah tak zapomnailem o fetchowaniu.... no ale teraz dziala.... Dzieki wielkie Wam i prosze o wyrozumailosc bo tak szczerze to nigdy nie uczylem sie ani mysql ani php tongue.gif znam je jedynie troche z innnych jezykow programowania smile.gif dzieki jeszcze raz i pozdrawiam!!!
Go to the top of the page
+Quote Post
erix
post 22.07.2009, 17:24:41
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




To może na przyszłość zamień kolejność: NAJPIERW podstawy, dopiero potem kodzisz?


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomekpl
post 23.07.2009, 03:29:47
Post #7





Grupa: Zarejestrowani
Postów: 134
Pomógł: 5
Dołączył: 9.08.2008
Skąd: Szczecin

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


Polecam użycie odczytywanie id użytkownika z GET
strona.pl/message/1
Formatowanie adresu jak kto woli.

Wtedy sprawdzasz
  1. <?php
  2. $id=intval($_GET['id']);
  3. $sql=mysql_query("SELECT id FROM users WHERE id='$id' ");
  4. $ile=mysql_num_rows($sql);
  5.  
  6. if($ile>0){
  7. jest uzytkownik pokaz opcje wysylania, a do pola input gdzie jest nazwa u&#380;ytkownika daj readolny="readonly" i input z hidden z id usera
  8. }else{
  9. brak
  10. }
  11. ?>

Oczywiście pamiętamy o sql injection i strukturach połączenia do bazy i wyświetlania wyników.



Cytat(erix @ 22.07.2009, 18:24:41 ) *
To może na przyszłość zamień kolejność: NAJPIERW podstawy, dopiero potem kodzisz?

A co ty taki książkowy się zrobiłeś? Nie znam, cię, ale po kilku postach można stwierdzić ten fakt. Forum jest po to by pomagać.

Ten post edytował tomekpl 23.07.2009, 03:36:09
Go to the top of the page
+Quote Post
MaestroS
post 23.07.2009, 23:06:51
Post #8





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Kanagawa-ken, Japonia

Ostrzeżenie: (10%)
X----


Cytat(tomekpl @ 23.07.2009, 04:29:47 ) *
Polecam użycie odczytywanie id użytkownika z GET
strona.pl/message/1
Formatowanie adresu jak kto woli.

Wtedy sprawdzasz
  1. <?php
  2. $id=intval($_GET['id']);
  3. $sql=mysql_query(&#092;"SELECT id FROM users WHERE id='$id' \");
  4. $ile=mysql_num_rows($sql);
  5.  
  6. if($ile>0){
  7. jest uzytkownik pokaz opcje wysylania, a do pola input gdzie jest nazwa u&#380;ytkownika daj readolny=\"readonly\" i input z hidden z id usera
  8. }else{
  9. brak
  10. }
  11. ?>

Oczywiście pamiętamy o sql injection i strukturach połączenia do bazy i wyświetlania wyników.




A co ty taki książkowy się zrobiłeś? Nie znam, cię, ale po kilku postach można stwierdzić ten fakt. Forum jest po to by pomagać.


Wybacz, ale jeżeli czytać o INSERT to czemu nie o SELECT? Jeżeli używać mysql_query() to czemu nie wiedzieć o mysql_num_rows() ?
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: 24.07.2025 - 17:19