User-/Rechteverwaltung für andere Programme nutzen?!

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

User-/Rechteverwaltung für andere Programme nutzen?!

Beitrag von Ralf »

Hallo zusammen,

ich hätte da so ein ähnliches Problem bzw. Frage wie im Beitrag hier.

Denn ich möchte gerne für Mitglieder einen Downloadbereich von 5-8 Kategorien mit jeweils ca. 50 Dateien anbieten. Da Conpresso hierfür etwas schwierig zu händeln ist, habe ich mir folgende Lösung gedacht:

Gibt es einen Weg, die Userverwaltung um ein anderes Skript "herum zu spannen"?? so in der Art, dass ich den header und footer von CPO nehme und den Inhalt dann von dem anderen Programm. Das ganze dann mit externem Link verlinke und siehe da es ist "integriert"???

Geht das??

cu Ralf

P.S. Oder gibt es Anstrengungen im neuen CPO, die Dateiverwaltung durch einen Mod für größere Datenbestände zu verbessern??
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Nimm Dir die _rubric/index.php und ersetze die Zeile, die i_index.php includet durch Dein eigenes Script.
Dabei muß man aber drauf achten, daß keine benutzten Variablen miteinander kollidieren, im Notfall nach dem Header einfach durch unset(...) zurücksetzen.

Viel problematischer sind die Klassen und Funktionen (welche es gibt, sagt Dir Dein BS mittels Textsuche nach class bzw. function), die nicht neu deklariert werden können.

Bei eigenen Scripten kann man das ja umgehen, bzw. geschickt die komfortablen Originalfunktionen benutzen. Nur bei Fremdscripten gibt es oft Konflikte... :?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Beitrag von Ralf »

OK,

beim ersten groben Test scheint es so zu funktionieren. :wink:

Doch da hätte ich noch eine Frage, wie verhält es sich wenn ich jetzt das Dateiverwaltungsskript direkt aufrufe, dann habe ich ja keinen Schutz mehr von Conpresso?!! Wäre es da nicht besser, nicht mein System in CPO zu includen sondern CPO in das andere Skript??
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Schreibe als erste Zeile in das Script (und alle anderen abhängigen) einfach

Code: Alles auswählen

if (!defined('CPO')) exit;
dann lassen sie sich nicht außerhalb von Conpresso aufrufen und sind demzufolge immer geschützt! :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Beitrag von Ralf »

mmhh ok Danke jedoch soweit bin ich noch nicht,

mein Problem momentan ist erst noch, dass ich zwar die "Startseite" includet habe, jedoch jeder weitere Link sieht so aus: pafiledb.php?action=category&id=1 und verweist somit auf die pafiledb.php Datei und wenn ich dann auf so einen Link klicke bin ich aus dem CPO drausen?!

