Fragen zur Gallery
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
benutzername
button
code
datum
eingabe
erstellen
fehler
file
filter
frage
helfen
http
input
manual
null
ordner
schutzmechanismen
target
url
verbessern
-
Hey,
kann mir jemand das zum einbauen helfen, dass es sich die Daten aus dem Ordner /Gallery/Galleryplayer/ holt, weiß nicht was ich da ändern muss bzw. wo ich den Pfad angeben muss. Wenn dann so ein Ordner angelegt wurde holt es sich dann nur die Daten die im Ordner /Gallery/Galleryplayer sind oder auch den Ordner selbst Galleryplayer sollte nur die Daten holen die im Ordner Galleryplayer sind wenn es geht wenn nicht dann den Order Galleryplayer dazu.
copy ("/default_dir/*.php",/.$user/");
Script:
<?php error_reporting(E_ALL|E_STRICT); // Lokalbook.de // Abfragen des Usernamen echo '<form method="POST"> Gib deinen Namen ein: <input type="text" name="user" value="" title="Namen eingeben" /> <input type="submit" name="create_folder" value="Ordner erstellen" /> </form>'; // Ist Button "Ordner erstellen" gedrückt if(isset($_POST['create_folder'])) { // Die eingabe ist leider leer. if(empty($_POST['user']) or strlen(trim($_POST['user'])) == 0) { echo "Die eingabe ist leider leer."; } else { // Erstelle Ordner mit Benutzernamen $user = $_POST['user']; if(preg_match('/\./', $user) || preg_match('/\//', $user)) { // Schutzmechanismus - Könnte man noch verbessern echo "Benutzername ungültig!"; } else { mkdir ('User/'.$user,0755); copy ("/default_dir/*.php",/.$user/"); echo "Ordner: <b>$user</b> wurde erfolgreich erstellt!"; } } } ?>
Gruß Tobi -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
@tobitk
... die Daten aus dem Ordner /Gallery/Galleryplayer/ holt
das ist keine verwertbare information zu der path-frage. (wenn man das nicht versteht, möchte man sich in die materie 'relative-' und 'absolute-path' unter php einlesen!)
... weiß nicht was ich da ändern muss ...
z.b. das hier
das geht aus zwei gründen nicht!copy ("/default_dir/*.php",/.$user/");
1. copy kennt keine joker-zeichen;
2. fehlt ein anführungszeichen.
"Könnte man noch verbessern" ist gelinde gesagt :o)if(preg_match('/\./', $user) || preg_match('/\//', $user)) { // Schutzmechanismus - Könnte man noch verbessern
auch das kann nicht gut gehen. (zumindest warnung von php kann drohen!)mkdir ('User/'.$user,0755);
dazu dass man hier helfen kann, ist nötig, dass dus weißt, ob du absolute oder relative pfade haben willst (ich rate zu absoluten.) dazu ist es nicht uninteressant, ob der script auf win oder unix/linux rennt.
ja. also wenn du das alles mitteilen willst, kann ich dir was funktionelles schreiben, aber so leider nicht.
woher hast du den kode überhaupt? er ist sehr schlampig! du solltest dir außerdem konsequente einrückungen angewöhnen!! (lesbarkeit) -
Hey,
den Code hat mir mein Freund einmal zusammengestellt, der zwar besser am Programmieren ist als ich aber auch nicht gerade die Erfahrung hat =)
ich wollte dich noch fragen, wie du auch schon gesagt hast ob du mir einen sicheren, sauberen und Fehlerfreien Script schreiben möchtest, es sollte auch wieder ein solches Textfeld sein und dort kann man den Ordnernamen reintippen und auf OK klicken. Dann legt es diesen Ordner auf dem Webspace an und holt sofort (nur die Daten) die im Ordner /Gallery/Galleryplayer herüber in den Ordner der angelegt worden ist, die Ordner die angelegt werden müssen unter /Gallery/User gespeichert werden.
Wenn du dann noch Lust hast mir auch noch das einzubauen, das man alle Ordner auch noch löschen kann die angelegt wurden aber die dürften nicht in solch ein Textfeld löschbar sein sondern in so ein DropDown Menu (glaub ich) also Ordnernamen nach dem ABC aufgeordnet und dann auswählen und man kann in durch auf OK klicken löschen aber hier beim Löschen mit Chaptcha Sicherheitsschlüssel
Vielen Dank würde mich sehr freuen,
Gruß Tobi -
ich wollte dich noch fragen, wie du auch schon gesagt hast ob du mir einen sicheren, sauberen und Fehlerfreien Script schreiben möchtest
also das war dann auch gleich ein missverständnis. ich kann dir nur tipps geben wie es gehen kann (weil ich meine zeit leider fürs geldverdienen einsetzen muss)
Wenn du dann noch Lust hast mir auch noch das einzubauen, ...
das ist eine ellenlange liste (siehe meine zeit oben, würde gleichg viel geld kosten)
aber ich kann dir folgendes raten
dein filter sollte in etwa so aussehen:
in $_POST['user'] ist (leicht zu erraten) der username.$msg = ""; switch ( $user = filter_var ($_POST['user'], FILTER_SANITIZE_STRING) ) { case false: $msg .= "<p>FILTER verursachte fehler!</p>"; break; /** * im falle, wenn du mit filter_input () arbeitest. case null: // input ist leer $msg .= "<p>input war leer.</p>"; break; */ default: // wenn der rückgabewert von filter_* () in ordnung ist. $msg .= "<p>FILTER war in ordnung.</p>"; // und hier kopierst die daten }
zu der filtrierung musst du all das hier lernen (keine alternative! filterung ist wichtig!!):
filter_var()
filter_var_array()
filter_input_array()
filter_input()
filter constants
filters
callback
zum kopieren könntest dier das anpassen:
das erstellt in der foreach schleife eine dateiliste vom ordner $dir.$dir = "./"; $ext = ".php"; $ls = null; $path = false; foreach (glob ($dir."*".$ext) as $file) {$ls[] = ( $path ) ? realpath ($file) . "\n": basename ($file) . "\n";} //echo "<pre>\n".print_r ($ls, true)."</pre>\n";
das kopieren selbst geht dann auf die art:
wo $ls von voriger foreach schleife kommt und $source_dir und $target_dir kann ich dir nicht sagen, weil nur du sie kennst ;o)for ( $i = 0; $i < count ($ls); $i++ ) { if ( !copy ("$source_dir/{$ls[$i]}", "$target_dir/{$ls[$i]}") ) {$msg .= "konnte {$ls[$i]} nicht kopieren!";} }
wie gesagt, das musst du alles anpassen. nicht vergessen über die filtrierung nachzulesen!
Beitrag zuletzt geändert: 29.3.2010 10:02:02 von czibere -
Hey,
sorry habe hiermit jetzt bis zu 99% keine Ahnung, hmm. Was mache ich den jetzt,
aus dem Ordner Gallery/Galleryplayer holt es sich die Daten,
eingefügt werden die Daten immer wenn ein Name im Textfeld eingegeben wurde und auf OK geklickt hat, dann legt es sich im Ordner /Gallery/User/der-Name-der-eingetippt-worden-ist der Ordner an und die Daten von ´Gallery/Galleryplayer werden herüberkopiert, aber nur die Daten die in dem Ordner sind nicht der Ordner Galleryplayer selbst.
Vielleicht kannst du oder jemand anders mir das fertigstellen.
Wäre euch echt sehr dankbar
Gruß Tobi -
@tobitk
... sorry habe hiermit jetzt bis zu 99% keine Ahnung ...
yo mey! 99% ist nach meinem geschmack ein bisschen zu viel ahnungslosigkeit. dagegen nütz unheimlich gut tuts blättern ;o)
ausserdem du hast dich 3 mal mannhaft gewährt mir zu verraten, wo die besagten ordner sein sollten. daher meine 'lösung' ist da zu haben und wenn du die ordner wo anders hin haben willst, sagst dann. (die sind jetzt im selben ordner wie das programm selbst.)
den filter wegen zeitmangel überlasse ich wem andern. angedeutet habe ich ja schon (weiter oben) eine für mich diskutable lösung. sollte aber auf biegen und brechen gemacht werden, sonst bist mit dem kode, wie ein schweizer käse! -
Hey,
Respekt, habe mal einen Ordner Tobi angelegt, also hat es dort jetzt die Daten rüberkopiert in den Ordner Tobi?
Was ich dir noch fragen wollte was der Filter dann genau macht =)
Danke
Gruß Tobi -
... habe mal einen Ordner Tobi angelegt, also hat es dort jetzt die Daten rüberkopiert in den Ordner Tobi? ...
yo mey! wonach sieht es aus? probiers auf deinem space aus.
FILTER: ein filter macht genau das was ein sieb macht: lässt nichts gröberes durch ;o) also in all deinen inputs versuchen schlimme fingern von bösen buben und mädchen dir ein kuckucksein zu legen in form von 'falschen' inputs ('falsch' ist eigentlich keine glückliche wortwahl!). hier ist es nicht möglich das alles zu erklären, weil dann kriege ich vom LC wegen flooding eins auf den deckel ;o) was du tun musst ist nachzulesen! mal vom google gehört ...?
zum bleistift:
php sicherheit
php security
... und was einem noch alles dazu einfällt ... -
stell ich mich gerade an^^
bekomme diese Fehler:
So ist es aufgebaut:
../Gallery/Galleryplayer
../Gallery/User
../Gallery/useranmelde.php
in useranmelde.php habe ich folgendes, habe nichts verändert:
<?php // czibere.lima-city.de/_forum/tobitk/tobi2.php error_reporting(E_ALL); // Abfragen des Usernamen echo "<form method=\"POST\"> Gib deinen Namen ein: <input type=\"text\" name=\"user\" value=\"\" title=\"Namen eingeben\" /> <input type=\"submit\" name=\"create_folder\" value=\"Ordner erstellen\" /> </form>"; // Ist Button "Ordner erstellen" gedrückt if ( isset ($_POST['create_folder']) ) { // Die eingabe ist leider leer. if ( empty ($_POST['user']) or strlen (trim ($_POST['user'])) == 0 ) { echo "Die eingabe ist leider leer."; } else { // Erstelle Ordner mit Benutzernamen $user = $_POST['user']; if ( preg_match ('/\./', $user) || preg_match ('/\//', $user) ) { // Schutzmechanismus - Könnte man noch verbessern echo "Benutzername ungültig!"; } else { // listet den quellordner in $ls[] $ls = null; $source = "./Gallery/Galleryplayer/"; foreach ( glob ("$source*") as $f ) {$ls[] = basename ($f);} #exit ("<pre>".print_r ($ls, true)); // erstellt ordner WENN NÖTIG if ( !is_dir ($target = "./Gallery/User/$user/") ) { mkdir ($target, 0755); echo "Ordner: <strong>$user</strong> wurde erfolgreich erstellt!"; } // kopiert die daten foreach ( $ls as $f ) {copy ("$source/$f", "$target/$f");} } } } echo "<hr />source:<br />"; highlight_file (__FILE__); ?>
Bekomme aber diese Fehler:
Warning: Invalid argument supplied for foreach() in /home/lokalbook/domains/lokalbook.onpw.de/public_html/Gallery/useranmelde.php on line 26
Warning: mkdir() [function.mkdir]: Unable to access ./Gallery/User/test/ in /home/lokalbook/domains/lokalbook.onpw.de/public_html/Gallery/useranmelde.php on line 31
Ordner: test wurde erfolgreich erstellt!
Warning: Invalid argument supplied for foreach() in /home/lokalbook/domains/lokalbook.onpw.de/public_html/Gallery/useranmelde.php on line 35
Gruß Tobi -
So ist es aufgebaut:
yo mey! tobi! um so etwas habe ich dich schon 3 mal gebeten! allerdings ist mir nicht klar, was du mit '../' am anfang meinst. na egal weil ich ja jetzt die absolute adresse habe ('/home/lokalbook/domains/lokalbook.onpw.de/public_html/Gallery/useranmelde.php'; und jetzt grüße deinen provider [strato] schön von mir. er ist der miserabelste in 'de'. gehört ja auch einem amerikaner! bei einer großkunden von mir [eine deutsche zeitung] gibt er an php5 zu bieten, dafür hat er nur php4 [dem kunden ist nichts aufgefallen bisher, jetzt bring ich ihn zu mir].)
../Gallery/Galleryplayer
../Gallery/User
../Gallery/useranmelde.php
in useranmelde.php habe ich folgendes, habe nichts verändert
doch! und wie! filename und filepath!! das sind bestandteile des filesystems. sie zu ändern ist, wie das rad 4-eckig machen, weiterhin 'rad' schimpfen und gleichzeitig erwarten von ihm, das weiterrollt ;o) ich würde ihn dann eher als fenterrahmen misbrauchen *haha* (du hast auch noch was auskommentiert, was ja in ordnung ist - also jede menge verändert!)
und hier hast du es angepasst.
zum thema relative/absolute adressierung schaue das bitte an und präege dir für immer ein: includes, das hier vorkommt. was dein problem damit gemeinsam hat? auch du hast KA von adressierungen ;o)
na dann teste mal das neue und sags was es macht (also ich habe auch bei strato ausprobiert. ist gegangen). -
Hey,
muss ich den Ordner "User" Rechte 777 geben?
(gelöscht)
PS: Ordner erstellt es.
Gruß Tobi
Jetzt geht es bin auf einem anderen Webspace^^ Danke weiter so.
Beitrag zuletzt geändert: 31.3.2010 21:16:21 von tobitk -
muss ich den Ordner "User" Rechte 777 geben?
nein. ich habe es nicht getan und es geht trotzdem. und wo hast du's untergebracht? -
Hey
habe es hier unter gebracht,
81.89.98.128/Gallery/useranmelde.php
hilfst du mir nochmals bei der einen Frage.
Gruß Tobi -
bezieht sich die frage auf das hier?
ah jo!
zu 81.89.98.128/Gallery/useranmelde.php:
This domain was created using SysCP.
There is no content on this domain yet.
Beitrag zuletzt geändert: 2.4.2010 16:26:31 von czibere -
TOBI!
da ist was faul! schaust das bitte genau an!?
Not Found
The requested URL /Gallery/Useranmelde.php was not found on this server.
Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g mod_perl/2.0.3 Perl/v5.8.8 Server at 81.89.98.138 Port 80 -
Hey,
der nächste Fehler =), 81.89.98.138/Gallery/useranmelde.php
muss ich aber noch erweitern zu meiner Hp, wie bzw. was muss ich mit dem Filter machen kannst du mir dort helfen, auch wenn ein Ordner schon angelegt ist das herkommt Ordner existiert bereit.
Gruß Tobi -
tobitk schrieb:
Hey,
der nächste Fehler =), 81.89.98.138/Gallery/useranmelde.php
muss ich aber noch erweitern zu meiner Hp, wie bzw. was muss ich mit dem Filter machen kannst du mir dort helfen, auch wenn ein Ordner schon angelegt ist das herkommt Ordner existiert bereit.
Gruß Tobi
yo mey! tobi!
1. - es dauert ein bisschen, weil ich ja arbeite
2. - kannst du mir bitte die frage ausdeutschen (besonders die zweite hälfte bedarf eine dechifrierung :o)
3. - oben angegebene url geht nicht mehr. ich möchte aber was sehen. -
Hey,
Jo muss icH heute nochmals hochladen wenn ich am
PC Hock bin gerade am Handy Online^^. Das wir auf den grünen Zweig kommen ^^
Also das wenn bereits ein Ordner existiert das dann eine Fehlermeldung kommt Ordner besteht bereits. -
Also das wenn bereits ein Ordner existiert das dann eine Fehlermeldung kommt Ordner besteht bereits.
kein grobes problem. wie sieht der aktuelle kode aus? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage