Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wysylanie wiadomości do GG
Kshyhoo
post
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Witam. Chciałem podpiąć bramkę GG pod stronę - działa... Korzystam z gotowej klasy www2gg. W kodzie widoczne są jednak numery GG, czego chciałbym uniknąć. Do rzeczy:
formularz w pliku gg.php:
  1. <form name="" method="post" action="cpax.php?go=gg">
  2. <textarea name="tresc" class="www2gg" cols="20" rows="5"></textarea><br /><br />
  3. <select name="adresat" class="textbox" style="width:150px;">
  4. <option value=""> Wybierz adresata </option>
  5. <option value="1" >User 1</option>
  6. <option value="2" >User 2</option>
  7. </select><br /><br />
  8. <input type="submit" name="wyslij" class="button" value='Wyslij' onclick="document.getElementById('ladowanie').style.display='block'"><br /><br />
  9. <?php
  10. if ($_POST['wyslij']) {
  11. $adresaci = array('1' => 123456, '2' => 456789);
  12. $adresat = $adresaci[$_POST['adresat']];
  13. require('gg/www2gg.php');
  14. }
  15. ?>
  16. </form>

Fragment pliku www2gg.php odpowiedzialnego za wysyłanie:
  1. if ($seq = $gg->wiadomosc ($adresat, $tresc, $DODAWAJ_SPACJE_W_LINKACH))
  2. {
  3. /* statusu dostarczenia wiadomości */
  4. echo $tablica_komunikatow[$gg->status_dostarczenia ($seq)];
  5.  
  6. /* pełnego statusu adresata wiadomości */
  7. echo txt::wyswietl_status_odbiorcy ($gg->status_kontaktu[$adresat]);
  8.  
  9. /* opcjonalnie wiadomości odebrancyh z serwera o ile były jakieś */
  10. if ($pokaz_odebrane)
  11. echo txt::wyswietl_wiadomosci ($gg->wiadomosci);
  12.  
  13. } else {
  14. echo $gg->error;
  15. }

Funkcje załączone w pliku klasy-gg.inc
  1. function wyslij_wiadomosc($adresat, $tresc, $potwierdzenie = TRUE)
  2. {
  3. $tresc = txt::iso2cp($tresc);
  4. $seq = mt_rand();
  5.  
  6. $data = pack("VVVVVa".strlen($tresc)."C", GG_SEND_MSG, 0x0d + strlen($tresc), $adresat,
  7. $seq, ($potwierdzenie)?GG_CLASS_MSG:GG_CLASS_MSG | GG_CLASS_ACK, $tresc, 0);
  8. $this->Debug("Wyslano pakiet wiadomości : ".bin2hex($data), $data);
  9.  
  10. $this->status_dostarczenia[$seq] = FALSE; //zmieni sie przy otrzymaniu potwierdzenia
  11.  
  12. if (!fwrite($this->fp, $data))
  13. return FALSE;
  14.  
  15. return $seq;
  16. }

Wciąż mam tak:
Cytat
123456
01
Adresat ma byc numerkiem gadu - gadu

czyli w pliku z formularzem "widzi" tablicę a w pliku www2gg widzi tylko $_POST['adresat']
Nie chciałbym ingerować w gotowe pliki, bo w przypadku aktualizacji trzeba będzie dopisywać kod na nowo. Wolałbym przekazać z formularza w jakiś sposób w postaci zmiennej. Jakieś pomysły?

Ten post edytował Kshyhoo 30.05.2010, 21:43:21


--------------------
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Pytania z serii czemu/dlaczego:
1. Numerujesz od 1
2. Przy value podajesz: 01, 02
3. Przy tablicy numery gg podajesz jako liczbę a indeks tablicy jako string?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Poprawiłem kod, bo skopiowałem w trakcie zmian... Co do pytań:
1. A dlaczego nie?
2. To poprawiłem.
3. Tego nie łapię.


--------------------
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(Kshyhoo @ 30.05.2010, 22:45:32 ) *
Poprawiłem kod, bo skopiowałem w trakcie zmian... Co do pytań:
1. A dlaczego nie?
2. To poprawiłem.
3. Tego nie łapię.

1. Ponieważ przyjęło się w językach programowaniach (z małymi wyjątkami), że numerujemy od zera.
3.

  1. array('1' => 1231231, '2' => 213123)


zamiast
  1. array(1 => 123123, 2=>asdfasdf)


Już abstrahując od tego, że string tyczy się też punktu pierwszego, gdybyś numerował od zera nie musiałbyś nadawać ręcznie indeksów.

A co do pytania - poczytaj o zasięgu zmiennych.
$_POST to tablica superglobalna? ;]

Ten post edytował fifi209 31.05.2010, 06:31:29


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Wszystko to wiem. Mimo zastosowania wszystkich podpowiedzi, efekt jest dokładnie ten sam...

Może jeszcze raz zamieszczę (obecny) kod formularza:
  1. <form name="" method="post" action="cpax.php?go=gg">
  2. <textarea name="tresc" class="www2gg" cols="20" rows="5"></textarea><br /><br />
  3. <select name="adresat" class="textbox" style="width:150px;">
  4. <option value=""> Wybierz adresata </option>
  5. <option value="0" >User 1</option>
  6. <option value="1" >User 2</option>
  7. </select><br /><br />
  8.  
  9. if ($_POST['wyslij']) {
  10. $adresaci = array(123456,456789);
  11. $adresat = $adresaci[$_POST['adresat']];
  12. require('gg/www2gg.php');
  13. }
  14.  
  15. <input type="submit" name="wyslij" class="button" value='Wyslij' onclick="document.getElementById('ladowanie').style.display='block'"><br /><br />
  16. </form>


Ten post edytował Kshyhoo 31.05.2010, 19:57:27


--------------------
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 Aktualny czas: 20.08.2025 - 18:17