anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 12 Jun, 2025 22:43

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 38 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Datenbankdirektzugriff in 0.97
BeitragVerfasst: Do 12 Jan, 2006 20:59 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 29 Dez, 2005 16:50
Beiträge: 178
Wohnort: Pinneberg
ch habe für 0.97 versucht ein script zu schreiben mit dem ich sql-befehle direkt ausführen kann ohne extra die db extern zu öffnen
wenn ich jetzt jedoch mein script anwende(und das selbst definierte superuserlvl 4 habe) werden die sql-befehle nicht ausgefüht
wenn jemand den fehler findet wäre ich echt dankbar:
[php]<?php
require_once "common.php";
page_header("Datenbankzugriff");
addnav ("Datenbankbefehl eingeben","dbwrite?op=write");
addnav("Zurück","superuser.php");
if ($session[user][superuser]>=4){
switch($_GET['op']){
case "";
addnav ("Datenbankbefehl eingeben","dbwrite?op=write");

case "write":
addnav("","dbwrite.php?op=drin&act=write2");
addnav("Doch nichts schreiben","dbwrite.php");
rawoutput("<table align='center'width='300'><tr><td>");
rawoutput("<form action='dbwrite.php?act=write2' method='POST'>");
rawoutput("<textarea name='text' cols='50' rows='15'>"
."</textarea>");
rawoutput("<input type='submit' class='button' value='Ausführen' />");
rawoutput("</form>");
rawoutput("</td></tr></table>");
break;

case "write2":
$sql = $_POST['text'];
db_query($sql) or die(sql_error($sql));
redirect("dbwrite.php");
addnav("Zurück","dbwrite.php");
break;
}
}
else{
redirect ("superuser.php");
}
page_footer();
?>[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Datenbankdirektzugriff in 0.97
BeitragVerfasst: Do 12 Jan, 2006 21:19 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
[php]case "write2":
$sql = explode(";",$_POST['text']);
$i = 0;
while($i < count($sql))
{
db_query($sql[$i]) or die(db_error(LINK));
rawoutput($_POST['text']);
addnav("Zurück","dbwrite.php");
}
break;[/php]

mysql_query nimmt normalerweise nur den Ersten Befehl an... Aus verschiedenen Sicherheitsgründen.
So sollte man den Query präparieren könnten, dass er alle nimmt.
gehts so?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 12 Jan, 2006 21:23 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 29 Dez, 2005 16:50
Beiträge: 178
Wohnort: Pinneberg
immer noch nicht

ich will das ganze verwenden um außerhalb von phpmyadmin neue tabellen und spalten erstellen zu können, momentan kann ich damit aber nur neue zeilen erzeugen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 12 Jan, 2006 21:25 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Kakerlake hat geschrieben:
immer noch nicht

ich will das ganze verwenden um außerhalb von phpmyadmin neue tabellen und spalten erstellen zu können, momentan kann ich damit aber nur neue zeilen erzeugen


Argh...
[php]
$sql = explode(";",stripslashes($_POST['text']));[/php]

So?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 12 Jan, 2006 21:31 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 29 Dez, 2005 16:50
Beiträge: 178
Wohnort: Pinneberg
jetzt werden mehrere zeilen eingabe unterstützt aber spalten und tabellen macht er immer noch nicht :(

was kann phpmyadmin was ich nicht kann :cry:

EDIT: jetzt werden garkeine befehle mehr ausgefürhrt???


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 12 Jan, 2006 21:36 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Nochmal was falsch von mir...

[php]case "write2":
$sql = explode(";",stripslashes($_POST['text']));
$i = 0;
while($i < count($sql))
{
db_query($sql[$i]) or die(db_error(LINK));
}
rawoutput($_POST['text']);
addnav("Zurück","dbwrite.php");
break; [/php]

Was wird ausgegeben?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 12 Jan, 2006 21:40 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 29 Dez, 2005 16:50
Beiträge: 178
Wohnort: Pinneberg
irgendwie bleibe ich immer in act=write hängen so das write2 nie zum einsatz kommt

denn wenn ich versuche etwas einzugeben kommt in der url-bar nur das badnav obwohl ich in dem script eigentlich alles erlaubt hatte

EDIT: woher kommt das op=drinn???

das hat alles durcheinandergebracht :P


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 12 Jan, 2006 21:52 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Kakerlake hat geschrieben:
irgendwie bleibe ich immer in act=write hängen so das write2 nie zum einsatz kommt

denn wenn ich versuche etwas einzugeben kommt in der url-bar nur das badnav obwohl ich in dem script eigentlich alles erlaubt hatte

EDIT: woher kommt das op=drinn???

das hat alles durcheinandergebracht :P


Ich schätze mal, da het wer was aus dem Lesezimmer als Vorlage genommen? *gg*

egal... ^^

Gehts nun?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 12 Jan, 2006 22:02 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 29 Dez, 2005 16:50
Beiträge: 178
Wohnort: Pinneberg
[php]<?php
require_once "common.php";
page_header("Datenbankzugriff");
addnav ("Datenbankbefehl eingeben","dbwrite.php?op=write");
addnav("Zurück","superuser.php");
addnav("","dbwrite.php?&op=write2");
if ($session[user][superuser]>=4){
switch($_GET['op']){
case "write":
addnav("","dbwrite.php?&op=write2");
addnav("Doch nichts schreiben","dbwrite.php");
rawoutput("<table align='center'width='300'><tr><td>");
rawoutput("<form opion='dbwrite.php?op=write2' method='POST'>");
rawoutput("<textarea name='text' cols='50' rows='15'>"
."</textarea>");
rawoutput("<input type='submit' class='button' value='Ausführen' />");
rawoutput("</form>");
rawoutput("</td></tr></table>");
break;

case "write2":
$sql = explode(";",stripslashes($_POST['text']));
$i = 0;
while($i < count($sql)){
db_query($sql[$i]) or die(db_error(LINK));
}
rawoutput($_POST['text']);
addnav("Zurück","dbwrite.php");
break;

case "";
break;
}
}
else{
redirect ("superuser.php");
}
page_footer();
?>[/php]

irgendwie kann ich write2 immernoch nicht aufrufen, ka wieso
muss ich das irgendwie als if realisieren?
hab das ebenfalls betreits versucht, dann kommt es jedoch zu einem fehler da ich ja die sicherheitsabfrage drinnen habe


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 12 Jan, 2006 23:22 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Vorweg, lerne bitte Code- einrücken. Sowas ist echt schlimm, keine wirkliche übersicht. Aber schön hingeklatscht, Hauptsache es Funktioniert. Hab dir mal unten ne komplette Version angehängt die Funktionieren sollte, kanns aber nicht garantieren. Da ich es nicht getestet habe.

P.s:
Dies gilt auch für deine PHP- Kenntnisse siehe dazu PHP-Insel. Recht interessant dort evtl. gerade für dich passend.


Zuletzt geändert von Kevz am Fr 13 Jan, 2006 12:33, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 09:50 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 29 Dez, 2005 16:50
Beiträge: 178
Wohnort: Pinneberg
bleibe immer im ersten case hängen, beim versuch die befehle auszufürhren kommt nur badnav und das wars dann schon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 10:31 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
[php]
case "write":
addnav("","dbwrite.php?&op=write2");
addnav("Doch nichts schreiben","dbwrite.php");
rawoutput("<form action='dbwrite.php?op=write2' method='POST'>");
rawoutput("<table align='center'width='300'><tr><td>");
rawoutput("<textarea name='text' cols='50' rows='15'>"
."</textarea>");
rawoutput("<input type='submit' class='button' value='Ausführen' />");
rawoutput("</td></tr></table>");
rawoutput("</form>");
break;
[/php]

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 12:32 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Eieiei, mein fehler sry. Hab da einen kleinen fehler übersehen und zwar diesen hier &, der gehört garnit darein :roll:. Oben ist neue Version angehängt, einfach ersetzen bzw. einfügen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 12:43 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 29 Dez, 2005 16:50
Beiträge: 178
Wohnort: Pinneberg
thx, fuktioniert jetzt, kann komplette tabellen erstellen ohne extra phpmyadmin aufrufen zu müssen oder ein script zu schreiben

falls jemand das script übernehmen möchte:
entweder die superuserabfrage auf stufe 3 runtersetzen oder im usereditor adminlvl 4 hinzufügen
[php] "superuser"=>"Superuser,enum,0,Standard Spieltage pro Kalendertag,1,Unbegrenzt Spieltage pro Kalendertag,2,Kreaturen und Spott administrieren,3,User administrieren",
ersetzen durch:
"superuser"=>"Superuser,enum,0,Standard Spieltage pro Kalendertag,1,Unbegrenzt Spieltage pro Kalendertag,2,Kreaturen und Spott administrieren,3,User administrieren,4,Programmierer",[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 14:01 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
hm kann dann hier irgendwer die fertige fassung anhängen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 14:25 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 29 Dez, 2005 16:50
Beiträge: 178
Wohnort: Pinneberg
Das File in superuser verlinken, möglichst mit folgendem Befehl:
[php]if ($session[user][superuser]>=3) addnav("Datenbankzugriff","dbwrite.php");[/php]

falsche Eingaben können Datenbankfehler verursachen, daher VORSICHT

EDIT: fürht schon wieder ins badnav :bash:

EDIT2: Dateianhang erneuert, war jedoch kein fehler drinnen


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Zuletzt geändert von Kakerlake am Fr 13 Jan, 2006 15:08, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 14:47 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/web1/html/logdonline/dbwrite.php on line 8


lol


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 15:29 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
So hier eine Funktionierende Version. Wenn du nächste mal etwas daran änderst mach es richtig! Lies dir mal php.net durch, dort kannst du ein wenig deine Grundkenntnisse aufbessern. Denn das was ich jedes mal im Script sehe, ist wirklich schlimm bei dir. Du machst immer leere Abfragen und das jedes mal...


Zuletzt geändert von Kevz am Fr 13 Jan, 2006 16:18, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 15:50 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 29 Dez, 2005 16:50
Beiträge: 178
Wohnort: Pinneberg
hast du die version getestet?

komme wie immer bis case 'write'
beim versuch case 'write2' durch das javascript aufzurufen kommt immer das badnav :???:

für welche php-version hast du das ganze jetzt eigentlich genau modifiziert?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Jan, 2006 16:19 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Sooo, oben hängt neue. Habs grad getestet sollte jetzt aufjedenfall Funktionieren. Welche PHP- Version ich benutze sowie Editor ist wurscht ;)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 38 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 37 Gäste


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:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum