Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Wolontariat][inne][HTML][PHP]Skrypt do tworzenia sygnatury
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
widmo2004
Witam mam takie pytanie; czy dałby ktoś rade poprawić mi pewien skrypt, bo niestety moja wiedza nie jest tak ogromna by dać sobie radę z owym tematem.

Więc tak skrypt ten ma na celu pobieranie informacji o danym koncie z gry i tworzenie aktualnej sygnaturki na forum.
zanim pokaże skrypt który posiadam na swoim serwerze dam wcześniej link do postu autora gdzie został on przedstawiony, może coś źle zrobiłem lub tp.

Wiec tak link do postu autora znajdziecie tutaj :Dynamiczna sygnaturka

a oto moja praca, no nie do końca moja ale przerobione dla mojej strony:

Pierwszy plik znajdujący się w głównym katalogu wg instrukcji:

Kod
<?php
$page['url'] = 'http://diabloteam.pl"/"';
$sciezka = "signatures/";
$lista=array();
$katalog = opendir($sciezka);
while ($plik = strtolower(readdir($katalog))) {
$sa = explode('.',$plik);
if (($plik<>".")&&($plik<>"..")&&($sa[1]=='jpg')||($sa[1]=='png')) if(!is_dir($sciezka.$plik))
$lista[]=$plik;
}
closedir($katalog);
echo '<h2>Wybierz sygnaturkę: </h2>';
    $w = count($lista);
        for($s=0;$s<$w;$s++) {;
            echo '<p><a href="index.php?add='.$lista[$s].'" title="'.$lista[$s].'"><img src="signatures/'.$lista[$s].'" alt="'.$lista[$s].'"></a></p>';        
        }
if(isset($_GET['add'])) {
    $add = htmlspecialchars(addslashes($_GET['add']));
    echo 'Poprawnie wybrałeś sygnaturkę. Teraz wpisz nick swojej postaci: ';
    echo '<p>';
    echo '<form method="post">';
    echo '<input type="text" name="nick" />';
    echo '<input type="hidden" name="signature" value="'.$add.'" />';
    echo '<input type="submit" value="Generuj" />';    
    echo '</form>';
    echo '</p>';
        if(isset($_POST['nick'])) {
    if(empty($_POST['signature']) || empty($_POST['nick'])) {
        echo 'Wypełnij wszystkie pola.';
    }
    else {
    mysql_connect('localhost','diabxxxx','topsecrect') or die(mysql_error());
    mysql_select_db('signatures') or die(mysql_error());
        $nick = stripslashes(addslashes($_POST['nick']));
        $nick = str_replace(' ','+',$nick);
        $zmienna = file_get_contents('http://www.tibia.com/community/?subtopic=characters&name='.$nick.'');
        preg_match('/Name:<\/TD><TD>(.+)<\/TD>/Ui', $zmienna, $wynik1);
            if($wynik1[1] != $_POST['nick']) {
                echo 'Taka postać nie istnieje.';
            } else {
                echo 'Sygnaturka została wygenerowana dla postaci: <h2>'.stripslashes(addslashes($_POST['nick'])).'</h2>';
      for ($i=0; $i<9; $i++) {
      $id = rand(0, 9999);
      }
      echo '<p>Oto twoja sygnaturka: <a href="signatures/signature.php?id='.intval($id).'" target="_blank">'.$page['url'].'signatures/signature.php?id='.intval($id).'</a></p>';
      echo '<br />Adres bezpośredni: <p><input type="text" value="'.$page['url'].'signatures/signature.php?id='.intval($id).'" style="width: 350px;" readonly /></p>';
    echo '<br />BBcode na forum: <p><input type="text" value="
    [img]'.$page['url'].'signatures/signature.php?id='.intval($id).'[/img]" style="width: 350px;
    " readonly /></p>';
    echo '<br />Html: <p><input type="text" value="
    <img src=&quot;'.$page['url'].'signatures/signature.php?id='.intval($id).'&quot; alt=&quot;'.$page['url'].'&quot; />" style="width: 350px;
    &quot; alt=&quot;Test&quot; />" readonly /></p>';
    if(!mysql_query('INSERT INTO signatures VALUES('.$id.',"'.mysql_real_escape_string($_POST['nick']).'","'.mysql_real_escape_string($_POST['signature']).'")')) {
                    echo 'Error in query:<br />';
                    echo mysql_error();        
        }
    }
    mysql_close();
}
        }
}
?>



Drugi plik znajdujący się w katalogu signatures wg instrukcji:

Kod
<?php
$id = intval($_GET['id']);
    mysql_connect('localhost','diaxxxx','topsecrect') or die(mysql_error());
    mysql_select_db('signatures') or die(mysql_error());
    $sig_query = mysql_query("SELECT nick,signature FROM signatures WHERE id = $id") or die('<strong>Blad mysql</strong>: '.mysql_error());
        if(!mysql_num_rows($sig_query)) {
            echo 'Taka sygnatura nie istnieje. <a href="signature.php?create">Utwórz swoją własną</a>';
        } else {
        $sig = mysql_fetch_array($sig_query);
        $nick = str_replace(' ','+',$sig['nick']);
        $zmienna = file_get_contents('http://www.tibia.com/community/?subtopic=characters&name='.$nick.'');
preg_match('/Name:<\/TD><TD>(.+)<\/TD>/Ui', $zmienna, $wynik1);
preg_match('/Level:<\/TD><TD>(.+)<\/TD>/Ui', $zmienna, $wynik2);
preg_match('/Profession:<\/TD><TD>(.+)<\/TD>/Ui', $zmienna, $wynik3);
preg_match('/Sex:<\/TD><TD>(.+)<\/TD>/Ui', $zmienna, $wynik4);
preg_match('/Account*Status:<\/TD><TD>(.+)<\/TD>/Ui', $zmienna, $wynik5);
preg_match('/World:<\/TD><TD>(.+)<\/TD>/Ui', $zmienna, $wynik6);
preg_match('/Residence:<\/TD><TD>(.+)<\/TD>/Ui', $zmienna, $wynik7);
preg_match('/<td><nobr>Achievement Points:<\/nobr><\/td><td>(.+)<\/td>/Ui', $zmienna, $wynik8);
      $avatar = imagecreatefrompng( ''.$sig['signature'].'' );
      $bialy = imagecolorallocate( $avatar, 255, 255, 255 );
      $czerwony = imagecolorallocate( $avatar, 255, 0, 0 );
      $zielony = imagecolorallocate( $avatar, 0, 255, 0 );
      $lewa = imagecolorallocate( $avatar, 255, 255, 0 );
      imagestring( $avatar, 4, 3, 2, 'Name', $lewa );
      imagestring( $avatar, 4, 100, 2, $wynik1[1], $bialy );
      imagestring( $avatar, 2, 3, 20, 'Level', $lewa );
      imagestring( $avatar, 2, 100, 20, $wynik2[1], $bialy );
      imagestring( $avatar, 2, 3, 38, 'Profession', $lewa );
      imagestring( $avatar, 2, 100, 38, $wynik3[1], $bialy );
      imagestring( $avatar, 2, 3, 56, 'World', $lewa );
      imagestring( $avatar, 2, 100, 56, $wynik6[1], $bialy );
      imagestring( $avatar, 2, 3, 74, 'Sex', $lewa );
      imagestring( $avatar, 2, 100, 74, $wynik4[1], $bialy );
      imagestring( $avatar, 2, 3, 92, 'Residence', $lewa );
      imagestring( $avatar, 2, 100, 92, $wynik7[1], $bialy );
      imagestring( $avatar, 2, 3, 120, 'Achiev. Points', $lewa );
      imagestring( $avatar, 2, 100, 120, $wynik8[1], $bialy );
      if($wynik5[1] == 'Free Account') {
      imagestring( $avatar, 2, 100, 138, $wynik5[1], $czerwony );
      } else {
      imagestring( $avatar, 2, 100, 138, $wynik5[1], $zielony );
      }
      header( 'Content-type: image/png' );
      imagepng( $avatar );
      imagedestroy( $avatar );
}
    if(isset($_GET['create'])) {
?>
<?php
    }
?>



Wyniki mojej pracy znajdziecie na:moja strona


niestety wywala mi błąd że dany nick nie istnieje np nick Marek, ale jak sprawdzimy to na stronie tej gry "tibia" podany nick jest zarejestrowany, więc powinno przejść dalej do tworzenia sygnatury, lecz tak nie jest.


Jeśli ktoś z was dałby radę przerobić mi ten skrypt by działał byłbym bardzo wdzięczny Lkingsmiley.png
dla szczegółów podam że nie jest mi potrzebna sygnaturka akurat pod tą grę tylko pod Combat Arms
wiec będzie i tak trzeba przerobić ten skrypt by pobierał inne dane jednak zasada powinna być podobna, ( chyba że ktoś się skusi poprawić mi odrazu pod tą grę )

Kolejne moje pytanie to:
Czy owy skrypt aktualizuje sygnaturkę automatycznie np co 5 h lub tp. jeśli nie to czy da rade tak zrobić.
i następne pytanie : czy da rade określać rozmiar i kolor czcionki przy tworzeniu sygnaturki np poprzez wybór czcionki w sygnaturce
i ostatnie: jak zrobić by podczas robienia sygnaturki skrypt pytał się które dane mają być wyświetlane ( np czy ma pokazać w sygnaturce nick, klan lub tp )

Wiem że sporo jest pracy przy tym jednaj za bardzo raczkuje w tym temacie by zrobić to sam i proszę was o pomoc
Kshyhoo
Podejmę się zadania, oczywiście nie za frajer.
nekomata
Eeee a nie pomyślałeś że może oficjalna strona "tibi" uległa zmianie od czasu.. 06-07-10, 11:45 (data publikacji skryptu na podanej przez ciebie stronie?"[qoute]Kolejne moje pytanie to: Czy owy skrypt aktualizuje sygnaturkę automatycznie np co 5 h lub tp. jeśli nie to czy da rade tak zrobić.
i następne pytanie : czy da rade określać rozmiar i kolor czcionki przy tworzeniu sygnaturki np poprzez wybór czcionki w sygnaturce
i ostatnie: jak zrobić by podczas robienia sygnaturki skrypt pytał się które dane mają być wyświetlane ( np czy ma pokazać w sygnaturce nick, klan lub tp )[/quote]
3 Razy tak , PHP jest wielce potężnym potworem , jednak wnioskując z twoich pytań nie masz pojęcia o PHP .Ale gotowca ci nikt nie napiszę .
Możliwości dla ciebie są takie :
A : Ogarnąć podstawy PHP (to co potrzebujesz do takiej sygnatury to : Mózg , podstawowe kursy php , "tworzenie grafik w php"(jest taki temat na php.pl biggrin.gif) , file_get_contents albo cUrl i preg_match_all
B : Użyj google , może trafisz na gotowy skrypt pod Combat arms .
C : Zostaw to i idź grać dalej tongue.gif
Substr
Dość dawno temu pisałem sobie z nudów skrypt który pobiera statystyki gracza ze strony http://wypas.eu i wyświetla je za pomocą GD na obrazku, dodatkowo losowo wybiera tło. Wydaje mi się, że jest dość łatwy do ogarnięcia, musisz wstawić swoje wyrażenia regularne, adres itd. Przykładowy link: http://palinski.net.pl/lol.php?name=Matteiru

Co z tego wyniesiesz to Twoje. wink.gif

KOD:
  1. <?php
  2. $obrazek = imagecreate(400, 155)
  3. or die("Nie mozna zainicjowac strumienia GD");
  4. header("Content-type: image/png");
  5. $kolor_tla = imagecolorallocate($obrazek, rand(0, 255), rand(0, 255), rand(0, 255));
  6. $kolor_tekstu = imagecolorallocate($obrazek, 0, 0, 0);
  7. $search = array(" ", "'");
  8. $replace = array("_", "--");
  9. $nickname = $_GET[name];
  10. $s_nickname = str_replace($search, $replace, $nickname);
  11. if (empty($s_nickname)) {
  12. imagestring ($obrazek, 5, 10, 10, "Podaj nick gracza!", $kolor_tekstu);
  13. imagepng ($obrazek );
  14. imagedestroy($obrazek);
  15. }
  16. else {
  17. $strona = file_get_contents('http://wypas.eu/characters/'.$s_nickname.'/');
  18. }
  19. if(ereg("Errors", $strona)) {
  20. imagestring ( $obrazek, 5, 10, 10, "Nie ma takiego gracza!", $kolor_tekstu );
  21. imagepng ( $obrazek );
  22. imagedestroy( $obrazek );
  23. }
  24. if(ereg("Never logged in.", $strona)) {
  25. preg_match('/Name:<\/TD><TD>(.*?)<\/TD>/', $strona, $name);
  26. imagestring ( $obrazek, 5, 10, 10, 'Name: '.$name[1], $kolor_tekstu );
  27. }
  28. elseif (ereg("Former", $strona)) {
  29. preg_match('/Name:<\/TD><TD><img src="(.*?)"\/>(.*?)<br \/>/', $strona, $name);
  30. imagestring ( $obrazek, 5, 10, 10, 'Name: '.$name[2], $kolor_tekstu );
  31. }
  32. else {
  33. preg_match('/Name:<\/TD><TD><img src="(.*?)"\/>(.*?)<\/TD>/', $strona, $name);
  34. imagestring ( $obrazek, 5, 10, 10, 'Name: '.$name[2], $kolor_tekstu );
  35. }
  36. preg_match('/Level:<\/TD><TD>(.*?)<\/TD>/', $strona, $level);
  37. imagestring ( $obrazek, 5, 10, 25, 'Level: '.$level[1], $kolor_tekstu );
  38.  
  39. preg_match('/<TD>Sex:<\/TD><TD>(.*?)<\/TD>/', $strona, $sex);
  40. imagestring ( $obrazek, 5, 10, 40, 'Sex: '.$sex[1], $kolor_tekstu );
  41.  
  42.  
  43. preg_match('/<TD>Marital status:<\/TD><TD>(.*?)<\/TD>/', $strona, $marital_status);
  44. imagestring ( $obrazek, 5, 10, 55, 'Marital status: '.$marital_status[1], $kolor_tekstu );
  45.  
  46. preg_match('/<TD>Profession:<\/TD><TD>(.*?)<\/TD>/', $strona, $profession);
  47. imagestring ( $obrazek, 5, 10, 70, 'Profession: '.$profession[1], $kolor_tekstu );
  48.  
  49. preg_match('/<TD>Position:<\/TD><TD>(.*?)<\/TD>/', $strona, $possition);
  50. imagestring ( $obrazek, 5, 10, 85, 'Position: '.$possition[1], $kolor_tekstu );
  51.  
  52. preg_match('/<TD>Residence:<\/TD><TD>(.*?)<\/TD>/', $strona, $residence);
  53. imagestring ( $obrazek, 5, 10, 100, 'Residence: '.$residence[1], $kolor_tekstu );
  54.  
  55. preg_match('/<TD>World:<\/TD><TD>(.*?)<\/TD>/', $strona, $world);
  56. imagestring ( $obrazek, 5, 10, 115, 'World: '.$world[1], $kolor_tekstu );
  57.  
  58. preg_match('/<TD>Last login:<\/TD><TD colspan=2>(.*?)<\/TD>/', $strona, $last_login);
  59. imagestring ( $obrazek, 5, 10, 130, 'Last login: '.$last_login[1], $kolor_tekstu );
  60.  
  61. imagepng($obrazek);
  62. imagedestroy($obrazek);
  63.  
  64.  
  65. ?>
widmo2004
Kshyhoo oczywiście jeśli byś to zrobił sam od podstaw to nie ma sprawy, jeśli mnie na ciebie stać oneeyedsmiley02.png
jak coś to napisz mi kwotę na gg 8787887


nekomata jeśli bym miał pojęcie o PHP nie pytał bym w tej formie o ten skrypt, jednak dzięki za podręczniki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.