Seite 1 von 4

[ERLEDIGT] Brauche Hilfe beim Formular und Tabelle

Verfasst: 19.10.2006 19:16
von Stupid
Hallo zusammen =)

Bin jetzt schon den ganzen Tag an diesem Formular bei und komm nicht mehr weiter. Ich möchte für unser Forum eine Kickliste machen. Es handelt sich hierbei um ein UT-Forum. Da werden zwischendurch auch mal Spieler vom Server gekickt und das wollten wir auf diese Art und Weise im Forum festhalten. Soweit, wie der unten gezeigte Code aussieht, bin ich schon gekommen. Formular und die Tabelle, wo die Daten dann stehen sollen sind sichtbar. Ich bekomm es jetzt nur nicht hin, dass er das, was ich oben ins Formular eintrage unten in der Tabelle schreibt. Er soll den letzten Eintrag nicht überschreiben, sondern immer weiter auflisten, was ich eintrage. Wie setz ich das um? Im Moment macht er nicht einen Eintrag. Denn wenn ich einen Eintrag machen will, meldet sich CrackerTracker jedesmal *grummel

Danke schon mal für evtl Antworten =)

Code: Alles auswählen

<?php 
define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 

$page_title = 'Kickliste'; 
include($phpbb_root_path . 'includes/page_header.'.$phpEx); 
?>

<html>
<head></head>
<body> 
<form method="POST" action="kicklist.php" target="_self"> 
<table width="90%" cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">   <tr> 
     <th class="thHead" colspan="2">Kickliste:</th> 
   </tr> 
   <tr> 
      <td class="row1">Datum:</td> 
      <td class="row2"><input type="text" maxlength="255" size="50" name="datum"/></td> 
   </tr> 
   <tr> 
      <td class="row1">Name:</td> 
      <td class="row2"><input type="text" maxlenght="255" size="50" name="name"></td> 
   </tr>
   <tr> 
      <td class="row1" valign=top>Grund:</td> 
      <td class="row2"><textarea name="grund" rows="15" cols="47"></textarea></td> 
   </tr> 
   <tr> 
      <td class="catBottom" colspan="2" align="center"><input type="submit" name="submit" value="Eintragen!" />&nbsp;&nbsp;<input type="reset" value="Löschen" /> 
      </td> 
   </tr> 
          
</table> 
</form> 
<br>
<table width="90%" cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">   <tr> 
     <th class="thHead" colspan="3">&nbsp;</th> 
   </tr> 
   <tr> 
      <td class="row1" width="15%">Datum</td> 
      <td class="row1" width="35%">Name</td> 
      <td class="row1" width="50%">Grund</td> 
   </tr>
   <tr>
	<td class="row1" width="15%"><?php echo $_POST['datum'];?></td>
    <td class="row1" width="35%"><?php echo $_POST['name'];?></td>
    <td class="row1" width="50%"><?php echo $_POST['grund'];?></td>
  </tr>
  <tr> 
      <td class="catBottom" colspan="3" align="center">&nbsp;</td> 
   </tr>  
</table>  
</body>
</html>

<?php

include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 
?>

Verfasst: 19.10.2006 22:59
von Miriam
Da werden zwischendurch auch mal Spieler vom Server gekickt und das wollten wir auf diese Art und Weise im Forum festhalten.

Wo willst Du das festhalten? Ich sehe keine SQL Abfrage oder, dass ein Eintrag in einer Datei getätigt wird..... Oder habe ich nur Matsch auf den Augen? :o :o

Verfasst: 19.10.2006 23:06
von Stupid
Ist eine SQL-Abfrage dabei nötig? Sorry, bin in Sachen PHP noch Neuling :oops: Ich hab gehofft, dass es ohne SQL-Abfrage geht *seufz

Aus was für einer Datei meinst du? Das Formular ist über der Tabelle.....und wenn ich dort etwas eintrage und auf den Button klicke, hätte ich gerne, dass es nach dem absenden unten in der Tabelle aufgelistet wird :cry: hab ich schon völlig falsch angefangen?

Verfasst: 19.10.2006 23:16
von Miriam
Also der Anfang geht schon so... Aber Du solltest Dir wirklich Gedanken darüber machen, wo Du die daten, die in der Tabelle angezeigt werden sollen gespeichert werden sollten. Im RAM des Servers, der nur für Deine Session sichtbar ist, ist es etwas ungünstig, falls Du irgendwann mal den Browser abschalten möchtest, oder andere User die Tabelle sehen sollen.

Verfasst: 19.10.2006 23:39
von Stupid
ok...jetzt hab ich verstanden....dann also per SQL-Abfrage....mit SQL hab ich mich ja nu noch gar nicht beschäftigt :oops: ...bei den meisten Mods, die ich bisher eingebaut hatte, war ein db_update.php dabei, die sowas automatisch machte

kann mir evtl jemand so eine Datei für mein Formular anfertigen? *lieb frag* und dazu schreiben, wie und wo ich das in mein Formular eintragen muss, damit es in die db eingetragen wird und abgerufen wird? :oops:

Verfasst: 20.10.2006 10:28
von Stupid
Guten Morgen zusammen =)

Ich hab mich mal selbst versucht, eine db_update.php für mein Formular anzufertigen *Böhmischen Wald anguck*
Ich vermute mal, das ist noch falsch, oder?

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management


