Button welcher die momentane URL einspeichert

Alles zu Styles, Templates, Icons und Smilies für phpBB 3.0.x, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
phpBB Styles Demo
Forumsregeln
Bei Style spezifischen Fragen ist der Stylename und die Downloadquelle des Styles erforderlich, besser noch die URL vom betroffenen Forum.
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: Button welcher die momentane URL einspeichert

Beitrag von sneasel »

Hallo,

schonmal danke für deine Hilfe.

Als ich deinen Code getestet hab kam ein fehler nach ner kurzen google Suche hab ich folgendes anders gemacht:

Code: Alles auswählen

$fav_name = $db->sql_fetchrow($result)['forum_name'];
zu

Code: Alles auswählen

$fav_name = $db->sql_fetchrow($result['forum_name']);
(die Klammer hinter $result hab ich weiter nach hinten gesetzt. Ändert sich dadurch etwas?)

Danach kamn folgender Fehler:

Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [ mysql4 ]

Unknown column 'fav_url' in 'field list' [1054]

SQL

INSERT INTO kas_phpbb_users (fav_url, fav_name) VALUES ('/news.php', '');

BACKTRACE

FILE: includes/db/mysql.php
LINE: 174
CALL: dbal->sql_error()

FILE: news.php
LINE: 113
CALL: dbal_mysql->sql_query()
Ich vermute ich muss erst das Feld erstellen welches ich befüllen will. Oder seh ich das falsch?

Hab mir gedacht damit gehts müsste es gehn:
mysql> ALTER TABLE haustiere ADD COLUMN geb_datum DATE;

EDIT: Wäre es vll ratsam direkt mit dem Befehl für alle user die Tabellen zu erstellen:
if die Tabelle noch nicht da --> erstellen else nix ?? So nach dem Motto :D
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Button welcher die momentane URL einspeichert

Beitrag von Elsensee »

sneasel hat geschrieben:Hallo,

schonmal danke für deine Hilfe.

Als ich deinen Code getestet hab kam ein fehler nach ner kurzen google Suche hab ich folgendes anders gemacht:

Code: Alles auswählen

$fav_name = $db->sql_fetchrow($result)['forum_name'];
zu

Code: Alles auswählen

$fav_name = $db->sql_fetchrow($result['forum_name']);
(die Klammer hinter $result hab ich weiter nach hinten gesetzt. Ändert sich dadurch etwas?)

Danach kamn folgender Fehler:

Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [ mysql4 ]

Unknown column 'fav_url' in 'field list' [1054]

SQL

INSERT INTO kas_phpbb_users (fav_url, fav_name) VALUES ('/news.php', '');

BACKTRACE

FILE: includes/db/mysql.php
LINE: 174
CALL: dbal->sql_error()

FILE: news.php
LINE: 113
CALL: dbal_mysql->sql_query()
Dass der Fehler kommt ist logisch. Natürlich ändert sich da was - ist ja immerhin eine Klammer, die du verschiebst. :wink: Welcher Fehler kam denn vorher?

Die beiden Spalten müssen existieren - das macht Sinn. Die erstellst du mit

Code: Alles auswählen

ALTER TABLE 'kas_phpbb_users' ADD 'fav_url' varchar(255), 'fav_id' mediumint(8);
direkt in phpMyAdmin.

Jetzt - ich hab den Fehler :D - änderst du diese Zeile:

Code: Alles auswählen

    $sql = "INSERT INTO " . USERS_TABLE . " (fav_url, fav_name) VALUES ('" . $fav_url . "', '" . $fav_name . "');"; 
so um:

Code: Alles auswählen

    $sql = "UPDATE " . USERS_TABLE . " SET fav_url = '" . $fav_url . "', fav_id = '" . $fav_id . "' WHERE user_id = '" . $user->data['user_id'] . "';"; 
Außerdem musst du nach

Code: Alles auswählen

include($phpbb_root_path . 'common.' . $phpEx); 
folgendes einfügen:

Code: Alles auswählen

$user->session_begin();
$auth->acl($user->data);
$user->setup(); 
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: Button welcher die momentane URL einspeichert

Beitrag von sneasel »

Wenn ich die Klammer wieder zurücksetzte kommt der fehler:

Parse error: syntax error, unexpected '[' in /www/htdocs/w00b1d7e/WirtIng/WirtIng/news.php on line 110

