• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

problem mit file_exists() !!

hello

Schöner von Nordhausen
Registriert
02.07.06
Beiträge
327
hallo zusammen

ich arbeite seit einer woche an einem kleinen projekt, lokal auf meinem macbook pro auf dem ich den apachen server mit php und mysql habe. hier funktioniert alles einwandfrei und ohne problem. doch wen ich das ganze auf meinen host lade funktioniert nichts mehr.

hier mal der code der index.php datei:
Code:
<?php

include 'variables.php';

$body[1]='includes/body/standart.inc';

// das array $body ist eigentlich in der datei variables.php

include 'includes/functions.php';
include 'header.html';

echo '<body>';

include 'includes/navigation.inc';

if (isset($_GET['body'])) {
    
    if (file_exists($body[$_GET['body']])) {
        include $body[$_GET['body']];
    } else {
        include 'includes/body/error.inc';
    }
} else {
    include 'includes/body/standart.inc';
}

echo '</body>';
echo '</html>';


?>
jetzt das problem:

bei der prüfung "file_exists($body[$_GET['body']])" geht die abfrage in den else bereich obwohl die datei vorhanden ist. könnt ihr mir sagen an was das liegt? ich kann es mir vorallem nicht erklähren weil es lokal auf dem computer funktioniert...

danke schon im voraus

manuel
 

s23

Seidenapfel
Registriert
23.11.08
Beiträge
1.333
Hat die Datei u.U. fehlerhafte Rechte auf dem Webserver? Sind die Benutzer des Servers und der Datei die gleichen oder hängen sie zumindest in der gleichen Gruppe auf dem Webserver?
 

hello

Schöner von Nordhausen
Registriert
02.07.06
Beiträge
327
also die rechte sollten eigentlich stimmen, da der zugriff auf die datei eigentlich funktioniert, also wen ich die datei so "include 'includes/body/standart.inc';" einbnde funktioniert es auch.
und auf das zweite überfragst du mich, ich bin nicht so server erfahren, das mache in der regel nicht ich, ich habe einfach mein host auf den ich mit meinen benutzer daten zugreife und meine dateien drauf lade.
(bin auch in php und mysql ein neuling, habe bis vor drei wochen alles in reinem xhtml gemacht)
 

apfelq

Braeburn
Registriert
10.10.08
Beiträge
42
dein code ist korrekt, es kann nur daran liegen dass die variable in den include dateien überschrieben wird oder noch wahrscheinlicher dass der pfad nicht stimmt.

bei der get variable sollte natürlich 1 stehen. ca so *.php?body=1
 

hello

Schöner von Nordhausen
Registriert
02.07.06
Beiträge
327
die pfade stimmen alle, sonst würde das ganze auf meinem localen apachen sever nicht funktionieren, oder sehe ich das falsch?

hier das komplette array:
Code:
$body[1]='includes/body/standart.inc';
$body[2]='includes/body/standart.inc';
$body[3]='includes/body/standart.inc';
$body[4]='includes/body/standart.inc';
$body[5]='includes/body/standart.inc';
$body[6]='includes/body/gallery.inc';

und sonst werden die daten niergens überschrieben, habe nochmal alles durchkontrolliert
 

Hairy

Sonnenwirtsapfel
Registriert
07.08.07
Beiträge
2.397
Ist vielleicht der PHP-Safe-Mode aktiviert? Dann kann man fast gar nichts mit Dateien machen. Ob file_exists davon betroffen ist, weiß ich zwar nicht genau, aber ich denke schon.
 

hello

Schöner von Nordhausen
Registriert
02.07.06
Beiträge
327
wen das so ist, wo kan ich das sehen? bzw wie kann ich das deaktivieren?
 

Hairy

Sonnenwirtsapfel
Registriert
07.08.07
Beiträge
2.397
phpinfo()
Deaktivieren kannst du es nur, wenn dein Provider das zulässt - dann entweder per Administrationsinterface (Confixx...) oder per php.ini.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Was ist denn der Inhalt von $_GET['body']?

Übrigens: Spricht etwas gegen die Nutzung eines PHP-RAD-Frameworks? Da hat man diese ganzen Probleme nicht.
 

hello

Schöner von Nordhausen
Registriert
02.07.06
Beiträge
327
also wen ich das richtige in phpinfo() ausgelesen habe ist der php-safe-mode aktiviert, im anhang mit einem bild (zum sicher gehen, dass ich das richtige genommen habe).

de inhalt von $_GET['body'] ist eine zahl, bei meinen versuchen bis jetzt immer 1.

PHP-RAD-Frameworks? kann mir jemand erklähren was das ist? bzw wie das funktioniert?

danke schonmal für die hilfe bis jetzt!!
 

Anhänge

  • Bild 3.png
    Bild 3.png
    16,3 KB · Aufrufe: 78

s23

Seidenapfel
Registriert
23.11.08
Beiträge
1.333
Frag mal deinen Anbieter, welche PHP-Version er einsetzt. Und zwar aus folgendem Grunde:

In PHP 5.1.4 and 5.2CVS file_exists() function returns true, when file
exists, but is inaccessible due to safe mode restrictions. Other php
versions work as documented.

Siehe.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
PHP-RAD-Frameworks? kann mir jemand erklähren was das ist? bzw wie das funktioniert?
RAD steht für Rapid-Application-Development. Das sind Frameworks, die die ganzen Basis-Funktionen, die man so braucht, bereitstellen, damit man sich nicht zum hundertsten Mal das Rad neu erfinden muss.

Populäre RADs sind CakePHP, symfony (sehr komplex) und CodeIgniter.
 

myflasher

Rheinischer Krummstiel
Registriert
19.06.07
Beiträge
378
Frag doch mal bei deinem Provider ob sie den PHP Safe_Mode auf OFF schalten. Die ON Einstellung verursacht nämlich nichts als Probleme.