php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-05-2008, 16:57
susi1600
 Registrierter Benutzer
Links : Onlinestatus : susi1600 ist offline
Registriert seit: Nov 2006
Beiträge: 65
susi1600 ist zur Zeit noch ein unbeschriebenes Blatt
Standard lokal klappts, auf dem server nicht mehr!

Habe ein Script, über das Daten in eine Datenbank eingetragen werden. Zusätzlich hat man die möglichkeit, mehrere Bilder hochzuladen. Diese Bilder sollten dann in einem Zug als große Bilder in einem neu erstellten Ordner gespeichert werden und als Vorschaubilder im Ordner "thumbs", der dann im neu erstellten Ordner erstellt wird.

Das alles hat auf meinem Lokalen Rechner mit Serverumgebung super geklappt, nun lad ich das script hoch und nix geht mit Verzeichnissen erstellen.

Die Verzeichnisse werden nicht erstellt, er bleibt aber nicht bei dem else hängen, dass die Verzeichnisse nicht erstellt werden konnten, sondern überspringt dies einfach, bis er zum Bilderupload selbst kommt.

Hier man der Anfang - wie ich sagen würde wichtige Teil - des Scripts.
PHP-Code:
error_reporting(E_ALL);
include(
'top.html');

$event $_POST['event'];
$datum $_POST['datum'];
$kommentar $_POST['kommentar'];
$bildname $_POST['bildname'];
$anzahl $_POST['upload_felder'];