(erscheint wenn man die Seite mit dem Button aufruft


Wo muss ich dass denn hinpacken?

Code: Alles auswählen

 ALTER TABLE 'kas_phpbb_users' ADD 'fav_url' varchar(255), 'fav_id' mediumint(8);
Habs jetzt einfach in den Code geschrieben. (wird das dann doppelt erstellt wenn man den button öfter drückt?
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Button welcher die momentane URL einspeichert

Beitrag von Elsensee »

Du solltest den SQL-Befehl in phpMyAdmin ausführen. :)
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: Button welcher die momentane URL einspeichert

Beitrag von sneasel »

Hab sowas noch nie gemacht.

Also einfach auf meine Datenbank in MySQL und dann in den Registerkarten auf SQL und danach den Befehl reinkopieren?
Wie wird der denn ausgeführt (Nur einmal oder auch wenn neue User dazukommen?

EDIT: Da immer ein Syntax fehler kam hab ich es so geschrieben geht das ? :

Code: Alles auswählen

ALTER TABLE kas_phpbb_users ADD (fav_url varchar(255), fav_id mediumint(8))
MfG Matthias
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: Button welcher die momentane URL einspeichert

Beitrag von sneasel »

Gibt noch ein paar neue Probs:

1. Es wird nur die URL eingespeicher (in MYSQL) die Felder für den Namen (Fav_id) bleibt leer.

Code: Alles auswählen

if (isset($_POST['button1']))
{
    $fav_url = $_SERVER['REQUEST_URI'];
    $fav_id = substr($fav_url, strripos($fav_url, 'f=') + 2);
    $sql = "SELECT forum_name FROM " . FORUMS_TABLE . " WHERE forum_id = '" . $fav_id . "';";
    $result = $db->sql_query($sql);
    $fav_name = $db->sql_fetchrow($result['forum_name']);
    $db->sql_freeresult($result);
    //ALTER TABLE 'kas_phpbb_users' ADD 'fav_url' varchar(255), 'fav_id' mediumint(8);
    $sql = "UPDATE " . USERS_TABLE . " SET fav_url1 = '" . $fav_url . "', fav_id1 = '" . $fav_name . "' WHERE user_id = '" . $user->data['user_id'] . "';";
    $db->sql_query($sql);
}
2. (Hat sich erledigt :D)



3. Da ja auch immer neue User ins Forum kommen wär mir eine Möglichkeit die benötigten Felder automatisch zu erstellen lieber
Bis jetzt habe ich sie ja manuell erstellt in MYSQL

MfG Matthias
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: Button welcher die momentane URL einspeichert

Beitrag von sneasel »

So noch mal ne Aktualisierung meiner Probleme:

1. Es wird noch immer nur die URL eingespeichert. $fav_id ist auf jeden fall richtig (immer die ID des gesuchten Forums) Es muss also an der Abfrage von $fav_name liegen.

Code: Alles auswählen

if (isset($_POST['button1']))
{
    $fav_url = $_SERVER['REQUEST_URI'];
    $fav_id = substr($fav_url, strripos($fav_url, 'f=') + 2);
    $sql = "SELECT forum_name FROM " . FORUMS_TABLE . " WHERE forum_id = '" . $fav_id . "';";
    $result = $db->sql_query($sql);
    $fav_name = $db->sql_fetchrow($result['forum_name']);
    $db->sql_freeresult($result);
    //ALTER TABLE 'kas_phpbb_users' ADD 'fav_url' varchar(255), 'fav_id' mediumint(8);
    $sql = "UPDATE " . USERS_TABLE . " SET fav_url1 = '" . $fav_url . "', fav_id1 = '" . $fav_name . "' WHERE user_id = '" . $user->data['user_id'] . "';";
    $db->sql_query($sql);
}
2. Die Tabellen die für das UPDATE nötig sind sollen automatisch erstellt werden. Entweder direkt für jeden User bei der Anmeldung oder eben im programm nach Buttonklick.
Hab leider keine Ahnung wie das geht.

3. Ich will als Startseite eine Newsseite einrichten. die Funktioniert soweit ganz gut, jedoch erscheinen im overall_header (Der Bereich in dem das ausklappbare Menü ist) nicht die Buttons zum anmelden registrieren.
Wie kann ich das beheben?

Hier die Newsseite: http://www.deinekarrierevonmorgen.de/news.php
Hier sind die Buttons vorhanden: http://www.deinekarrierevonmorgen.de/viewforum.php?f=6

Meine vermutung: Ich würde vermuten (ich bin absoluter Anfänger), dass das Forum nicht weiß welcher User sich auf der Newsseite befindet. (Vll fehlt so ein Code)

Code: Alles auswählen

<!-- IF S_NO_READ_ACCESS -->

	<div class="panel">
		<div class="inner"><span class="corners-top"><span></span></span>
		<strong>{L_NO_READ_ACCESS}</strong>
		<span class="corners-bottom"><span></span></span></div>
	</div>

	<!-- IF not S_USER_LOGGED_IN and not S_IS_BOT -->

		<form action="{S_LOGIN_ACTION}" method="post">

		<div class="panel">
			<div class="inner"><span class="corners-top"><span></span></span>

			<div class="content">
				<h3><a href="{U_LOGIN_LOGOUT}">{L_LOGIN_LOGOUT}</a><!-- IF S_REGISTER_ENABLED -->&nbsp; &bull; &nbsp;<a href="{U_REGISTER}">{L_REGISTER}</a><!-- ENDIF --></h3>

				<fieldset class="fields1">
				<dl>
					<dt><label for="username">{L_USERNAME}:</label></dt>
					<dd><input type="text" tabindex="1" name="username" id="username" size="25" value="{USERNAME}" class="inputbox autowidth" /></dd>
				</dl>
				<dl>
					<dt><label for="password">{L_PASSWORD}:</label></dt>
					<dd><input type="password" tabindex="2" id="password" name="password" size="25" class="inputbox autowidth" /></dd>
					<!-- IF S_AUTOLOGIN_ENABLED --><dd><label for="autologin"><input type="checkbox" name="autologin" id="autologin" tabindex="3" /> {L_LOG_ME_IN}</label></dd><!-- ENDIF -->
					<dd><label for="viewonline"><input type="checkbox" name="viewonline" id="viewonline" tabindex="4" /> {L_HIDE_ME}</label></dd>
				</dl>
				<dl>
					<dt>&nbsp;</dt>
					<dd><input type="submit" name="login" tabindex="5" value="{L_LOGIN}" class="button1" /></dd>
				</dl>
				{S_LOGIN_REDIRECT}
				</fieldset>
			</div>

			<span class="corners-bottom"><span></span></span></div>
		</div>

		</form>

	<!-- ENDIF -->

<!-- ENDIF -->
Wär super wenn ihr mir helfen könntet

MfG Matthias
Antworten

Zurück zu „[3.0.x] Styles, Templates und Grafiken“