PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : file_exists - falsche ausgabe



da 1N5AN1TY
29.11.2008, 10:19
Hier mal der code


$install = 'install.php'
$installed = true;
function check() {
if (file_exists($install) and $installed == true) {
die('remove file');
} elseif (!file_exists($install) and $installed == false) {
die('reinstall');
} elseif (file_exists($install) and $installed == false) {
die('install');
} elseif (!file_exists($install) and $installed == true) {
echo 'Everything OK';
} else {
die('error');
}
}
check();


es kommt aber nicht das gewollte ergebnis (obwohl install.php existiert kommt reinstall fehler (ja, die datei ist im richtigen ordner))

überseh ich da irgendwas? oder ist es einfach nur falsch

edit//

wenn ich true und false unter anführungszeichen setze, kommt der error (else) fehler

-=Player=-
29.11.2008, 10:41
<?php

$install = 'install.php';
$installed = true;

if (file_exists($install) and $installed == true) {
print'remove file';

} elseif (!file_exists($install) and $installed == false) {
print'reinstall';

} elseif (file_exists($install) and $installed == false) {
print'install';

} elseif (!file_exists($install) and $installed == true) {
print'Everything OK';

} else {
print'error';

}

da 1N5AN1TY
29.11.2008, 10:55
du hast jetzt aber nur 'die' mit 'print' ersetzt oder? In dem Fall würd ich aber lieber die nehmen, da es ja abbrechen soll. Und auserdem ändert das ja nichts ob ich print oder die nimm, soviel ich halt weiss.

-=Player=-
29.11.2008, 10:59
dann machs halt mir die()
funktioniert trotzdem... teste es doch einfach

<?php
$install = 'install.php';
$installed = false;

if (file_exists($install) and $installed == true) {
die('remove file');

} elseif (!file_exists($install) and $installed == false) {
die('reinstall');

} elseif (file_exists($install) and $installed == false) {
die('install');

} elseif (!file_exists($install) and $installed == true) {
die('Everything OK');

} else {
die('error');

}
?>
Black Magic ;)

da 1N5AN1TY
29.11.2008, 11:03
wieder das selbe .. jezt hab ich aber mal die funktion entfernt, und jetzt funktionierts, auch mit meiner version. Aber warum gings nicht in der Funktion?

-=Player=-
29.11.2008, 11:09
wenn du es in einer funktion machen willst, könntest du den status ein einer variable speichern und die variable musst du dann am ende der funktion mit return ausgeben

da 1N5AN1TY
29.11.2008, 11:18
Ah, jetzt funktionierts :) ps. es geht auch ohne echo ^^

falls es einer mal brauch hier der funktionierende code:



$install = 'install.php';
$installed = false;

function check($install, $installed) {
$stat = '';
if (file_exists($install) and $installed == true) {
$stat = die('<h3>Sie m&uuml; die Datei
\'install.php\' entfernen um fortzufahren.</h3>');
} elseif (!file_exists($install) and $installed == false) {
$stat = die('<h3>\'install.php\' nicht vorhanden,
neuinstallation k&ouml;nnte das Problem l&ouml;sen.</h3>');
} elseif (file_exists($install) and $installed == false) {
$stat = die('<h3>\'install.php\' aufrufen.</h3>');
} elseif (!file_exists($install) and $installed == true) {
} else {
$stat = die('<h3>Unbekannter Fehler,
bitte wenden Sie sich an den Webmaster.</h3>');
}
return $stat;
}
check($install, $installed);