phpBB Seite erstellen! php-fehler

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
2005
Mitglied
Beiträge: 253
Registriert: 10.10.2005 19:52
Wohnort: Tauberbischofsheim
Kontaktdaten:

phpBB Seite erstellen! php-fehler

Beitrag von 2005 »

http://www.phpbb.de/doku/kb/artikel.php?artikel=72
mit dieser Anleitung, will ich eine Seite erstellen, die man in etwa so aufruft:

Code: Alles auswählen

anzeigen.php?link=Seite1
aber das

Code: Alles auswählen

?link=Seite1
wird nicht verarbeitet!!!
wie kann ich das ändern???

Ich brauche die phpBB-orlage, denn ich möchte eine eingeloggt-Prüfung einbauen!
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag von AmShaegar »

was willst du denn mit ?link=seite1 bewirken?! dein quellcode wäre an dieser stelle angebracht...

wenn du meinst wie du nun seite1 in deinen code bekommst:

Code: Alles auswählen

<?php
$link = $_GET['link'];
echo $link;  // gibt "seite1" aus.
?>
wenn du die vorlage vom phpbb benutzt einfach folgendes einbauen, um zu prüfen ob der benutzer eingeloggt ist:

Code: Alles auswählen

if($userdata['user_name'] != "Anonymous")
  {
  echo "Du bist eingeloggt!";
  }
else
  {
  echo " Du bist noch nicht eingeloggt!<br>Jetzt <a href="login.php">einloggen</a>/<a href="register.php">registrieren</a>
oder wo liegt jetzt dein problem?!
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Code: Alles auswählen

if($userdata['user_name'] != "Anonymous") 
  { 
  echo "Du bist eingeloggt!"; 
  } 
else 
  { 
  echo " Du bist noch nicht eingeloggt!<br>Jetzt <a href="login.php">einloggen</a>/<a href="register.php">registrieren</a>
Was ist das denn für nen schlechtes Beispiel? Das gäbe Parse Error, ausserdem seit wann fragt man ab ob einer eingeloggt ist anhand des Usernamen? :o

So wäre das besser....

Code: Alles auswählen

if($userdata['session_logged_in'])
{
echo 'Sie sind eingeloggt als '.$userdata['username'];
}
elseif(!$userdata['session_logged_in'])
{
echo 'Sie sind nicht eingeloggt<br /><a href="'. append_sid("login.".$phpEx).'">Hier klicken zum Einloggen</a>';
}
Das ist wesentlich besser :wink:
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag von AmShaegar »

lol.. hab ja auch die hälfte vergessen ;-) oh man.. ich geh besser ins bett...

aber eins noch: warum ist das besser das über session_logged_in zu machen?!
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

AmShaegar hat geschrieben:lol.. hab ja auch die hälfte vergessen ;-) oh man.. ich geh besser ins bett...

aber eins noch: warum ist das besser das über session_logged_in zu machen?!
Weil da drin gespeichert wird ob der User eingeloggt ist oder nicht.
Und nicht anhand des Usernamens. Stell dir vor da nennt sich ein User Anonymus? Dann haste ein Problem...

was man noch machen könnte wäre über die user_id gehen das ist relativ besser.

Code: Alles auswählen

if($userdata['user_id'] != "-1") 
{ 
echo 'Sie sind eingeloggt als '.$userdata['username']; 
} 
elseif($userdata['user_id'] == "-1") 
{ 
echo 'Sie sind nicht eingeloggt<br /><a href="'. append_sid("login.".$phpEx).'">Hier klicken zum Einloggen</a>'; 
}
Das wäre auch noch möglich.
Aber über $userdata['session_logged_in'] ist das wesentlich besser, schon alleine dafür weil die dafür gedacht ist den Eingeloggt Status zu überprüfen :wink:
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag von AmShaegar »

naja gut, ich gebs ja zu, war nicht grad das gelungenste beispiel, aber mit ein wenig verbesserung hätts geklappt... und soweit ich mir das denke kann sich niemand anonymous nennen, weil dann nen db-konflikt gäbe... sprich phpbb würde dir sagen der benutzername ist schon vorhanden :-P

und noch was... warum elseif, wenns soch genau das gegenteil ausdrückt, was man auch mit else erreicht?
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

AmShaegar hat geschrieben:naja gut, ich gebs ja zu, war nicht grad das gelungenstre beispiel, aber mit ein wenig verbesserung hätts geklappt... und soweit ich mir das denke kann sich niemand anonymous nennen, weil dann nen db-konflikt gäbe... sprich phpbb würde dir sagen der benutzername ist schon vorhanden :-P

und noch was... warum else if, wenns soch genau das gegenteil ausdrückt, was man auch mit else erreicht?
Warum kein else if? Spricht was dagegen? :P

Doch man kann sich Anonymus nennen (konnte man auf jeden Fall noch bei 2.0.3 oder was das war), später kamen dann nur noch einlogg Fehler, aber egal. btw. ich hatte mich dort Als Anonymus regestriert.

Ausserdem macht else nicht das Gegenteil, sondern das was da steht falls if nicht true ist, also nix vom Gegenteil :wink:
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag von AmShaegar »

wenn der name nicht gleich anonymous ist passiert etwas.... das kannst doch nicht abstreiten, dass wenn der name doch anonymous ist das gegenteil eintritt oder?! :roll: aber genug davon... danke für die lehrreiche stunde*g*
Benutzeravatar
wartek
Mitglied
Beiträge: 883
Registriert: 31.05.2005 18:52
Wohnort: Wien

Beitrag von wartek »

Bis auf Anonymus muss ich fanrpg Recht geben.

Hier ist die Abfolge if - else (if) noch überschaubar. aber wenn ich als Programmierer an einen komplexen Code komme der ein else if hat und nach weiteren zwei Seiten Code kein (abschließendes) else werde ich richtig unruhig. Dann suchst die wie blöd nach Endungen im Code die es gar nicht gibt.
if - else if ohne nachfolgendes else zeigt eindeutig von schlechter Programmierung.

wartek
Computers are not intelligent - they only think they are.
2005
Mitglied
Beiträge: 253
Registriert: 10.10.2005 19:52
Wohnort: Tauberbischofsheim
Kontaktdaten:

Beitrag von 2005 »

DANKE für das viele Posting!!!
In der verlinkten Anleitung steht alles!
Aber ich kann keine Valuen über die URL übergeben, denn dann passiert nix!
Das hat irgentwas mit dem Hacking Attamt oder so zu tun, denn wenn man den phpbb-Teil nicht in die php-Datei einbindet, dann funktionierts!!!
also:

Code: Alles auswählen

<?php
 echo "Die Seite: $seite";
?>
funktioniert wunderbar aber mit:

Code: Alles auswählen

//Benötigte Dateien und Variablen von phpBB 
define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 
//Session auslesen und Benutzer-Informationen laden 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 
dafor gehts nicht!!!

Die Frage, wie kann ich es so machen, dass die übergebenen Valuen nicht geblockt werden![/code][/quote]
Antworten

Zurück zu „Coding & Technik“