Skrypt php, zapisywanie do pliku za pomocą formularza

Założony przez  natrios.

wersja skryptu MyBB: 1.8.x
adres forum: To kod php więc myślę, że adres nie potrzebny. (nie jest w uzyciu skrypt)
na czym polega problem (screen, opis, komunikaty):

No to tak, chce zrobić, aby moi użytkownicy mogli zapisywać się za pomocą formularza na dane wydarzenie.
Aktualnie posiadam dwa kody.
Pierwszy :

<div>
   <form action="odbierz.php" method="post">
      <div><label for="imie">Nazwa druzyny</label><input id="imie" name="imie" /></div>
      <div><label for="nazwisko">nick na forum</label><input id="nazwisko" name="nazwisko" /></div>
      <div><input type="submit" value="Wyślij" /></div>
   </form>
</div>

Kod był wykorzystywany do czegoś innego dlatego schemat imie,nazwisko zostało, nie robi to żadnego problemu a nie chciało mi się poprawiać w drugim kodzie tego.
Skrpyt php wygląda tak,że do wpisania mapy nazwe drużyny, oraz nick na forum, a niżej przycisk Wyslij.

oraz drugi kod
<?php
   $imie=$_POST['imie'];
   $nazwisko=$_POST['nazwisko'];
   $data=date (" j.m.y <br> G:i");
   $i=1;
   $openFile=fopen("images/baza.txt", "a+b");
      $ciagZnakow=$i.$data."\t".$nazwisko."\t".$imie."\r\n";
      $i++;
      if(fwrite($openFile, $ciagZnakow))
         echo "Udało się zapisać dane w pliku.";
      else
         "Nie udana próba zapisu danych w pliku!";
   fclose($openFile);
?>

Ten kodzik zapisuje dane wpisane wcześniej, najpierw date, nick, drużyne,
I wszystko było by pięknie, pozatym, że każdy, nawet gość może sobie wejść na to i zapisać się 3453245 razy.
Chciałbym dodać mały panel z tym formularzem po prawej stronie forum, dam rade, wiem jak to zrobić, tylko co dodać do tego, aby niezalogowani widzieli tekst w stylu "Aby zapisać się na turniej musisz sie zalogowac", a po zalogowaniu był widoczny formularz + Każdy użytkownik może tylko RAZ się zapisać, a najlepiej było by jeszcze gdyby automatycznie nick z forum był zapisywany (wtedy mógłbym wywalić z pierwszego kodu "nick z forum". Czekam na pomoc z niecierpliwością :)
Matslom napisał 16.12.2014, 13:45:
Przenoszę do odpowiedniego działu
Było coś podobnego poruszane ostatnio. Najpierw musisz połączyć się z bazą myBB i zrobić ograniczenia.
No ok, a coś więcej ? jak się połączyć ? jak i gdzie to przestawić ? Jakbym wiedział takie rzeczy to bym sam popróbował :)

Np formularz dodam sobie z prawej strony na Stronie głownej gdy pod {forum} dopisze sobie coś takiego:
<div style="float:right;width:25%;">
<div>
   <form action="odbierz.php" method="post">
      <div><label for="imie">Nazwa druzyny</label><input id="imie" name="imie" /></div>
      <div><label for="nazwisko">nick na forum</label><input id="nazwisko" name="nazwisko" /></div>
      <div><input type="submit" value="Wyślij" /></div>
   </form>
</div>

Znalazłem na tym forum taki kod:
if($mybb->user['uid']) {

} else {
error("Brak uprawnień do przeglądania strony");
}
Lecz nie wiem czy dodaje go poprawnie, bo nie śmiga :confused:

if($mybb->user['uid']) {

<div>
   <form action="odbierz.php" method="post">
      <div><label for="imie">Nazwa druzyny</label><input id="imie" name="imie" /></div>
      <div><label for="nazwisko">nick na forum</label><input id="nazwisko" name="nazwisko" /></div>
      <div><input type="submit" value="Wyślij" /></div>
   </form>
</div>

} else {
error("Brak uprawnień do przeglądania strony");
}
W szablonach nie można używać php. Całość musisz zrobić jako plugin.
https://webboard.pl/thread-33035.html dodatkowo popatrz jak to jest zrobione w innych pluginach.
Wnioskuje, że nie moge dodać nowej podstrony z jednym okienkiem, na której będzie widniał formularz (aby mógł się wyświetlić trzeba się zalogować) hm ?

Zrobiłem podstrone gdzie jest tylko tło oraz ten formularz (pierwszy kod podany w pierwszym poście, da radę bez pisania jakiś pluginów zrobić tak, żeby mógł tylko wejść na tę pod stronę zalogowany użytkownik + zapisać się tylko raz ( to juz nie konieczne- ale fajnie by było jakby była taka możliwość).
Musisz po prostu utworzyć nową podstronę, ale musi być ona zintegrowana z mybb aby sprawdzić czy użytkownik jest zalogowany.
Tutaj masz przykład jak może wyglądać taki plik Mini panel SAMP. - Post #187695
Jestem totalnie zielony, ale wpadłem na pomysł jak można to zastąpić - Czy wiesz może jaki dopisek dodać, żeby wyciągał nazwe użytkownika zalogowanego w czasie rzeczywistym? (podczas wypełniania formularzu) Czy też będzie trzeba to podpiąć ?

/edit
Można też zrobić coś takiego, żeby nie brał nazwy użytkownika tylko jakies ID z użytkownika albo po adresie ip (jak zapisze się dwa razy zeby bylo widoczne - wtedy moglbym wywalic np taka osobe)
Taką blokade aby nie zapisac sie x2 np ?:>
Jak chcesz sprawdzić czy użytkownik jest zalogowany pobierając jego nick/id? Co Ci to da?
zapisz to jako nazwapodstrony.php w głównym katalogu forum
<?php
ini_set
('display_errors''yes');
error_reporting(E_ALL);

define("IN_MYBB"1);
define('THIS_SCRIPT''nazwapodstrony.php');

require_once 
"./global.php";
global 
$db$mybb;

        
//tutaj kod
?>

Skrypt dołącza podstawowe pliki potrzebne do funkcjonowania razem z forum.
Dodając
eval("\$content = \"".$templates->get("new_page")."\";");
output_page($content);
tworzysz możliwość użycia szablonu zdefiniowanego w globalnych szablonach o nazwie new_page

Tym kodem
if(!$mybb->user['uid'])
{
   echo "Użytkownik nie jest zalogowany..";
} else {
   echo "Użytkownik jest zalogowany..";
}
Sprawdzisz czy użytkownik jest zalogowany.

Czytaj kombinuj, nie będę za nikogo pisał całego skryptu (chyba, że ktoś zapłaci).
Chodziło mi poprostu aby obok zapisanych danych w pliku widniał ID lub jakiś inny identyfikator użytkownika po to, aby naprzykład sprawdzić czy ten użytkownik nie zapisał się pare razy.
I tak i tak musisz zrobić to po przez dołączenie pliku global.php
dobra śmiga, podstrona działa, formularz edytuje nadal, ale najważniejsze to jest, abym wiedział jaki użytkownik się zapisuje, np ID użytkownika albo ograniczenie aby każdy użytkownik mógł tylko raz się zapisać.



Użytkownicy przeglądający ten wątek:

1 gości