if (isset(
$_POST['speichern'])) {
    include(
'zugangsdaten.php');
        
    
// Bilder Upload
    
$uploadverzeichnis"/bilder/events/$bildname";
    
$thumbverzeichnis="/bilder/events/$bildname/thumbs";

    
// Verzeichnisse erstellen
    
if (!is_dir($uploadverzeichnis))
    {
mkdir ($uploadverzeichnis,0777);} 
    else echo 
'Uploadverzeichnis '.$uploadverzeichnis.' konnte nicht erstellt werden.<br>';
    if (!
is_dir($thumbverzeichnis))
    {
mkdir ($thumbverzeichnis,0777);} 
    else echo 
'Thumbverzeichnis '.$thumbverzeichnis.' konnte nicht erstellt werden.<br>';
    
    if (isset(
$_POST['bilderupload']) && !empty($_FILES["bilder"]["name"])) {
                 
        
//* Grosse Bilder mit neuem Namen nummeriert (1-6) abspeichern
        
foreach($_FILES as $bild) {
            
$max_bilder $anzahl;
            for(
$i=0$i<$max_bilder$i++) {
            if(
$bild['name'][$i]) {
            
$name$bildname."_".$i.".jpg";
            
move_uploaded_file($bild['tmp_name'][$i], "{$uploadverzeichnis}/{$name}")
            OR die (
"Bilder konnten nicht gespeichert werden");
            
chmod("/absoluter pfad/$bildname/$name",0777);
            
            
$quellbild$uploadverzeichnis.'/'.$name;
            
$groesse_bildgetimagesize($quellbild);            
            
$breite_bild$groesse_bild[0];                        
            
$hoehe_bild$groesse_bild[1];                    
            
            
            
$thumb_hoehe100;                            
            
$thumb_breiteceil($breite_bild*$thumb_hoehe/$hoehe_bild);
            
            
$quelleimagecreatefromjpeg($quellbild);
            
$thumbimagecreatetruecolor($thumb_breite$thumb_hoehe);
            
imagecopyresampled($thumb$quelle0000$thumb_breite$thumb_hoehe$breite_bild$hoehe_bild);
            
imagejpeg($thumb"{$thumbverzeichnis}/{$name}"
            OR die (
"Thumbs konnten nicht erstellt werden");
            
chmod("/absoluter pfad/$bildname/thumbs/$name",0777);
            }
            }
        }
    }
    
mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
    
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
    
    
mysql_query("INSERT INTO datenbank...") OR die(mysql_error()); 
        
    echo 
'<b>Das Event '.$event.' wurde gespeichert.</b><br><br>';
    include(
'event-menu.html');
    exit();

Stimmt da was im Script nicht, oder hat das was mit dem Server zu tun?
Mit Zitat antworten
  #2 (permalink)  
Alt 21-05-2008, 17:04
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
PHP-Code:
if (!is_dir($uploadverzeichnis))
    {
mkdir ($uploadverzeichnis,0777);} 
    else echo 
'Uploadverzeichnis '.$uploadverzeichnis.' konnte nicht erstellt werden.<br>'
Und lokal hast du die Fehlermeldung erhalten? Kann ich mir nicht so richtig vorstellen. Verzeichnis exstiert nicht und wird damit neu angelegt (mkdir()). Nur fängst du die Rückgabe von mkdir() nicht ab. Du bräuchtest ein weiteres if/else-Konstrukt um die Rückgabe von mkdir() festzustellen und im Fehlerfalle die Meldung auszugeben.
imho wirst du oben die Fehlermeldung nur dann erhalten wenn das Verzeichnis existiert, also das if nicht erfüllt wird.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 21-05-2008, 17:06
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

PHP-Code:
// Verzeichnisse erstellen
    
if (!is_dir($uploadverzeichnis))
    {
mkdir ($uploadverzeichnis,0777);} 
    else echo 
'Uploadverzeichnis '.$uploadverzeichnis.' konnte nicht erstellt werden.<br>'
Da steckt ein logischer Fehler drin.
Wenn der if-Zweig ausgeführt wird, erstellst du das Verzeichnis. Der else-Zweig wird dann nicht ausgeführt. Alles okay.
Aber wenn das Verzeichnis existiert, wird der else-Zweig ausgeführt und gibt eine Fehlermeldung aus. Eine Fehlermeldung, obwohl das Verzechnis existiert!?

Was du eigentlich willst ist sowas:
PHP-Code:
if (!is_dir() && !mkdir()) 
    die(
'Verzeichnisfehler'); 
Mit Zitat antworten
  #4 (permalink)  
Alt 21-05-2008, 17:07
susi1600
 Registrierter Benutzer
Links : Onlinestatus : susi1600 ist offline
Registriert seit: Nov 2006
Beiträge: 65
susi1600 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

lokal habe ich keine fehlermeldung erhalten, lokal wurden die verzeichnisse erstellt und das script fehlerfrei ausgeführt.

woran kanns denn liegen, dass auf nem server verzeichnisse nicht erstellt werden?
Mit Zitat antworten
  #5 (permalink)  
Alt 21-05-2008, 17:12
case
 Registrierter Benutzer
Links : Onlinestatus : case ist offline
Registriert seit: Mar 2007
Beiträge: 265
case ist zur Zeit noch ein unbeschriebenes Blatt
case eine Nachricht über ICQ schicken
Standard

ich würde mal vermuten, dass der apache nicht die benötigten Rechte hat... mach mal ein CHMOD 777 auf /bilder/events/
__________________
signed oder unsigned... das ist hier die Frage
Mit Zitat antworten
  #6 (permalink)  
Alt 21-05-2008, 17:18
susi1600
 Registrierter Benutzer
Links : Onlinestatus : susi1600 ist offline
Registriert seit: Nov 2006
Beiträge: 65
susi1600 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

leider hilft chmod 777 auch nix, verzeichnisse werden nicht erstellt :-(
Mit Zitat antworten
  #7 (permalink)  
Alt 21-05-2008, 17:20
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

setzt vor mkdir mal ein
PHP-Code:
$mask umask(0); 
wirkt manchmal wahre wunder

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #8 (permalink)  
Alt 21-05-2008, 17:22
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Gibt es wirklich ein Verzeichnis /bilder auf deinem Webserver, also direkt neben /etc, /usr und /bin? Willst du die Bilder nicht lieber unterhalb des DocRoot speichern?
Mit Zitat antworten
  #9 (permalink)  
Alt 21-05-2008, 17:24
susi1600
 Registrierter Benutzer
Links : Onlinestatus : susi1600 ist offline
Registriert seit: Nov 2006
Beiträge: 65
susi1600 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Gibts doch nicht, auch $mask = umask(0); verändert nichts! *verzweiflung*
Mit Zitat antworten
  #10 (permalink)  
Alt 21-05-2008, 17:27
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@TS
Kennst du $_SERVER['DOCUMENT_ROOT']? Kann ebenfalls wahre Wunder bewirken. Pfade die mit / beginnen bezeichnen Pfade vom Root-Verzeichnis aus. Und zwar nicht dein DOC_ROOT sondern das Root des Dateisystems des Servers. Und wenn du bei einem Hoster dort reinschreiben könntest dann wäre das nicht gut!
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #11 (permalink)  
Alt 21-05-2008, 17:39
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
            move_uploaded_file($bild['tmp_name'][$i], "{$uploadverzeichnis}/{$name}")
            OR die (
"Bilder konnten nicht gespeichert werden");
            
chmod("/absoluter pfad/$bildname/$name",0777); 
Wieso stellst du beide male chmod an das ende? der Ordner soll doch schon voher nutzbar sein :S

EDIT // pack beide urls, die du in diesem ausschnitt verwendest, so auch noch einmal in eine variable und gebe dir diese mit print aus, schau dann ob diese gleich sind.
__________________
Webdesign und Webentwicklung - Plunix.de
Mit Zitat antworten
  #12 (permalink)  
Alt 21-05-2008, 17:42
susi1600
 Registrierter Benutzer
Links : Onlinestatus : susi1600 ist offline
Registriert seit: Nov 2006
Beiträge: 65
susi1600 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also verzeichnisstruktur wie folgt:

Code:
-bin
-cgi-bin
-conf
-httpdocs
  -> admin
  -> bilder
   ..
   ..
   ..
Derzeit sieht das script so aus:
PHP-Code:
    // Bilder Upload
    
$uploadverzeichnis"/httpdocs/bilder/events/$bildname";
    
$thumbverzeichnis="/httpdocs/bilder/events/$bildname/thumbs";

    
// Verzeichnisse erstellen
    
if (!is_dir($uploadverzeichnis)){
    
$mask umask(0);
    
mkdir ($uploadverzeichnis,0777);
    } 
    if (!
is_dir($uploadverzeichnis) && !mkdir($uploadverzeichnis))
 die (
'Uploadverzeichnis '.$uploadverzeichnis.' konnte nicht erstellt werden.<br>'); 
das script befindet sich in admin/ und die bilder erklären sich dann von selbst.
gebe ich als uploadverzeichnis "../bilder/events/$bildname" an, arbeitet er das script durch und hat angeblich alles erstellt/gespeichert.
gebe ich /httpdocs/bilder/events.... an, so gibt er den verzeichnisfehler wenigstens aus.
Mit Zitat antworten
  #13 (permalink)  
Alt 21-05-2008, 17:43
susi1600
 Registrierter Benutzer
Links : Onlinestatus : susi1600 ist offline
Registriert seit: Nov 2006
Beiträge: 65
susi1600 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@lenni: ich setze damit nicht das verzeichnis auf 777 sondern das bild, damit ich es später evtl noch ändern kann...
Mit Zitat antworten
  #14 (permalink)  
Alt 21-05-2008, 17:46
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
gebe ich /httpdocs/bilder/events.... an, so gibt er den verzeichnisfehler wenigstens aus.
Wie bereits gesagt wirst du in einer Hosting Umgebung KEINERLEI Rechte haben ins Root zu schreiben. Was gehen KÖNNTE (weiss aber nicht ob's wirklich geht) wäre es dem Pfad ~ voranzustellen. Damit wäre dann dein Homeverzeichnis gemeint. Imho wird das aber das gleiche sein wie das Voranstellen von $_SERVER['DOCUMENT_ROOT']
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #15 (permalink)  
Alt 21-05-2008, 17:48
susi1600
 Registrierter Benutzer
Links : Onlinestatus : susi1600 ist offline
Registriert seit: Nov 2006
Beiträge: 65
susi1600 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@jahlives: mit doc root hats geklappt, danke vielmals :-)

Geändert von susi1600 (21-05-2008 um 20:35 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:40 Uhr.