Hat dazu irgendjemand eine Idee wie ich das Lösen könnte?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ändere den Link von pafiledb.php auf index.php und include lokal (also so wie es in der index.php auch zu sehen ist...

Wenn das zu kompliziert ist, dann kopiere die Inhalte aus index.php in die Datei pafiledb.php ...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Beitrag von Ralf »

wenn ich das so mache, kommt bei mir immer diese Fehler:
Warning: Cannot use a scalar value as an array in /www/htdocs/.../cms/test/includes/mysql.php on line 13

Warning: Cannot use a scalar value as an array in /www/htdocs/.../cms/test/includes/mysql.php on line 14

Warning: Cannot use a scalar value as an array in /www/htdocs/.../cms/test/includes/mysql.php on line 15

Warning: Cannot use a scalar value as an array in /www/htdocs/.../cms/test/includes/mysql.php on line 16

Warning: Cannot use a scalar value as an array in /www/htdocs/.../cms/test/includes/mysql.php on line 26
in diesen Zeilen steht folgendes:
$db[host] = "localhost"; //This is the MySQL server paFileDB will connect to
$db[user] = "user34"; //This is the MySQL user name
$db[pass] = "pw7654"; //This is the MySQL password
$db[name] = "user34";
und
$db[prefix] = "pafiledb1"; //Table name prefix-explained above.

Tja und jetzt komme ich nicht weiter ...
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ralf hat geschrieben:wenn ich das so mache...
Was ist denn "so"... :?:

Welchen Code benutzt Du nun?

Und wie vorausgesagt kollidieren die Variablen.

Da müsste man nun an die passende Stelle ein
unset ($db);
setzen.

In ConPresso wird $db als Klassenobjekt benutzt, in Deinem Script eben nur als Array...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Beitrag von Ralf »

Hallo Markus,

also mal der Reihe nach, ich habe das Skript erst wie du gesagt hast, in die Index.php includet. Doch dabei gabe es immernoch diese Fehler.
Da aber anscheinend alle Dateien auf diese pafiledb.php zugreifen, habe ich nun kurzerhand den Code von dieser Datei genommen und alles in meine Index.php reinkopiert (natürlich anstelle wo i_index.php includet wird).

Dann habe ich im kompletten Skript noch die Verweise von pafiledb.php auf index.php geändert, sowie vor dem aufruf der mysql.php in der index.php dieses unset ($db); eingesetzt.

und tatsächlich, es funktioniert!!! :lol: Vielen Dank


OK eine Kleinigkeit gibt es noch und zwar ein Dateiupload vom Skript klappt irgendwie noch nicht. Es wird mir zwar angezeigt die Datei xyz wäre hochgeladen aber wenn ich in den Ordner per FTP reinschaue ist da nichts drin (CHMOD 777 gesetzt)?!

Die Dateien werden mit folgendem Code geladen:

Code: Alles auswählen

if ($upload == "do") {
	?>
	<script language="JavaScript">
        function seturl(url) {
        opener.document.form.<?php echo $field; ?>.value = url;
	}
	</script>
	<?php
		if (file_exists("./uploads/$userfile_name")) {
			?>
			<table width="100%" border="1" cellpadding="2" cellspacing="0" class="headertable" bordercolor="#000000">
           <tr><td width="100%" colspan="2" class="headercell"><center><b><?php echo $str[upload]; ?></b></center></td></tr>
           <tr><td width="5%" class="datacell" align="center" valign="middle"><img src="styles/<?php echo $config[11]; ?>/images/error.gif" border="0"></td><td width="95%" class="datacell"><?php echo $str[uploaderror]; ?>
           </td></tr></table>
			<?php
		} else {
		if (is_uploaded_file($userfile)) {
			move_uploaded_file($userfile, "./uploads/$userfile_name");
			chmod ("./uploads/$userfile_name", 0777);
			//$url = "http://$HTTP_SERVER_VARS[HTTP_HOST]".str_replace("index.php", "uploads/$userfile_name", $HTTP_SERVER_VARS[SCRIPT_NAME]);
			$url = "http://mein.Webspace.de/test/uploads/$userfile_name";

		}
		   ?>
	       <table width="100%" border="1" cellpadding="2" cellspacing="0" class="headertable" bordercolor="#000000">
           <tr><td width="100%" colspan="2" class="headercell"><center><b><?php echo $str[upload]; ?></b></center></td></tr>
           <tr><td width="5%" class="datacell" align="center" valign="middle"><img src="styles/<?php echo $config[11]; ?>/images/info.gif" border="0"></td><td width="95%" class="datacell"><?php echo "$str[uploaddone] $url<br><a href=\"javascript:seturl('$url')\">$str[uploaddone2]</a>"; ?>
           </td></tr></table>
	       <?php
	}

.....

		$path = str_replace("/index.php", "", $PHP_SELF);
		$dburl = "http://$HTTP_SERVER_VARS[HTTP_HOST]$path";
Komisch ist auch, dass obwohl ich den Ordner angebe wo es rein soll, es nicht passiert?!!

Meine Frage nun, ist in diesem Code noch eine Variable drin, die von Conpress schon verwendet wird? bzw. die ich dann eben "unset" setzen müsste?

Noch irgendwelche Ideen? (Da wenn ich das Skript ausserhalb von CPO installiere, funktioniert dieser Upload wunderbar!! Sogar auf dem gleichen Webspace)

Danke cu Ralf

p.s. Falls noch mehr Infos benötigt werden, bitte einfach melden ... bzw. ich füge mal die Datei von der der Code oben ist einfach an?! ...
Dateianhänge
file.txt
Habe die Endung von *.php auf *.txt geändert.
(30.69 KiB) 619-mal heruntergeladen
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Erste Idee: bei WS-FTP mal auf "aktualisieren" klicken... ich habe mich da auch schon öfters verwirren lassen... :wink:

Ansonsten ist das sehr strange, da keine Fehlermeldungen von move_uploaded_file ausgegeben werden...

Schreibe mal davor die Zeile
echo "Es wurde wirklich was hochgeladen: ".$userfile_name;

Ich habe so ein bißchen register_globals im Verdacht...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Beitrag von Ralf »

OK

zur 1.) nein leider nicht!! Dachte ich auch erst, jedoch ein Aktualisieren und sogar Programm neustart zeigt immer noch nichts an ...

2. ok werde ich machen, jedoch die Variable $userfile_name wird eigentlich ausgegeben, denn die Ausgabe nach einem "eigentlich erfolgreichen" Upload lautet folgendermaßen:
Die Datei file.txt wurde hochgeladen! Die URL zu dieser Datei ist
Klicke hier um die URL einzutragen.
Die Nachricht müsste eigentlich so aussehen/ lauten (so sieht es ausserhalb von CPO aus!!):
Die Datei file.txt wurde hochgeladen! Die URL zu dieser Datei ist http://www.meinwebspace.de/pafile/uploads/file.txt
Klicke hier um die URL einzutragen.
der HTML-Quellcode zur "falschen Ausgabe":

Code: Alles auswählen

<td width="82%" class="datacell" valign="top">
	
		<script language="JavaScript">
        function seturl(url) {
        opener.document.form.dlurl.value = url;
	}
	</script>
		       <table width="100%" border="1" cellpadding="2" cellspacing="0" class="headertable" bordercolor="#000000">
           <tr><td width="100%" colspan="2" class="headercell"><center><b>Datei hochladen</b></center></td></tr>

           <tr><td width="5%" class="datacell" align="center" valign="middle"><img src="styles/grey/images/info.gif" border="0"></td><td width="95%" class="datacell">Die Datei file.txt wurde hochgeladen! Die URL zu dieser Datei ist <br><a href="javascript:seturl('')">Klicke hier um die URL einzutragen.</a>           </td></tr></table>
	       	</td></tr></table>
	</td>
Tja da setzt er ja den Dateinamen ein, jedoch die URL zu der Datei zeigt er nicht an (obwohl ich ja wie weiter oben schon berichtet, sogar den ganzen Pfad zum Ordner angegeben habe und er nur noch den Dateinamen einfügen müsste???!!).

3. wenn du register_globals gerade erwähnst, so sieht meine neue Index.php aus (zumindes mal der start):

Code: Alles auswählen

define('CPO', true);
require_once('../_include/common.inc.php');

$pagetype = 'index';
require(CPO_BASEDIR.'_include/var_category.php');
require(CPO_BASEDIR.'_include/secure.php');

unset ($db);

if (file_exists("./install.php")) { die("Error: The file install.php (paFileDB installer) still exists on the server! This is a security risk! Please delete the file to continue using paFileDB."); }
/*---------------------
	If register_globals is off, we'll extract all of the superglobals so they can be used.
---------------------*/
if (!@ini_get('register_globals')) {
	extract($_GET);
	extract($_POST);
	extract($_COOKIE);
	extract($_SERVER);
}
liegt hier evtl. das Problem??

cu Ralf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Mit den echo-Ausgaben arbeite ich mich immer ran, um zu sehen, ob bestimmte Bedingungen auch wirklich abgearbeitet werden. Und da der entscheidende Teil ja sonst keine Ausgaben erzeugt... :wink:

Kann aber auch an Deiner Variablenbehandlung liegen, die bereits von Conpresso in der common.inc.php durchgeführt wird

Code: Alles auswählen

@import_request_variables('cgp'); 
Weiß nicht, ob ein doppelter Import da nichts zerschießt... :gruebel:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Beitrag von Ralf »

Habe jetzt mal dieses echo hier eingefügt:

Code: Alles auswählen

		if (is_uploaded_file($userfile)) {
			move_uploaded_file($userfile, "./uploads/$userfile_name");
			chmod ("./uploads/$userfile_name", 0777);
			echo "Es wurde wirklich was hochgeladen: ".$userfile_name;
			$url = "http://$HTTP_SERVER_VARS[HTTP_HOST]".str_replace("index.php", "uploads/$userfile_name", $HTTP_SERVER_VARS[SCRIPT_NAME]);
		}
Jedoch es wird NICHTS ausgegeben?!!!

... und jetzt?? möchtest du dir das ganze mal vorOrt anschauen oder soll ich mich an den Support wenden?

Vielen Dank cu Ralf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Versuche es doch mal mit den globalen Variablen:

Code: Alles auswählen

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { 
         move_uploaded_file($_FILES['userfile']['tmp_name'], "./uploads/".$_FILES['userfile']['name']); 
         chmod ("./uploads/".$_FILES['userfile']['name'], 0777); 
         echo "Es wurde wirklich was hochgeladen: ".$_FILES['userfile']['name']; 
         $url = "http://$HTTP_SERVER_VARS[HTTP_HOST]".str_replace("index.php", "uploads/".$_FILES['userfile']['name'], $HTTP_SERVER_VARS[SCRIPT_NAME]); 
      } 
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Beitrag von Ralf »

@ Markus

Vielen Dank, genau das schien das Problem zu sein!!
Jetzt scheint es jedenfalls wunderbar zu funktionieren.

Nochmals Dank
cu Ralf
Antworten