SUCHE "Gästebuch" fürs HM-Portal |
|
SUCHE "Gästebuch" fürs HM-Portal |
Beitrag Nr.: 1 |
Hey zusammen,
ich such mich schon ne weile dumm und dusselig...
Ich meine mich nämlich zu erinnern, dass ich mal auf irgend einem HM-Portal sowas ähnliches wie ... ich weiß grad nciht, wie ichs anders beschreiben soll... ein Gästebuch gesehen habe...
Es geht drum, dass man in ner SEITEN-Box (also die schmalen an der Seite als da im Original z.B. Suche, Kalender, Swatch etc sind) eine Gästebuchbox hat (oder sowas Ähnliches).
Es gibt hier jedenfalls 2 Input-Zeilen ala Name & Nachricht. Darunter eine Smylieauswahl und darunter wird eine bestimmte Anzahl (wahrscheinlich im Hack definierbar) der Nachrichten Angezeigt. -- Quasi ie ein Gästebuch.
Da ich nirgendswo sowas in der Wart zu finden weiß, wollt ich mal freundlich fragen, ob jemand von euch irgendwo so etwas rumliegen hat, bevor ich selber Probiere, mir dementsprechend sowas zu scripten...
Falls es sowas echt noch nciht geben sollte, werd ich mal schauen, was ich da selbst schreiben kann - aber wie gesagt, wollte voher mal Fragen ob wer von euch sowas kennt oder besten Falls noch irgendwo rumfliegen hat und mir ggf. geben möchte :)
__________________
|
|
07.07.2020 13:09 |
|
|
|
Sehr gut, danke!
Werds mir nacher @ home mal ansehen^^
edit:/
hmm ne, ich hatte das leicht anders angedacht... hab derweil allerdings auch mal meinen eigenen Versuch gestartet, siehtz nun auch schon garnicht so schlecht aus...
einzige Problem, was ich habe ist, dass mir das ganze nur 1 Eintrag aus der DB ausliest... eigentlich möch ich aber die letzten 5...
derzeit sieht es jedenfalls so aus:
ich hab 5 DB einträge, mein script was sie auslesen soll ist jenes:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
//Einträge auslesen
$anzg = "SELECT * FROM `bb".$n."_hm_guestbook` ";
$anz = mysql_query($anzg);
while($ds = mysql_fetch_assoc($anz)){
$name1 = $ds[name];
$mess = $ds[message];
$time = $ds[time];
$stamp = date("d-m-Y \u\m H:i:s", $time);
eval("\$hm_ownbox_guestbook_bit = "".$tpl->get("hm_ownbox_guestbook_bit")."";");
} |
|
TPL hm_ownbox_guestbook_bit:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
|
<table cellspacing="1" cellpadding="4" border="0" width="95%" align="center" class="tableinborder">
<tr class="tabletitle">
<td colspan="2" align="center"><span class="smallfont"><b>Die Einträge</b></span></td></tr>
<tr class="tablea">
<td width="30%" valign="top" align="left"><span class="smallfont"><b>$name1</b> schrieb<br>am $stamp</span></td>
<td valign="center" align="center"><span class="smallfont">$mess</span></td>
</tr>
</table> |
|
unt TPL hm_ownbox_guestbook:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
<tr>
<td class="tablea" width="100%" colspan="10" align="center"><span class="acps">
<br>
<form method="POST" action="hmportal.php">
<input type="hidden" name="action" value="gb">
<if($wbbuserdata['userid'])><then>
<label for="name">Name:</label> $gb_name<input type="hidden" name="gb_name" value="$gb_name"><br><br></then>
<else><br><input type="text" id="fname" name="gb_name" value="Name"><br><br></else></if>
<label for="message">Deine Nachricht:</label><br>
<input type="text" id="message" name="gb_message" value="Nachricht"><br><br>
<input type="submit" value="Eintragen" action="gb">
</form>
<br>
$hm_ownbox_guestbook_bit
<br>
</span></td></tr> |
|
blöderweise hab ich nun den Effekt, dass mir nur 1 Eintrag ausgegeben wird in der Portalbox...
habs auch schon mit mysql_fetch_object anstatt mysql_fetch_assoc probiert, änert aber nix... kriege nur immer den letzten eintrag :(
__________________
|
|
13.07.2020 08:35 |
|
|
|
hmmm.... nachvollziehbarer Gedanke, aber mit output im hm_ownbox_guestbook oder mysqli ändert sich leider auch nichts...
liegt das vllt daran, dass das keine eigene *.php ist sondern in die hmportal.php intregriert steht?
Hier übrigens mal der gesamte code zum vergleichen:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
|
//###############################################################################
//##########################HM_Gästebuch by Hangasilly###########################
//###############################################################################
//##################################ALLGEMEINES##################################
//User-ID
$user_id = $wbbuserdata['userid'];
//UserName oder Name eingeben
if($user_id != 0){
$gb_name = $wbbuserdata['username'];
}
if($user_id == 0){
if (isset($_GET["gb_name"])) {
$gb_name = $_GET["gb_name"];
}
}
//Nachricht
if (isset($_GET["gb_message"])) {
$gb_message = $_GET["gb_message"];
}
//##################################EINTRAG##################################
if(isset($_POST['action']) == "gb") {
$message = $gb_message;
$username = $gb_name;
$zeit = time();
//Insert
$new_gb = "INSERT INTO `bb".$n."_hm_guestbook` VALUES ('', '$username','$message','$zeit')";
$new_gb_in = mysql_query($new_gb);
}
//##################################OUTPUT##################################
//Einträge auslesen
$anzg = "SELECT * FROM `bb".$n."_hm_guestbook` ";
$anz = mysql_query($anzg);
while($ds = mysql_fetch_assoc($anz)){
$name1 = $ds[name];
$mess = $ds[message];
$time = $ds[time];
$stamp = date("d-m-Y \u\m H:i:s", $time);
eval("\$hm_ownbox_guestbook_bit = "".$tpl->get("hm_ownbox_guestbook_bit")."";");
}
eval("\$tpl->output("".$tpl->get("hm_ownbox_guestbook")."");");
//###############################################################################
//##########################HM_Gästebuch by Hangasilly###########################
//####################################ENDE####################################### |
|
__________________
|
|
16.07.2020 18:17 |
|
|
|
Nee, das Forum läuft noch unter php5...
Muss die msl alle nach 7 umstellen iwann, aber da muss ich erstmsl aussortieren, welche noch aktuell in benutzung sind und welche nicht...
Das, was ich da im code gepostet hab liegt bei mir in der hmportal.php
Naja und dann hab ich noch die 2 TPLs halt und einen DB-table... Mehr is an dem "Hack" nich dran bei mir nun...
__________________
|
|
17.07.2020 10:30 |
|
|
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.442
Herkunft: NRW
Postid: 17204
|
|
So sieht es jetzt bei mir aus:
der zugehörige Code der box_gaestebuch.php sieht wie folgt aus.
Schau mal ob es auch bei dir klappt.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
|
<?php
//if(!(@hmp_check())) exit();
//
// HM - Portalbox Gästebuch V 2.5
// Boxid = 99 <- wurde vom setup so angelegt
//
eval("print("".$hm_boxhead_tpl."");");
$gb_bit="";
$freischalt = 0;
$stmt = $dbi->prepare("SELECT COUNT(*) FROM bb".$n."_gaestebuch WHERE freischalt=?");
$stmt->bind_param("i" ,$freischalt);
$stmt->execute();
$stmt->bind_result($count);
$stmt->store_result(); // Liefert das Ergebnis zum Browser
$anzahl = $stmt->num_rows; //wo es denn abgefragt werden kann
if(!$anzahl) {
$gb_bit = "<tr class="tablea"><td align="center"><span class="normalfont"><b>Es sind noch keine Einträge vorhanden</b></span></td></tr>";
}else{
$freischalt = 0;
$stmt = $dbi->prepare("SELECT id,datum,name FROM bb1_gaestebuch WHERE freischalt=?");
$stmt->bind_param("i" ,$freischalt);
$stmt->execute();
$stmt->bind_result($id, $datum, $name);
while($stmt->fetch()) {
$name = htmlconverter($name);
$date = formatdate($wbbuserdata['dateformat'],$datum,1);
$time = formatdate($wbbuserdata['timeformat'],$datum);
eval ("\$gb_bit .= "".$tpl->get("hm_box_gaestebuch_bit")."";");
}
}
eval("print("".$tpl->get("hm_box_gaestebuch")."");");
eval("print("".$hm_boxtail_tpl."");");
?> |
|
LG
haumi
__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.
|
|
19.07.2020 13:15 |
|
|
|
Hey haumi,
erstmal Danke für die Mühe!
Aber leider bringt mir das so ja nix... Ich will ja kein eigenes GB als Solches, ich will das GB direkt in die Box legen... Darum ja auch in der hmportal.php der code^^
Die box soll dann die letzten 5 Einträge wiedergeben und gut...
Ich überlege zwar noch, alle Einträge in einer separaten Seite auszugeben und das zu verlinken, aber das wäre der nächste Schritt - erstmal müssen die letzten 5 Einträge in der Portalbox auftauchen...
__________________
|
|
19.07.2020 22:25 |
|
|
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.442
Herkunft: NRW
Postid: 17206
|
|
Soll es so aussehen?
Das php-Script dazu:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
|
<?php
//if(!(@hmp_check())) exit();
//
// HM - Portalbox Gästebuch V 2.5
// Boxid = 99 <- wurde vom setup so angelegt
//
eval("print("".$hm_boxhead_tpl."");");
$gb_bit="";
$freischalt = 0; // Variable festlegen
$stmt = $dbi->prepare("SELECT COUNT(*) FROM bb".$n."_gaestebuch WHERE freischalt=?"); // SQL-Befehl vorbereiten
$stmt->bind_param("i" ,$freischalt); // Variable einbinden
$stmt->execute(); // Datenbankabfrage ausführen
$stmt->bind_result($count); //Ergebnisvariable festlegen
$stmt->store_result(); // Liefert das Ergebnis zum Browser
$anzahl = $stmt->num_rows; //wo es denn abgefragt werden kann
if(!$anzahl) { // Abfrage wenn kein Eintrag vorhanden ist, dann gib folgende Zeile aus
$gb_bit = "<tr class="tablea"><td align="center"><span class="normalfont"><b>Es sind noch keine Einträge vorhanden</b></span></td></tr>";
}else{ // sind Einträge vorhanden
$freischalt = 0; // Variable festlegen
$stmt = $dbi->prepare("SELECT id,datum,name,inhalt FROM bb1_gaestebuchten WHERE freischalt=?"); // SQL-Befehl vorbereiten
$stmt->bind_param("i" ,$freischalt); // Variable einbinden
$stmt->execute(); // Datenbankabfrage ausführen
$stmt->bind_result($id, $datum, $name, $inhalt ); //Ergebnisvariablen festlegen
while($stmt->fetch()) { //Durchlaufe einer Schleife solange Datensätze vorhanden sind
$mess = $inhalt; // Tabellenfeldinhalt einer Variablen zuweisen
$name1 = htmlconverter($name); // Tabellenfeldinhalt einer Variablen zuweisen
$date = formatdate($wbbuserdata['dateformat'],$datum,1); //Datum aufbereiten und einer Variablen zuweisen
$time = formatdate($wbbuserdata['timeformat'],$datum); // Uhrzeit aufbereiten und einer Variablen zuweisen
$stamp = $date ." um ".$time;// Datum und Uhrzeit in einer Variablen zusammenfassen
eval ("\$gb_bit .= "".$tpl->get("hm_box_gaestebuch_bit")."";"); // Template hm_box_gaestebuch_bit innerhalb der Schleife aufrufen
}
}
eval("print("".$tpl->get("hm_box_gaestebuch")."");"); // Template hm_box_gaestebuch außerhalb der Schleife aufrufen
eval("print("".$hm_boxtail_tpl."");");
?> |
|
das template hm_box_gaestebuch
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
<tr>
<td class="tablea" width="100%" colspan="10" align="center"><span class="acps">
<br>
<form method="POST" action="hmportal.php">
<input type="hidden" name="action" value="gb">
<if($wbbuserdata['userid'])><then>
<label for="name">Name:</label> $gb_name<input type="hidden" name="gb_name" value="$gb_name"><br><br></then>
<else><br><input type="text" id="fname" name="gb_name" value="Name"><br><br></else></if>
<label for="message">Deine Nachricht:</label><br>
<input type="text" id="message" name="gb_message" value="Nachricht"><br><br>
<input type="submit" value="Eintragen" action="gb">
</form>
<br>
$gb_bit
<br>
</span></td></tr> |
|
das template hm_box_gaestebuch_bit
code: |
1:
2:
3:
4:
5:
6:
7:
8:
|
<table cellspacing="1" cellpadding="4" border="0" width="95%" align="center" class="tableinborder">
<tr class="tabletitle">
<td colspan="2" align="center"><span class="smallfont"><b>Die Einträge</b></span></td></tr>
<tr class="tablea">
<td width="30%" valign="top" align="left"><span class="smallfont"><b>$name1</b> schrieb<br>am $stamp</span></td>
<td valign="center" align="center"><span class="smallfont">$mess</span></td>
</tr>
</table> |
|
"Die Einträge" muss noch als EINE Überschrift dargestellt werden.
Mach ich später falls du es nicht schon hast.
LG
haumi
__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.
|
|
20.07.2020 06:51 |
|
|
|
HEy, ok.. deine TPLs werfen mir das gleiche raus wie meine... dann liegts wohl doch an der PHP - wie machsten da den Auszug us der DB für die Anzeige der Einträge?!?
__________________
|
|
20.07.2020 10:38 |
|
|
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.442
Herkunft: NRW
Postid: 17209
|
|
Schau mal hier
Eine kleine Anleitung:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
|
<?php
############ Verbindung zur Datenbank ############
$db = new db($sqlhost, $sqluser, $sqlpassword, $sqldb, $phpversion);
$dbi = new mysqli($sqlhost, $sqluser, $sqlpassword, $sqldb, $phpversion);
if($dbi->set_charset("utf8")) {
echo "Fehler beim Laden von UTF8: " . $dbi->error;
}
########## INSERT INTO #################
$stmt = $dbi->prepare("INSERT INTO bb1_burg (fragen, stufe, frage) VALUES (?,?,?)");
$stmt->bind_param("sis", $fragen ,$stufe, $frage);
$stmt->execute();
########## SELECT #################
$stmt = $dbi->prepare("SELECT id_fragen , desc_frage FROM burg ORDER BY id_fragen DESC LIMIT 1");
$stmt->execute();
$stmt->bind_result($id_fragen , $desc_frage );
$stmt->fetch();
while($stmt->fetch()) {
$id_fragen = ($id_fragen + 1);
$stmt->store_result(); // Liefert das Ergebnis zum Browser
$treffer = $stmt->num_rows; //wo es denn abgefragt werden kann
######## Anzahl der Datensätze einer Tabelle ############
$stmt = $dbi->prepare("SELECT count(*) AS anzahl FROM bb".$n."_users");
$stmt->execute();
$stmt->bind_result( $anzahl );
$stmt->fetch();
########## UPDATE #################
$stmt = $dbi->prepare("UPDATE burg SET desc_frage = ? , desc_answer= ? WHERE id_fragen= ?");
$stmt->bind_param("ssi", $desc_frage, $desc_answer, $id_fragen);
$stmt->execute();
########## DELETE #################
$stmt = $dbi->prepare("DELETE burg SET desc_frage = ? , desc_answer= ? WHERE id_fragen= ?");
$stmt->bind_param("ssi", $desc_frage, $desc_answer, $id_fragen);
$stmt->execute();
?> |
|
LG
haumi
__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.
|
|
20.07.2020 13:22 |
|
|
|
Hey,
also hab das nun mal so in meinen kontext probiert einzubauen:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
$dbi = new mysqli($sqlhost, $sqluser, $sqlpassword, $sqldb, $phpversion);
$stmt = $dbi->prepare("SELECT id , name , message , time FROM `bb".$n."_hm_guestbook` ORDER BY time DESC ");
$stmt->execute();
$stmt->bind_result($id_mess ,$name1 , $mess ,$time );
$stmt->fetch();
while($stmt->fetch()) {
$id_mess = ($id_mess + 1);
$stmt->store_result($name1 , $mess , $time); // Liefert das Ergebnis zum Browser
$stamp = date("d-m-Y \u\m H:i:s", $time);
eval("\$hm_ownbox_guestbook_bit = "".$tpl->get("hm_ownbox_guestbook_bit")."";");
} |
|
...leider passt ihm da dann aber das
code: |
1:
|
$stmt->execute() |
|
nicht... die Abfrage funktioniert noch, sobald ich das execute aber mit 'einkommentiere', krieg ich kein Portal mehr angezeigt....
__________________
|
|
23.07.2020 02:20 |
|
|
|
Hast PN^^ ;)
__________________
|
|
24.07.2020 18:37 |
|
|
|
OK, habs nun hinbekommen :D
Bei Anfragen, geb ich den Code gerne weiter ;)
In diesem Sinne aber auch besten Dank für die Hilfe^^
__________________
|
|
05.08.2020 00:05 |
|
|
|