Gut ich mache es jetzt mal sehr ausführlich.
Ich habe als Beispiel Zwei Dateien. Die eine Datei heißt createFolder.php und die andere Datei heißt createUser.php.
In beiden Dateien werden unterschiedliche Aktionen ausgeführt. Wie der Dateiname es bereits schon erklärt.
Beide Dateien werden über einen Ajax Call aufgerufen. Ebenfalls von zwei unterschiedlichen Dateien.
Ich habe also die Datei verzeichnis.php wo über einen Ajax Call createFolder.php ausgeführt. wird. Das gleiche dann bei der Datei admin.php dort wird über einen Ajax Call die Datei createUser.php ausgeführt.
In den Dateien createFolder.php und createUser.php steht soweit immer das gleiche drin. In der createFolder.php wird ein Ordner erstellt auf meinem Linux Server. Bei createUser.php wird dann eben ein Benutzer in der Datenbank erstellt. Die Dateien sehen dann so aus.
(Beide sind wieder wie am Anfang. Ohne änderungen)
createFolder.php
<?php
setlocale(LC_CTYPE, "de_DE.UTF-8");
ini_set('display_errors', '1');
error_reporting(E_ALL);
include('basics.php');
# Verbindung zum PI herstellen #
$connection = ssh2_connect('xxx.xxx.xxx.xx', 22);
ssh2_auth_password($connection, 'xxx', 'xxx');
$sftp = ssh2_sftp($connection);
$selectFehler = $dbv->prepare("SELECT fehlerId, fehlerCode, seite FROM fehler WHERE fehlerCode = 1 AND seite = :seite");
$selectFehler->execute([":seite" => "createFolder.php"]);
$alleFehler = $selectFehler->fetchAll(PDO::FETCH_ASSOC);
// Verbindungsfehler eintragen
if($sftp) {
if($alleFehler) {
$deleteError = $dbv->prepare("DELETE FROM fehler WHERE seite = :seite");
$result = $deleteError->execute(array(":seite" => "createFolder.php"));
}
} else {
if(!($alleFehler)) {
$stmt = $dbv->prepare("INSERT INTO fehler(fehlerCode, fehlerName, beschreibung, seite, datum, uhrzeit) VALUES (:fehlerCode, :fehlerName, :beschreibung, :seite, :datum, :uhrzeit)");
$result = $stmt->execute(
array(
":fehlerCode" => "1",
":fehlerName" => "Verbindungsfehler",
":beschreibung" => "Ordner erstellen - Serververbindung",
":seite" => basename($_SERVER['PHP_SELF']),
":datum" => date('d.m.y'),
":uhrzeit" => date('H:i:s')
)
);
}
}
$nameNeu = "Test Ordner";
$pfad = "Test123";
$createFolder = ssh2_exec($connection, "mkdir " . escapeshellarg("/media/Files/" . htmlspecialchars(ucfirst($userData["nachname"])) . "/" . $pfad . "/" . $nameNeu));
?>
Alles anzeigen
createUser.php
<?php
setlocale(LC_CTYPE, "de_DE.UTF-8");
ini_set('display_errors', '1');
error_reporting(E_ALL);
# Einfügen der Datenbank und Benutzerdaten #
include('basics.php');
# Verbindung zum PI herstellen #
$connection = ssh2_connect('xxx.xxx.xxx.xx', 22);
ssh2_auth_password($connection, 'xxx', 'xxx');
$sftp = ssh2_sftp($connection);
$selectFehler = $dbv->prepare("SELECT fehlerId, fehlerCode, seite FROM fehler WHERE fehlerCode = 1 AND seite = :seite");
$selectFehler->execute([":seite" => "createUser.php"]);
$alleFehler = $selectFehler->fetchAll(PDO::FETCH_ASSOC);
if($sftp) {
if($alleFehler) {
$deleteError = $dbv->prepare("DELETE FROM fehler WHERE seite= :seite");
$result = $deleteError->execute(array(":seite" => "createUser.php"));
}
} else {
if(!($alleFehler)) {
$stmt = $dbv->prepare("INSERT INTO fehler(fehlerCode, fehlerName, beschreibung, seite, datum, uhrzeit) VALUES (:fehlerCode, :fehlerName, :beschreibung, :seite, :datum, :uhrzeit)");
$result = $stmt->execute(
array(
":fehlerCode" => "1",
":fehlerName" => "Verbindungsfehler",
":beschreibung" => "Benutzer erstellen - Serververbindung",
":seite" => basename($_SERVER['PHP_SELF']),
":datum" => date('d.m.y'),
":uhrzeit" => date('H:i:s')
)
);
}
}
$nachname = $_POST['nachname'];
$vorname = $_POST['vorname'];
$rechte = $_POST['rechte'];
$sicherung = $_POST['sicherung'];
$passwort = $_POST['passwort'];
try{
$stmt = $dbv->prepare("INSERT INTO benutzer(nachname, vorname, passwort, rechte, sicherung, verzeichnis) VALUES (:nachname, :vorname, :passwort, :rechte, :sicherung, :verzeichnis)");
$result = $stmt->execute(
array(
":nachname" => $nachname,
":vorname" => $vorname,
":passwort" => $password_gehasht,
":rechte" => $rechte,
":sicherung" => $sicherung,
":verzeichnis" => $nachname
)
);
} catch(EXCEPTION $w){
echo "Ein Fehler ist aufgetreten: " . $w->getMessage();
exit();
}
?>
Alles anzeigen
In Beiden Dateien werden weitere Funktionen ausgeführt wenn ich diese aufrufe.
also wenn ich in den Browser auf die Seite createFolder.php gehe, wird zwar der Verbindungstest durchgeführt. Aber ebenfalls auch die $createFolder Variable. Das gleiche ebenfalls bei createUser.php
Und wie man sieht habe ich in beiden Dateien die Variable $alleFehler wo bei dem execute - Teil immer die Seite angegeben wird, in der sich diese Variable auch befindet.
Und ich wollte gerne das ich für diese Seiten jeweils Nur die Verbindung Testen kann, ohne die anderen Funktionen ebenfalls auszuführen.
Klar kann ich diese Abfrage in eine andere Datei schreiben, aber dann ist es das Problem mit der $alleFehler Variable.
Ich hoffe ich konnte es soweit veranschaulichen und verdeutlichen.