anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Di 11 Aug, 2020 11:50

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr 13 Feb, 2009 21:02 
Offline
Meister
Meister
Benutzeravatar

Registriert: Fr 17 Aug, 2007 22:36
Beiträge: 367
Wohnort: In unergründlichen Höhlen
Geschlecht: Weiblich
LoGD: http://projekt-davorin.de/
Überschrift sagt eigentlich schon alles. Habe eine Redaktion für meine
Zeitung gebastelt, wo ein Besprechungsraum für Interviews vorhanden ist.
Von dort aus soll superuser 1 Spieler einladen oder ausladen können- welche
nur bei einer einladung den Raum sehen. Raum sieht man- doch will superuser 1
jemanden einladen bzw. ausladen bekomme ich die Meldung:

No input file specified.

Die Url zum Script:
http://inseln-campius.de/source.php?dir=1&file=222

_________________
Mao?
Unsere Scripte verfassen wir in Beerware

PHP:
Davorin- Waldkämpfe klickern war gestern
;) Nu wird gequestet!
(Im Aufbau)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 13 Feb, 2009 22:00 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Also in dein Skript haben sich schon einige Fehler eingeschlichen, ich versuche, mal alle auf zu führen:
$this->bbcode_second_pass_code('', '$sql="SELECT * FROM accounts WHERE name=".$_POST['search'];')
Schon mal nicht gut:
Zum einen wird hier nicht geproüft, ob $_POST['search'] überhaupt einen Wert hat,
dann wird der String nicht maskiert (ist zwar in einem superuser-Bereich nicht soooo kritisch wie im normalen Spiel, aber trotzdem schlecht)
Schließlich muss der gesuchte Name noch in einen String innerhalb des SQL-Strings geschachtelt werden:
$this->bbcode_second_pass_code('', 'if(empty($_POST['search'])) {
// Bla bla... nix eingegeben und so
} else {
$sql = sprintf("SELECT * FROM accounts WHERE name='%s'",mysql_real_escape_string($_POST['search']));
// ...
')

Nächster Punkt: Du holst dir mit dem oben gebauten Query schon *alle* Felder aus der Accounts-Tabelle raus: Das ein zweites Mal zu tun (innerhalb der Schleife) ist ja nun mehr als doppelt gemoppelt. Im Gegenzug sollte man eher den oben beschrieben Query auf die benötigten Felder beschränken. Die Zeilen:
$this->bbcode_second_pass_code('', ' $sql2="SELECT * FROM accounts WHERE acctid=".$row['acctid'];
$result=db_query($sql2);
$row2=db_fetch_assoc($result);')
Können also gestrichen werden, aus $row2 zwei Zeilen weiterwird einfach zu einem $row.

Dann kommt es richtig dicke:
$this->bbcode_second_pass_code('', 'db_query($sql="INSERT INTO room(acctid) VALUE(".$_GET['acctid'].")");')
Zunächst: Wenn du schon direkt einen String an die Funktion db_query übergibst, brauchst du es nicht erst in die variable zu stopfen. Des weiteren nennst du den Parameter, der die ID des Eingeladenen beinhalten soll oben "id", unten versuchst du ein $_GET['acctid'] ab zu Fragen: kann gar nicht funktionieren. Außerdem muss es VALUES und nicht VALUE heißen Also:
$this->bbcode_second_pass_code('', 'db_query("INSERT INTO room(acctid) VALUES(".$_GET['id'].")");')
Im Folgenden muss eben auch noch immer $_GET['acctid'] durch $_GET['id'] ersetzt werden.

Beim Ausladen-Dialog kann man sich mit einem etwas besseren Querys wieder das doppel-gequery-gemoppel sparen:
$this->bbcode_second_pass_code('', '$sql="SELECT a.acctid, a.name FROM room JOIN adressen a USING(acctid)";')
Dile folgenden Zeilen fliegen damit wieder raus:
$this->bbcode_second_pass_code('', '$sql2="SELECT * FROM accounts WHERE acctid=".$row['acctid'];
$result=db_query($sql2);
$row2=db_fetch_assoc($result);')
... und im folgenden muss aus $row2 wieder $row werden.

Soviel erst mal zu konkreten Problemen - An allgemeinen Hinweisen bleibt wie immer das übliche:
Statt der tausend einzelnen IFs lieber ELSEIFs oder gleich switch-case verwenden. Dazu noch: Mehr einrücken und ein bisschen mehr Übersicht durch Absätze und Co. schaffen - so kann man den Code echt nicht besonders gut lesen. Außerdem sollte die Struktur der Tabelle "room" noch mit in die Datei (als Kommentar) - übrigens ist der Name "room" wirklich ungünstig gewählt!

Ich hoffe das hilft dir weiter. Falls die seltsame Fehlermeldung immer noch auftaucht, versuche mal heraus zu finden, in welcher Zeile bzw. bei welcher Anweisung der auftaucht (von hinten raus Code auskommentieren und probieren).

Auric

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo 16 Feb, 2009 19:44 
Offline
Großmeister
Großmeister
Benutzeravatar

Registriert: Fr 06 Jan, 2006 01:33
Beiträge: 459
Wohnort: Simmern
Geschlecht: Männlich
LoGD: http://www.morpheus-lotgd.de
Ich hoffe, Auric konnte Dir helfen denn Dein Source Link sagt nur...

Zitat:
Parse error: syntax error, unexpected '.' in /customers/inseln-campius.de/inseln-campius.de/httpd.www/common.php on line 732

_________________
Ich bin das Land, meine Augen sind der Himmel, meine Glieder die Bäume, ich bin der Fels, die Wassertiefe. Ich bin nicht hier, um die Natur zu beherrschen oder sie auszubeuten. Ich bin selbst Natur.

(Hopi)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo 16 Feb, 2009 21:31 
Offline
Meister
Meister
Benutzeravatar

Registriert: Fr 17 Aug, 2007 22:36
Beiträge: 367
Wohnort: In unergründlichen Höhlen
Geschlecht: Weiblich
LoGD: http://projekt-davorin.de/
Hatte vorhin an meiner Nav etwas verändert, sorry. Hast wohl genau diesen Moment erwischt.
Source müsste nun gehen.
Hatte angefangen die lavie zu machen, es hat nicht so ganz geklappt, also habe ich es
gelassen. Dann kamen ein paar Sachen dazwischen aber nun werd ich es noch einmal
versuchen. Habe heute endlich wieder Zeit.

€dit; Hat alles super geklappt. *Auric zuzwinker* ^^

_________________
Mao?
Unsere Scripte verfassen wir in Beerware

PHP:
Davorin- Waldkämpfe klickern war gestern
;) Nu wird gequestet!
(Im Aufbau)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum