Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Domyślny avatar ALE przy rejestracji SMF
Forum PHP.pl > Forum > Przedszkole
Pcbecaw
Witam. Jak zrobić coś takiego, że przy rejestracji jest domyślny avatar, ale w taki sposób, jakby uzytkownik sam go dodał? Chodzi mi o te same kolumny w bazie danych, żeby id_attach się zwiększał, ponieważ pobieram avatary na osobnej stronie i jesli wgrają oni avatar to jest ok, ale jeśli nie wgrają to nie są indeksowani w smf_attachment, więc ni jak nie można pobrać ich avatarów. Macie na to jakiś pomysł?
Sephirus
Ok - Chciałbym pomóc ale nijak mi nie dajesz wink.gif

Rozpisz to trochę lepiej w jakich tablicach trzymasz dane rejestracyjne (użytkownika) - jaką ma strukturę, w jakiej tablicy trzymasz te avatary - jak są powiązane.
Pcbecaw
tabela avatarów - smf_attachment (eksport):
http://www.wklejto.pl/100458
tabela użytkowników - smf_members (eksport):
http://wklejto.pl/100457

Połączone są kolumną id_member. Jeśli potrzebne są jakieś dane - powiedz, chętnie udostępnie wszystko, co niezbędne.
BTW. dziękuję za zainteresowanie się problemem (na trzech forach pisalem również i na żadnym nie dostałem odpowiedzi).
Sephirus
Ok z tego co widzę to (wydaje mi się że) po prostu musisz przy rejestracji oprócz dodania rekordu do smf_members dodać rekord do smf_attachments z id_member takim jak ten powstały z smf_members (najprościej mysql_insert_id() po pierwszym zapytaniu) wydaje mi się po-prostu, że to o to chodzi choć jest do dla mnie nazbyt oczywiste ;P (pozostaje kwestia uzupełnienia reszty pól w smf_attachments - nie wiem co to jest to "id_folder" ale Ty pewnie tak)

Nie do końca rozumiem "jakby uzytkownik sam go dodał?" ;>

A tak nawiasem mówiąc jeżeli robisz coś tak, że wymaga to odpowiednich rekordów w dwóch tabelach (tak jak w tym przypadku każdy user ma awatar) czyli relacja 1:1 zastanów się po prostu nad połączeniem dwóch tabel, możesz do tabeli smf_users dodać przecież dane o avatarze użytkownika bo ma jeden konkretny. Jeśli to Ci nie pasuje to zapoznaj się z relacjami i kluczami obcymi w bazie danych.

EDIT: kurcze - dopiero się kapnąłem że SMF to skrypt forum... ;P Cały wywód na nic bo raczej nie będziesz ingerował w jego kod - chociaż możesz odszukać kawałek kodu odpowiedzialny za wrzucenie użytkownika do bazy i dodanie w tym miejscu po prostu drugiego "inserta" według składni tego CMS'a wrzucającego domyślny avatar wink.gif Sorki ale pierwszy raz się z SMF spotkałem haha.gif

Tak więc powodzenia i przepraszam za mą nieznajomość tego CMS'a ;P
Pcbecaw
Tutaj plik register.php:
http://wklej.org/id/555338/
ale nie wiem gdzie jak "wpasować" się w ten kod i dodać kolejny rekord do smf attachment w stylu eksportu zamieszczonego powyżej. Mógłbyś mi w tym jakoś pomóc?
Sephirus
Pobieżnie przejrzałem ten plik ale nie ma tam żadnego "INSERT"a hmmm nie mam teraz czasu bo jestem w pracy ale obiecuje wieczorem pomóc. Chyba że ktoś mnie uprzedzi wink.gif Głowa do góry wink.gif

LINIJKA: 499 "$memberID = registerMember($regOptions, true);" Znajdź gdzie jest funkcja registerMember() to będzie tam wink.gif Ale to musi być załączane w innym pliku
Pcbecaw
Znalazłem to w pliku "manageregistration.php" w linii 150:
http://wklejto.pl/100570
w pliku subs-members w liniach 476/477:
http://www.wklejto.pl/100571

jednak zapewne chodzi o pierwszy plik, czyli manageregistration.php.
teraz pod tym:
  1. $context['new_member'] = array(
  2. 'id' => $memberID,
  3. 'name' => $_POST['user'],
  4. 'href' => $scripturl . '?action=profile;u=' . $memberID,
  5. 'link' => '<a href="' . $scripturl . '?action=profile;u=' . $memberID . '">' . $_POST['user'] . '</a>',
  6. );

do $context chyba trzeba by dodać "dodawanie" nowego rekordu w tabeli smf_attachments, jedak nie mam pomysłu jak to zrobić. Fakt jest taki, że jesteśmy już blisko smile.gif
Sephirus
Ok plik subs-members linijka od 761 (gdzieś tak)

  1. foreach ($regOptions['register_vars'] as $var => $val)
  2. {
  3. $type = 'string';
  4. if (in_array($var, $knownInts))
  5. $type = 'int';
  6. elseif (in_array($var, $knownFloats))
  7. $type = 'float';
  8. elseif ($var == 'birthdate')
  9. $type = 'date';
  10.  
  11. $column_names[$var] = $type;
  12. $values[$var] = $val;
  13. }
  14.  
  15. // Register them into the database.
  16. $smcFunc['db_insert']('',
  17. '{db_prefix}members',
  18. $column_names,
  19. $values,
  20. array('id_member')
  21. );
  22. $memberID = $smcFunc['db_insert_id']('{db_prefix}members', 'id_member');


Tu masz dodanie do bazy (za pomocą ich konkretnej funkcji), musisz teraz pod tym analogicznie dodać dane do smf_attachments używając wzoru powyżej pod id dostępne z $memberID

To Ci powinno wystarczyć wink.gif próbuj - wieczorem najwyżej jeszcze postaram się pomóc

HTH! wink.gif
Pcbecaw
Nie bardzo wiem jak dodać dokładnie taki sam rekord, jak w eksporcie tabeli kilka postów wyżej. Gdybyś mógł coś pomóc/naprowadzić byłbym wdzięczny, ponieważ męczę się z tym problemem już od 4 dni i ciągle stoje w miejscu sad.gif
Sephirus
  1. $column_names = array(
  2. 'id_thumb' => 'int',
  3. 'id_msg' => 'int',
  4. 'id_member' => 'int',
  5. 'id_folder' => 'int',
  6. 'attachment_type' => 'int',
  7. 'filename' => 'string',
  8. 'file_hash' => 'string',
  9. 'fileext' => 'string',
  10. 'size' => 'int',
  11. 'downloads' => 'int',
  12. 'width' => 'int',
  13. 'height' => 'int',
  14. 'mime_type' => 'string',
  15. 'approved' => 'int'
  16. );
  17.  
  18. $values = array(
  19. 'id_thumb' => ?,
  20. 'id_msg' => ?,
  21. 'id_member' => $memberID,
  22. 'id_folder' => ?,
  23. 'attachment_type' => ?;
  24. 'filename' => NAZWA_PLIKU,
  25. 'file_hash' => HASH_PLIKU, // trzeba sprawdzić jak generują
  26. 'fileext' => ROZSZERZENIE_PLIKU,
  27. 'size' => WIELKOSC_PLIKU_W_BAJTACH, // najprawdopodobniej
  28. 'downloads' => 0,
  29. 'width' => WIDTH,
  30. 'height' => HEIGHT,
  31. 'mime_type' => TYP_MIME,
  32. 'approved' => 1
  33. );
  34.  
  35. $smcFunc['db_insert']('',
  36. '{db_prefix}attchments',
  37. $column_names,
  38. $values,
  39. array('id_attach')
  40. );


To wrzucasz zaraz po tych linijkach które Ci podałem poprzednio.

I teraz tak:

Nie wiem (bo niby skąd ;P) jakie pola tam trzeba wrzucić (tablica $values) te ze znakami "?" są konkretnie do tego przypisane i nie będę zgadywał.

Jak dasz jakieś przykładowe wartości zgodne z typami danych to rekord się doda.

Moja propozycja:

W normalny sposób dodaj ze 2-3 avatarki za pośrednictwem forum. Zobacz jak zostały przedstawione w tablicy smf_attachments. Poznasz w ten sposób co jest do czego.
Następnie musisz wrzucić w ten sam sposób już avatar, który będzie tym "domyślnym" i pokopiować odpowiednie wartości pól rekordu z smf_attachments do tego skryptu wyżej. W ten sposób przy każdej rejestracji user będzie miał standardowo taki avatarek.

Może się jednak pojawić problem - Po zmianie avatarka przez jednego użytkownika może się okzać że cms skasował plik z obrazkiem i nie będzie się on już wyświetlał nikomu... musisz to prostu sprawdzić.

Napisz co i jak z tego rozumiesz i działaj! wink.gif

Sam musisz to teraz ciągnąć dalej wink.gif
Pcbecaw
Cytat
(bo niby skąd ;P)

Wyżej zamieściłem eksporty z przykładowymi rekordami:
tabela avatarów - smf_attachment (eksport):
http://www.wklejto.pl/100458
tabela użytkowników - smf_members (eksport):
http://wklejto.pl/100457
Może zaaplikuj sobie to w testową bazę ok? Później tylko mnie sprawdziłbyś, czy dobrze dopisałem wartości (zanim wprawie to w ruch).
Obecnie mam tak:
  1. // Register them into the database.
  2. $smcFunc['db_insert']('',
  3. '{db_prefix}members',
  4. $column_names,
  5. $values,
  6. array('id_member')
  7. );
  8. $memberID = $smcFunc['db_insert_id']('{db_prefix}members', 'id_member');
  9.  
  10. /////////////////////
  11. $column_names = array(
  12. 'id_thumb' => 'int',
  13. 'id_msg' => 'int',
  14. 'id_member' => 'int',
  15. 'id_folder' => 'int',
  16. 'attachment_type' => 'int',
  17. 'filename' => 'string',
  18. 'file_hash' => 'string',
  19. 'fileext' => 'string',
  20. 'size' => 'int',
  21. 'downloads' => 'int',
  22. 'width' => 'int',
  23. 'height' => 'int',
  24. 'mime_type' => 'string',
  25. 'approved' => 'int'
  26. );
  27.  
  28. $values = array(
  29. 'id_thumb' => '0',
  30. 'id_msg' => '0',
  31. 'id_member' => $memberID,
  32. 'id_folder' => '1',
  33. 'attachment_type' => '0';
  34. 'filename' => 'avatar_1_1308503667.png',
  35. 'file_hash' => 'd2e3fbe9241ddfca15238b1a32df2594264059b7', // trzeba sprawdzić jak generują
  36. 'fileext' => png,
  37. 'size' => '7006',
  38. 'downloads' => 0,
  39. 'width' => 64,
  40. 'height' => 64,
  41. 'mime_type' => 'image/png',
  42. 'approved' => 1
  43. );
  44.  
  45. $smcFunc['db_insert']('',
  46. '{db_prefix}attchments',
  47. $column_names,
  48. $values,
  49. array('id_attach')
  50. );
  51. /////////////////////

Jako dane przepisałem wartość przykładowego rekordu, powinno być ok? Bo w końcu ten avek już jest wgrany u jednego użytkownika i tylko przepisałem jego dane. Pytanie jeszcze mam, czy te wartości, które wstawiłem powinny być wpisane tak jak są obecnie? (w apostrofach niektóre) ?

Poprawka values:
  1. $values = array(
  2. 'id_thumb' => 0,
  3. 'id_msg' => 0,
  4. 'id_member' => $memberID,
  5. 'id_folder' => 1,
  6. 'attachment_type' => 0;
  7. 'filename' => 'avatar_1_1308503667.png',
  8. 'file_hash' => 'd2e3fbe9241ddfca15238b1a32df2594264059b7', // trzeba sprawdzić jak generują
  9. 'fileext' => png,
  10. 'size' => 7006,
  11. 'downloads' => 0,
  12. 'width' => 64,
  13. 'height' => 64,
  14. 'mime_type' => 'image/png',
  15. 'approved' => 1
  16. );
teraz jest ok?
Sephirus
hmm na pewno fileext = 'png' też powinno być bo to tekst wink.gif

Co do testowania u mnie to Ci nie pomogę bo obecnie nie mam jak...

Jeśli chodzi o ten przykładowy rekord to powinno zadziałać. Przetestuj najpierw czy dodaje ten rekord - a jak dodaje to czy ten avatarek nowo-zarejestrowanego usera jest ok.

Jak to zadziała to już prawie jesteś w domu - zostanie ostatnia rzecz do sprawdzenia - niby wszystko działa ok, ale spróbuj na nowym użytkowniku zmeinić ten avatar - i sprawdź czy tamten fizycznie został - bo może zdażyć się tak, że po zmianie jednego usera plik z obrazkiem zniknie ;/

Daj znać jak Ci poszło wink.gif

p.s. co do tych struktur to je widziałem - chodziło mi o to że nie wiem w jaki sposób oni na przykład hashują ten obrazek itd wink.gif
Pcbecaw
Nie dodaje rekordu i po rejestracji rejestruje, ale wywala błąd:
Błąd bazy danych podczas rejestracji. Co jest nie tak?
Sephirus
hmm może trzeba podmienić zmienne - spróbuj zrobić tak wink.gif

W tym naszym kodzie zmień nazwy zmiennych (dodaj 1 na koniec na przykład)
  1. /////////////////////
  2. $column_names1 = array(
  3. //...
  4. );
  5.  
  6. $values1 = array(
  7. //..
  8. );
  9.  
  10. $smcFunc['db_insert']('',
  11. '{db_prefix}attachments',
  12. $column_names1,
  13. $values1,
  14. array('id_attach')
  15. );
  16. /////////////////////


i w linii '{db_prefix}attachments', był błąd - literówka "attchments" => "attachments"
Pcbecaw
Szkoda, że punkt pomocy można kliknąć tylko raz, bo chętnie bym kliknął z 10 razy za Twoją pomoc i nieocenione zaangażowanie w problem. Naprawdę bardzo dziękuję Rkingsmiley.png
Wyświetla avatar, ale nie wyśweitla grafiki, czyli pojawia się, ale ze złą ścieżką.
Ścieżka brzmi: http://localhost/smf/index.php?action=dlattach;attach=I W TYM MIEJSCU NUMER
jednak, jeśli dla danego numeru avatar nie jest przypisany - po prostu się nie wyświetla. Co może być nie tak?

Zupełnei nie wiadomo dlaczego tak się dzieje, ponieważ rekordy NICZYM się nie różnią.