// Start Restrict to members
if( !$userdata['session_logged_in'] )
{
header("Location: " . append_sid("login.$phpEx?redirect=db_update.$phpEx", true));
exit;
}
// End Restrict to members


// Start User is Admin ?
if ( $userdata['user_level'] == ADMIN )
{
}
else
{
message_die(GENERAL_MESSAGE, $lang['Not_Authorised'], $lang['Not_Authorised']);
exit;
}
// End User is Admin ?

echo '<html>
<head>
<title>SQL-DB-Installer - Kickliste</title>
</head>
<body>
<h1>SQL-DB-Installer - Kickliste</h1>
<hr />';
if (!isset($HTTP_GET_VARS['install'])) {
echo '<a href="?install=1">Please click here | Bitte hier klicken</a>';
}
else {
$queries = array(
'CREATE TABLE '.kicklist
'ALTER TABLE ' . kicklist .' ADD Datum VARCHAR(10) NOT NULL',
'ALTER TABLE ' . kicklist .' ADD Name VARCHAR(20) NOT NULL',
'ALTER TABLE ' . kicklist .' ADD Grund VARCHAR(200) NOT NULL'
);

$success = true;
foreach($queries as $query) {
if (!$db->sql_query($query)) {
echo '<font color="red">An error occurred ! Changes have not been entered successfully !<br /><br />Es Fehler ist aufgetreten ! Änderung nicht erfolgreich eingetragen !</font><br /><br />';
echo mysql_error();
$success = false;
break;
}
}
if ($success) {
echo '<font color="green">DB-Changes have been entered successfully. You should delete this SQL-DB-Installer as soon as possible !<br /><br />DB-Änderung wurde erfolgreich ausgeführt. Du solltest diesen SQL-DB-Installer sobald wie möglich löschen !';
}
}
?>
Ich bräuchte auch noch Hilfe dabei, was und wo ich was in meine kicklist.php schreiben muss wegen der SQL-Abfrage udn natürlich bei der db_update.php dazu :oops:

Danke schon mal im Voraus für eure Hilfe =)

Verfasst: 20.10.2006 13:35
von Miriam
Zum Thema DB erstellen: Wieso machst Du das nicht mit einen Befehl, den Du dann per db_update_generator in php(BB) Code umbauen lässt?

Code: Alles auswählen

CREATE TABLE `phpBB_kicklist` (
`datum` VARCHAR( 10 ) NOT NULL ,
`name` VARCHAR( 20 ) NOT NULL ,
`grund` TEXT NOT NULL
) ;
Den brauchst Du da nur reinkopieren und abschicken... Fertig ist die db_update.php.
Die Tabelle sollte ein phpBB Präfix haben (in Deiner DB). phpBB_ steht im Code dann für jedes definierte Präfix, dass Du in Deinem Board verwenden könntest (es muss also nicht phpBB_ heissen und passt trotzdem). <-- Bei der Verwendung des besagten Generators.

Dann würde ich Dir empfehlen, die Tabellenbezeichnungen (also Name und Spaltennamen) klein zu schreiben... Irgendwann baust Du da dann bestimmt Fehler mit ein (also in die SQL Abfragen). :)

Zum Thema Abfragen an die DB mit phpBB konformen Befehlen: Hast Du schon mal in die Scripte geschaut?

Verfasst: 20.10.2006 13:48
von Stupid
ui danke Miriam =)

also die db_update.php hab ich nu also und auch schon ausgeführt....klappte supi =)

Meinst du mit Scripte die Mods bzw dessen Anleitung? Ich hab schon versucht, mich darein zu lesen....aber irgendwie seh ich da noch nicht wirklich durch. Also die Anleitungen selbst versteh ich....nur nicht die verschiedenen Codes, die da drin stehen

ich muss doch nu noch irgedwas in die kicklist.php schreiben, oder? Oder muss ich in mehreren Dateien was schreiben?

muss ich das in die kicklist.php schreiben?

Code: Alles auswählen

$verbindung = mysql_connect("localhost","root","");
@mysql_select_db("page"); 

$sql = "INSERT INTO phpBB_kicklist (datum, name, grund) 
VALUES ('', '".$_POST[datum]."', '".$_POST[name]."', '".$_POST[grund]."')"; 

@mysql_query($sql, $verbindung); 

mysql_close(); 
ist das richtig? und wenn, wo genau muss das in die kicklist.php? oder ist das egal?

Verfasst: 20.10.2006 18:20
von Miriam
Mit Scripten meinte ich die originalen Boardscripte.

Warum willst Du die DB Verbindung wieder (noch einmal) aufbauen? Das phpBB hat doch schon eine Verbindung.

Mit Insert allein wirst Du nicht weit kommen. Was ist wenn Du mal was auslesen möchtest oder sogar löschen? :D

Und der Befehle, den Du da als INSERT getarnt hast wird so nicht klappen.... Du gibst drei Spalten als anzusprechende an aber 4 Werte. Es müssen auch schon 3 Werte zum Eintragen sein... nicht mehr uind nicht weniger.

Verfasst: 20.10.2006 18:50
von Stupid
oje...*seufz*

ich seh da nicht durch :(

ok das mit den 4 Werten versteh ich noch....war nen Tippfehler....ich fing an zu schreiben...löschte wieder nen Teil und schrieb nomma...und so blieben ausversehen die 2 Hochkommas vorne

Aber ich weiss echt nicht, wie sowas auszusehen hat, speziell bei diesem Formular :(