php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.11.2005, 10:44  
Gast
 
Beiträge: n/a
Standard Läuft Skript auf PHP/4.0.6 und generelle fragen

Hallo,

ich habe ein Skript erstellt, das mir Dateien hochläd und automatisch an
der richtigen stelle auf der html-seite einen link einfügt. Zum testen habe
ich php 4.4.0, laufen sol es letztendlich auf Apache/1.3.20 (Linux/SuSE)
PHP/4.0.6 ... daher ein paar fragen:

1. muss ich etwas verändern, damit es auf dem alten php läuft?
(ich habe was von $HTTP_POST_FILES anstatt $_FILES gelesen, reicht da
einfaches suchen&ersetzen oder muss ich noch mehr beachten?)

2.generelle verbesserungsvorschläge?

3. derzeit muss ich dem verzeichnis und der datei in die das programm
schreibt die chmodfreigabe 777 geben. gibts dafür auch ne andere
variante? wenn ich diese rechtevergabe richtig verstanden habe, kann
jetzt jeder die zieldatei verändern und in das verzeichnis schreiben...


PHP-Code:
<?php
if($_POST["pw"]=="passwort"){

$uploaddir '../upload/';

//alte Datei einlesen
$dateialt=file("material.htm");
print (
"arrayl�nge am anfang: " .sizeof($dateialt));

//Suchstring aus Fachauswahl erstellen.
$suchwort="";


//Suchwort in der alten Datei suchen und Zeile merken
while((substr_count($dateialt[$i],$suchwort)<1)&&($i<205)){
    
$i++;
    }


//alle Zeilen ab Einf�gestelle eins weiterr�cken
for($j=sizeof($dateialt); $j>=$i$j--){
$dateialt[$j]=$dateialt[$j-1];
}

//�nderungsdatum ermitteln
$datum getdate();

//neue Zeile einf�gen
$dateialt[$i]="[*]<a href=\"" .$_FILES['userfile']['name'] ."\">" .$_POST["titel"
.
"</a> <span class=\"kleingedruckt\"> (aktualisiert am " .$datum[mday] ."." .$datum[mon] ."." .$datum[year] .")</span>";


//neue Datei schreiben
$dateineu=fopen("material.htm","w");
$g=sizeof($dateialt)-1;
for (
$k 0$k <= $g$k++) {
    
fputs($dateineu$dateialt[$k]);
}
fclose($dateineu);


//Datei hochladen und Erfolg oder Miserfolg melden

print "<pre>";
if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir $_FILES['userfile']['name'])) {
   print 
"File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
   
print_r($_FILES);
} else {
   print 
"Possible file upload attack!  Here's some debugging info:\n";
   
print_r($_FILES);
}
print 
"</pre>";
} else {
print 
"Falsches Passwort";
?>

Vielen Dank im Voraus
Bernhard
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.11.2005, 21:50  
JK
Benutzer
 
Registriert seit: 11.10.2005
Beiträge: 81
JK
Standard

Zu 1.
Da habe ich leider keine Ahnung von.

Zu 2.
PHP-Code:
<?php
if($_POST["pw"]="passwort"){
?>
Bringt so erstmal gar nichts, da du eine Zuweisung (=) und keinen Vergleich machst (==).
Ausserdem wäre es besser das Passwort nicht in der Datei zu speichern, sondern nur
zwei "Fingerabdrücke" zu vergleichen.
durch
PHP-Code:
<?php
if(md5($_POST["pw"]) == "e22a63fb76874c99488435f26b117e37"){ // Der lange String ist der md5-hash von "passwort"
?>
Das Änderungsdatum kannst du einfacher mit http://de3.php.net/manual/en/function.strftime.php ermitteln:
PHP-Code:
<?php
$datum 
strftime("%d.%m.%Y"); // String in der Form TT.MM.YYYY
?>
Zu 3.
Ich kenn mich da auch nicht gut aus, aber ich meine die 2. 7 bedeutet, dass die Gruppe, der die Datei
gehört alles damit machen darf. Eventuell kannst du die Gruppe der Datei/des Verzeichnisses auf die
Gruppe in der PHP ausgeführt wird ändern und dann chmod auf 770 ändern. Aber wie gesagt, da habe
ich echt kaum Ahnung.
__________________
Water Wars - Jetzt anmelden: http://waterwars.de
JK ist offline  
Alt 19.11.2005, 23:56  
Gast
 
Beiträge: n/a
Standard

Danke für die Antwort.

den Tippfehler mit dem == habe ich korrigiert.
Das mit dem md5-hashes kann jedenfalls nicht schaden, drum werd ichs auch umsetzen, aber bringts was? ich meine, wenn jemand den phpcode auf dem server lesen kann, dann wird er dort auch so genügend anstellen und nach seinen wünschen ändern können, oder irre ich mich da? kommt man an die quelltexte aus php-dateien ohne zugrif auf den server? die werden doch alle geparst?

so was wie strftime habe ich gesucht, danke für den Tipp! getdate() kam mir schon so umständlich vor :wink:
wegen den gruppen: ich hab im endeffekt nur mein ftp-programm zum rumstellen der freigaben, dort konnte ich mir noch nicht mal die gruppen anzeigen lassen, geschweige denn ändern (zumindest habe ich nichts gefunden)

schönes Wochenende
Bernhard
 
Alt 20.11.2005, 09:06  
JK
Benutzer
 
Registriert seit: 11.10.2005
Beiträge: 81
JK
Standard

Zitat:
Zitat von derda
wenn jemand den phpcode auf dem server lesen kann, dann wird er dort auch so genügend anstellen und nach seinen wünschen ändern können, oder irre ich mich da? kommt man an die quelltexte aus php-dateien ohne zugrif auf den server? die werden doch alle geparst?
In der Regel kommt man nich an den Sourcecode, ich habe aber z.B. schon
einmal gesehen, dass der PHP-Interpreter ausgefallen ist und von der Seiten
der Sourcecode ungeparst ausgegeben wurde. Auch ist es einfach ein
besserer Stil Passwörter nicht im Klartext zu speichern.

Gruß Jan
__________________
Water Wars - Jetzt anmelden: http://waterwars.de
JK ist offline  
Alt 20.11.2005, 11:53  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard Re: Läuft Skript auf PHP/4.0.6 und generelle fragen

Zitat:
Zitat von derda
1. muss ich etwas verändern, damit es auf dem alten php läuft?
(ich habe was von $HTTP_POST_FILES anstatt $_FILES gelesen, reicht da
einfaches suchen&ersetzen oder muss ich noch mehr beachten?)
Zunächst einmal kannst du diese Ersetzung so vornehmen bzw. musst dies auch tun. Allerdings musst du dabei beachten, dass die $HTTP_*-Variablen im Gegensatz zu den superglobalen Arrays nicht global gültig sind und somit als Parameter an Funktionen übergeben werden müssen, damit sie dort gültig sind.
xabbuh ist offline  
Alt 20.11.2005, 13:05  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von JK
Auch ist es einfach ein
besserer Stil Passwörter nicht im Klartext zu speichern.
Gruß Jan
Ok, dann werd ichs mir gleich von anfang an richtig angewöhnen.

Zitat:
Zitat von xabbuh
Zunächst einmal kannst du diese Ersetzung so vornehmen bzw. musst dies auch tun. Allerdings musst du dabei beachten, dass die $HTTP_*-Variablen im Gegensatz zu den superglobalen Arrays nicht global gültig sind und somit als Parameter an Funktionen übergeben werden müssen, damit sie dort gültig sind.
sehr schön, dann muss ich ja kaum was abändern, aber falls ich später noch was komplexeres mache, ist das mit den funktionen gut zu wissen.

Grüße
Bernhard
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
generelle Fragen zu MySql bezüglich der Tabellen woods Datenbanken 7 16.10.2006 13:38
ein Skript startet ein zweites... ajo_silent PHP-Fortgeschrittene 8 03.05.2006 13:42
Skript &amp;amp;amp;quot;tarnen&amp;amp;amp;quot;? Off-Topic Diskussionen 17 07.08.2005 19:42
Generelle PHP Fragen Madden PHP-Fortgeschrittene 3 11.04.2005 01:24
SKRIPT GESUCHT - Werbung auf einer site anzeigen Beitragsarchiv 4 29.08.2004 14:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
$_files änderungsdatum

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.