Chyba znalazłem rozwiązanie:
musze wgrać ten avatar tam, gdzie są zapisywane jak po wysłaniu. Tylko muszę znaleźć to miejsce.
Sephirus
w sumie to by też rozwiązało ten problem o którym Ci pisałem że mogą znikać avatarki po zmianie ;P Fajnie że idzie do przodu wink.gif (nie musisz za każdym moim postem mi nabijać tych "pomógł" ja nie po to to robie wink.gif
Pcbecaw
jest problem, bo te avatary nie są wgrywane do folderu. Zupełnie nie wiem co się z nimi dzieje po wgraniu ich przez użytkownika jako "wyślij plik". Masz może jakiś pomysł gdzie to może być? Przeszukałem dysk C wpisując tą frazę i nic nie znalazło.

Znalazłem logi avataró w folderze attachments. Najpewniej zostają one tworzone przy dodaniu avatara do bazy i jeśli ich nazwa nie równa się z nazwą avatara domyslnego - nie wyświetlą się. Co by teraz zrobic... hmmm

jak próbowałem otworzyć ten plik to wszystko wykrzaczyło. To jakiś dziki format, którego nawet mi nie pokazuje.

Wniosek: te dziwne pliki są uzależnione od id_attach. Jeśli się różnią - nie wyśweitlą się avatary.

w pliku index.php w tym folderze jest coś takiego:
  1. <?php
  2.  
  3. // This file is here solely to protect your attachments directory.
  4.  
  5. // Look for Settings.php....
  6. if (file_exists(dirname(dirname(__FILE__)) . '/Settings.php'))
  7. {
  8. // Found it!
  9. require(dirname(dirname(__FILE__)) . '/Settings.php');
  10. header('Location: ' . $boardurl);
  11. }
  12. // Can't find it... just forget it.
  13. else
  14.  
  15. ?>

Może to jakoś zmodyfikować? Kompletnie nie mam pomysłu. Przychodzi mi na myśl najgłupszy pomysł, żeby skopiować te pliki x5000 i pozamieniac id w kolejnosci 1,2,3,4,...,5000. Musi być na to inny/lepszy sposób.

A to plik settings.php:
http://wklej.org/id/555736/
Sephirus
Słuchaj a czy te pliki co tam znalazłeś te z dziwną składnią mają jakieś rozszerzenie? bo może to są właśnie obrazki może system po wgraniu ich zamienia ich nazwę na coś co powiązane jest z id_attach albo tym hashem w tej tablicy, potem przy wyświetlaniu je przerabia na obrazek z powrotem - zauważ że to możliwe bo w tablicy masz nazwę pliku, rozszerzenie itp wink.gif spróbuj zmienić nazwę temu dziwnemu plikowi na taki jak obrazek mieć powinien i zobacz czy da się odpalić go jako obrazek wink.gif
Pcbecaw
Co bym nie wpisał w nazwe tego pliku, to i tak przed nazwą docelową musi być konkretne id_attach użytkownika i podłoga (_). Formatu mi nawet nie pokazuje, ale zapewne jest tak jak mówisz, czyli zamienia na plik, a później odwraca na obrazek.
Sephirus
Ok a podrzuć jakąś przykładową nazwę tego pliku
Pcbecaw
8_d2e3fbe9241ddfca15238b1a32df2594264059b7

to "8", to nie id_attach, tak jak pisałem wyżej, a id_member.
Sephirus
ok czyli 8 to id_member a czy to

d2e3fbe9241ddfca15238b1a32df2594264059b7

nie ma nic wspólnego z polem 'file_hash' z tabeli smf_attachments? Bo mi się wydaje że to jest jakiś hash z nazwy albo id obrazka...

Musimy tylko wiedzieć z czego..

i podaj mi tak przy okazji z jeden poprawny rekord z smf_attachments (dodany w standardowy sposób wink.gif

Ok i mam pomysł - zrób tak: Zarejestruj nowego usera, sprawdź jego id_member. Potem wejdź do tego katalogu z tymi dziwnymi plikami i skopiuj jeden podając mu id_member tego nowego usera na początek i zobaczy czy mu działa ten avatar (czy tak robiłeś już?)
Pcbecaw
d2e3fbe9241ddfca15238b1a32df2594264059b7 to jest hashem. (zobacz przykład dodania rekordu z subs-members.php)
poprawny rekord - http://imageshack.us/photo/my-images/6/ddddadas.png/
Jeśli chodzi o duplikowanie i zmiane nazwy pliku to robiłem tak - stąd mój głupi pomysł zrobienia tego x5000
Sephirus
Acha już kumam - źle Cię zrozumiałem smile.gif

Ok i wtedy jak tak robisz to działa ;P

Ten twój pomysł nie jest taki głupi wink.gif będziesz miał bazę avatarów na tyle tysięcy na ile zrobisz ale ja mam nieco lepszy ;P

A może by te pliki generować tak od razu po rejestracji? automatycznie?

Zrób tak - skopiuj jeden plik z domyślnym avatarem w tym folderze i zapisz go pod nazwą na przykład 'default' wink.gif

Po tych naszych wypocinach dodaj po prostu skopiowanie pliku:

  1. copy('sciezka/do/pliku/default','sciezka/do/pliku/'.$memberID.'_'.$hash);


Powinno grać wink.gif
Pcbecaw
skopiowałem jeden i zmienilem nazwe na "default" tak jak radziłeś. Obecnie kod wygląda tak:
  1. /////////////////////
  2. $column_names1 = array(
  3. 'id_thumb' => 'int',
  4. 'id_msg' => 'int',
  5. 'id_member' => 'int',
  6. 'id_folder' => 'int',
  7. 'attachment_type' => 'int',
  8. 'filename' => 'string',
  9. 'file_hash' => 'string',
  10. 'fileext' => 'string',
  11. 'size' => 'int',
  12. 'downloads' => 'int',
  13. 'width' => 'int',
  14. 'height' => 'int',
  15. 'mime_type' => 'string',
  16. 'approved' => 'int'
  17. );
  18.  
  19. $values1 = array(
  20. 'id_thumb' => 0,
  21. 'id_msg' => 0,
  22. 'id_member' => $memberID,
  23. 'id_folder' => 1,
  24. 'attachment_type' => 0,
  25. 'filename' => 'http://tester999.cba.pl/avatar.png',
  26. 'file_hash' => 'default', // trzeba sprawdzić jak generują
  27. 'fileext' => 'png',
  28. 'size' => 7006,
  29. 'downloads' => 0,
  30. 'width' => 65,
  31. 'height' => 64,
  32. 'mime_type' => 'image/png',
  33. 'approved' => 1
  34. );
  35.  
  36. $smcFunc['db_insert']('',
  37. '{db_prefix}attachments',
  38. $column_names1,
  39. $values1,
  40. array('id_attach')
  41. );
  42. copy('smf/attachments/default','smf/attachments/'.$memberID.'_'.$hash);
  43. /////////////////////
i niestety nie działa kopiowanie w folderze. Głowe daje, że źle wpisałem tą linijke z "copy".
Sephirus
Oj nie tak nie tak wink.gif

'file_hash' => 'default' - zmień tak jak było

a tu copy('smf/attachments/default','smf/attachments/'.$memberID.'_'.$hash); $hash zamień na ten hash domyślnego obrazka wink.gif

  1. /////////////////////
  2. $column_names1 = array(
  3. 'id_thumb' => 'int',
  4. 'id_msg' => 'int',
  5. 'id_member' => 'int',
  6. 'id_folder' => 'int',
  7. 'attachment_type' => 'int',
  8. 'filename' => 'string',
  9. 'file_hash' => 'string',
  10. 'fileext' => 'string',
  11. 'size' => 'int',
  12. 'downloads' => 'int',
  13. 'width' => 'int',
  14. 'height' => 'int',
  15. 'mime_type' => 'string',
  16. 'approved' => 'int'
  17. );
  18.  
  19. $values1 = array(
  20. 'id_thumb' => 0,
  21. 'id_msg' => 0,
  22. 'id_member' => $memberID,
  23. 'id_folder' => 1,
  24. 'attachment_type' => 0,
  25. 'filename' => 'http://tester999.cba.pl/avatar.png',
  26. 'file_hash' => 'd2e3fbe9241ddfca15238b1a32df2594264059b7', // trzeba sprawdzić jak generują
  27. 'fileext' => 'png',
  28. 'size' => 7006,
  29. 'downloads' => 0,
  30. 'width' => 65,
  31. 'height' => 64,
  32. 'mime_type' => 'image/png',
  33. 'approved' => 1
  34. );
  35.  
  36. $smcFunc['db_insert']('',
  37. '{db_prefix}attachments',
  38. $column_names1,
  39. $values1,
  40. array('id_attach')
  41. );
  42. copy('smf/attachments/default','smf/attachments/'.$memberID.'_d2e3fbe9241ddfca15238b1a32df2594264059b7');
  43. /////////////////////
Pcbecaw
Wciąż nie kopiuje. Co może być nie tak?
W folderze attachment mam ten plik o nazwe "default" z danymi z domyslnego avatara (tego np. administratora, który działa).
Nadpisałem kod w subs-... i wciąż nie kopiuje. Co z tym jest źle?
Sephirus
hmm a podaj mu może ścieżkę bezwzględną w tym copy do tego folderu może się gubi w folderach?
Pcbecaw
testuje to na localu na xamppie. podać mu całe "C:\xampp\htdocs\smf\attachments"?

Podałem i również nie działa:
  1. copy('C:\xampp\htdocs\smf\attachments\default','C:\xampp\htdocs\smf\attachments'.$memberID.'_d2e3fbe9241ddfca15238b1a32df2594264059b7');
Sephirus
tak wink.gif


zapomniałeś "\" w jednym miejscu przed $memberID
Pcbecaw
Jak dodaje to jedno "\" to nie koloruje mi prawidłowo kodu, a co z tym idzie - błąd.
P.S. używam notepada ++
Sephirus
to daj \\ wink.gif bo to jest znak escape'owania wink.gif
Pcbecaw
Teraz kopiuje, wszystko git, ale jednak musze sie poprawic. na poczatku pisalem ze to id_attach, pozniej ze member, teraz jednak stwierdzam ze na 100% id_attach. Czy wystarczy zmienić:
  1. copy('C:\xampp\htdocs\smf\attachments\default','C:\xampp\htdocs\smf\attachments\\'.$attachID.'_d2e3fbe9241ddfca15238b1a32df2594264059b7');
?
Chodzi mi o to "attachID" to była ta zmienna? Czy jakoś inaczej się nazywała?
Sephirus
Poczekaj coś mi tu nie gra - daj mi chwile
Pcbecaw
chyba mam:
dodać attachID, a przed tym wpisać:
  1. $attachID = $smcFunc['db_insert_id']('{db_prefix}attachments', 'id_attach');
ruszy?
Sephirus
No i pięknie! biggrin.gif o to chodziło wink.gif właśnie miałem pisać wink.gif
Pcbecaw
  1. /////////////////////
  2. $column_names1 = array(
  3. 'id_thumb' => 'int',
  4. 'id_msg' => 'int',
  5. 'id_member' => 'int',
  6. 'id_folder' => 'int',
  7. 'attachment_type' => 'int',
  8. 'filename' => 'string',
  9. 'file_hash' => 'string',
  10. 'fileext' => 'string',
  11. 'size' => 'int',
  12. 'downloads' => 'int',
  13. 'width' => 'int',
  14. 'height' => 'int',
  15. 'mime_type' => 'string',
  16. 'approved' => 'int'
  17. );
  18.  
  19. $values1 = array(
  20. 'id_thumb' => 0,
  21. 'id_msg' => 0,
  22. 'id_member' => $memberID,
  23. 'id_folder' => 1,
  24. 'attachment_type' => 0,
  25. 'filename' => 'avatar_1_1308503667.png',
  26. 'file_hash' => 'd2e3fbe9241ddfca15238b1a32df2594264059b7', // trzeba sprawdzić jak generują
  27. 'fileext' => 'png',
  28. 'size' => 7006,
  29. 'downloads' => 0,
  30. 'width' => 65,
  31. 'height' => 64,
  32. 'mime_type' => 'image/png',
  33. 'approved' => 1
  34. );
  35. $attachID = $smcFunc['db_insert_id']('{db_prefix}attachments', 'id_attach');
  36. $smcFunc['db_insert']('',
  37. '{db_prefix}attachments',
  38. $column_names1,
  39. $values1,
  40. array('id_attach')
  41. );
  42. copy('C:\xampp\htdocs\smf\attachments\default','C:\xampp\htdocs\smf\attachments\\'.$attachID.'_d2e3fbe9241ddfca15238b1a32df2594264059b7');
  43. /////////////////////

Niestety już nie chce kopiować plików. Coś jest nie tak.
Sephirus
hehe za wcześnie pochwaliłem wink.gif daj tą linijkę nową tuż przed copy wink.gif

Dlaczego? bo zapytanie najpierw musi się wykonać by można było pobrać id_attach z dodanego rekordu ;P
Pcbecaw
  1. $attachID = $smcFunc['db_insert_id']('{db_prefix}attachments', 'id_attach');
  2. copy('C:\xampp\htdocs\smf\attachments\default','C:\xampp\htdocs\smf\attachments\\'.$attachID.'_d2e3fbe9241ddfca15238b1a32df2594264059b7');

również nie kopiuje.
Sephirus
hmm no to teraz to ja już nie wiem, wcześniej kopiował kurcze, jakiś błąd musi być z tym id_attach :/ niech no pomyślę,

EDIT: błędów żadnych nie wywala? Może taki plik już istnieje czy coś kurcze nie wiem....

EDIT2: No nic ja już Ci dzisiaj nie pomogę :/ jesteśmy prawie w domu :/ naprawdę nie wiem czemu to nie działa teraz hmmm. Muszę spadać spać bo jutro wcześnie wstaje - mam nadzieję że Ci się uda coś z tym zrobić bo tu już kurcze metę widać :/

Powodzenia - jutro wieczorem będę jakby co wink.gif
Pcbecaw
Właśnie 0 błędów i nie istnieje taki plik jeszcze, jaki miałoby utworzyć.
Co by to mogło być :/ ?

Ok, dziękuję bardzo za pomoc i najprawdopodobniej - do zobaczenia wieczorem smile.gif

Gdyby ktoś miał jakikolwiek pomysł, dlaczego przestało kopiować foldery - bardzo proszę o wiadomość.

Tak sobie myśle, że może select zadziała? bo w tym wypadku jest jeszcze insert, a chodzi jedynie o pobranie id? Nie no, tworzyć też musi przecież. Nie mam pomysłu na to...

Sephirus, jakbyś miał jakiś pomysł jak to zrobić - napisz proszę.
Obecnie muszę już lecieć, ale jutro wejdę smile.gif
Mam nadzieję, że da się to jakoś załatwić, ale ta meta coś chyba się oddala, bo u mnie pustka w głowie...

a da się może jakoś zaingerować w plik, który zamienia obrazek na kod?
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.