PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Problem: Php fragt über php2 Datenbank ab (http://www.selfphp.de/forum/showthread.php?t=25735)

Domenic 16.12.2015 13:10:56

Problem: Php fragt über php2 Datenbank ab
 
Hallo liebe Forum-Gemeinde,

ich beschäftige mich Hobbymässig mit Hmtl und PHP, habe nur relative PHP kentnisse.

Ich habe Folgendes Problem:
Ich muss von meiner Registrieren.html auf eine abfrage.php zugreifen (soweit kein Problem, ich bekomm die Variablen erfolgreich auf die PHP übergeben.
Jetzt müsste die abfrage.php auf die eintragen.php zugreifen.
Die eintragen.php greift erfolgreich auf die Datenbank zu.


Frage:
Wie bekomm ich es hin das abfrage.php sich die Daten ,die sich eintragen.php von der Datenbank holt und einträgt, holt? Dies muss alles geschehen, ohne das im Browser die eintragen.php geöffnet wird.


!!Registrieren.html und abfrage.html sind auf Server1, die eintragen.php und Datenbank sind auf Server2. (eintragen.php ist auf einem extra Server, weil ich den Server Interne-Kommunikationsrechte gegeben habe und eintragen.php in einem Ordner liegt, auf den man von aussen zugreifen kann. (WIESO? - Damit niemand die möglichkeit hat direkt auf die Datenbank zuzugreifen) )!!




Ich hoffe ich habe mein Problem verständlich genug erläutert und hoffe auf rasche Hilfe =)

Gruß,
Domenic

Domenic 16.12.2015 17:29:06

Problem: Php fragt über php2 Datenbank ab
 
Hallo liebe Forum-Gemeinde,

ich beschäftige mich Hobbymässig mit Hmtl und PHP, habe nur relative PHP kentnisse.

Ich habe Folgendes Problem:
Ich muss von meiner Registrieren.html auf eine abfrage.php zugreifen (soweit kein Problem, ich bekomm die Variablen erfolgreich auf die PHP übergeben.
Jetzt müsste die abfrage.php auf die eintragen.php zugreifen.
Die eintragen.php greift erfolgreich auf die Datenbank zu.


Frage:
Wie bekomm ich es hin das abfrage.php sich die Daten ,die sich eintragen.php von der Datenbank holt und einträgt, holt? Dies muss alles geschehen, ohne das im Browser die eintragen.php geöffnet wird.

Registrieren.html und abfrage.html sind auf Server1, die eintragen.php und Datenbank sind auf Server2. (eintragen.php ist auf einem extra Server, weil ich den Server Interne-Kommunikationsrechte gegeben habe und eintragen.php in einem Ordner liegt, auf den man von aussen zugreifen kann. (WIESO? - Damit niemand die möglichkeit hat direkt auf die Datenbank zuzugreifen) )!

Ich hoffe ich habe mein Problem verständlich genug erläutert und hoffe auf rasche Hilfe =)

Gruß,
Domenic

sysop 17.12.2015 12:27:07

AW: Problem: Php fragt über php2 Datenbank ab
 
Verständnisproblem meinerseits...
Du willst Registrierungsdaten durch mehrere Scripte leiten und erhalten. Das macht man aber eigentlich aus Sicherheitsgründen nicht.

Der Normale Vorgang ist der, dass man Userdaten abfragt, Schritt 1 ist also eine Daten-Abfrage. Erst wenn keine passenden Daten da sind, teilt man das Problem im 2 weitere Schritte auf
  1. Fehler bei der Eingabe" oder
  2. Neuregistrierung.

Nach der Neuregistrierung wird einfach wieder auf Schritt 1 (Abfrage) weiter geleitet. Mit den korrekten Daten erfolgt dann das Login.

Zur Frage dirket:
Daten lassen sich über mehrere Scripts komportabel mit Sessions durchreichen. Du fügst deinen Scripten am Anfang einfach folgenden Code hinzu

PHP-Code:

session_start(); 

Dann kannst du Sessions verwenden und die Variablen in anderen Scripten auslesen und/oder ändern.

Bsp;
Script A
PHP-Code:

session_start();
if(isset(
$_SESSION['durchgereicht']))
{
  echo 
$_SESSION['durchgereicht'];
}
$_SESSION['druchgereicht'] = 'Dieser Inhalt stammt aus Script A'

Script B
PHP-Code:

session_start();
if(isset(
$_SESSION['durchgereicht']))
{
  echo 
$_SESSION['durchgereicht'];
}
$_SESSION['druchgereicht'] = 'Dieser Inhalt stammt aus Script B'

Script C
PHP-Code:

session_start();
if(isset(
$_SESSION['durchgereicht']))
{
  echo 
$_SESSION['durchgereicht'];
}
$_SESSION['druchgereicht'] = 'Dieser Inhalt stammt aus Script c'

Verweist Script C nun wieder auf Script A steht der Inhalt von Script C in der Variablen.


Eine vereinfachte Lösung eines Logins könnte sowas sein:
PHP-Code:

<?php
session_start
();

if(isset(
$_SESSION['erfolg']) AND ($_SESSION['erfolg'] == 1))
{
    
header("Location: script_b.php");
    
// oder require_once("script_b.php");
}

elseif(isset(
$_POST['user']) AND ($_POST['user'] == 'abc'))
{
    
$_SESSION['erfolg'] = 1;
    
header("Location: script_b.php");
    
// oder require_once("script_b.php");
}

elseif(isset(
$_POST['eintragen']) AND ($_POST['eintragen'] == 1))
{
    echo 
'trage '.$_POST['user'].' in Datenbank ein';
//    Hier Code zum Daten eintragen


// Dann Daten verifizieren
    
echo '<form method="POST" action="'.$_SERVER['SCRIPT_NAME'].'">
            <input type="text" name="user" value="">
            <input type="submit" name="suchen" value="Suchen">
          </form>'
;
}

else
{

    echo 
'<form method="POST" action="'.$_SERVER['SCRIPT_NAME'].'">
            <input type="text" name="user" value="">
            <input type="checkbox" name="eintragen" value="1">Eintragen
            <input type="submit" name="suchen" value="Suchen">
          </form>'
;
}

gibst du nicht abc ins Textfeld ein, kommt immer wieder das Formular. Gibst du aber abc ein, wird auf die Datei script_b.php umgeleitet. Solange wie php deine Session aufhebt (das wird in der php.ini festgelegt), wird das Formular nicht wieder abgefragt, auch wenn du die Dateio script_a.php wieder aufrufst.

Domenic 17.12.2015 14:15:08

AW: Problem: Php fragt über php2 Datenbank ab
 
Also wenn ich es richtig gelesen habe, will er später auf die PHP auf dem Server im Browser öffnen, dass soll aber vermieden werden.

Ich habe es derzeit folgendermassen:

Server1/abfragen.HTML
HTML-Code:

<html>

<form action="http://www.domain.de/abfrage.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="login_name">
<br>

Deine E-Mail:<br>
<input type="text" size="24" maxlength="50"
name="email">
<br>

Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="password">
<br>

Passwort wiederholen:<br>
<input type="password" size="24" maxlength="50"
name="passwort2">
<br>

<input type="submit" value="Abschicken">
</form>

</html>


Server1/abfragen.PHP
PHP-Code:

<?php


$username 
$_POST["login_name"];
$passwort $_POST["password"];
$email $_POST["email"];
$passwort2 $_POST["passwort2"];

$domain "http://domain.de";

$antwort "bekomme von Server2/eintragen.php $antwort";


if(
$passwort != $passwort2 OR $username == "" OR $passwort == "" OR $email == "")
{
echo 
"Eingabefehler. Bitte alle Felder korrekt ausfüllen. <a href=" $domain/eintragen.html">Zurück</a>";
exit;
}
else
{
gebe an Server2/eintragen.php $username$passwort$email
}

$passwort md5($passwort);


if(
$antwort == erfolgreich)
{
echo 
"Benutzername <b>$username</b> wurde erstellt. <a href=" $domain/login.html">Login</a>";
}
else if(
$antwort == fehlgeschlagen)
{
echo 
"Fehler beim Speichern des Benutzernames. <a href=" $domain/eintragen.html">Zurück</a>";
}
else if(
$antwort == vorhanden)
{
echo 
"Benutzername oder E-Mail schon vorhanden. <a href=" $domain/eintragen.html">Zurück</a>";
}


?>

Server2/eintragen.PHP
PHP-Code:

<?php
$verbindung 
mysql_connect("localhost""benutzername" "passwort" )
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("datenbank") or die ("Datenbank konnte nicht ausgewählt werden");

bekomme von Server1/abfrage.php $username $_POST["login_name"];
bekomme von Server1/abfrage.php $passwort $_POST["password"];
bekomme von Server1/abfrage.php $email $_POST["email"];



$passwort md5($passwort);
$antwort " ";

$result mysql_query("SELECT account_id FROM login WHERE login_name LIKE '$username' OR email LIKE '$email'");
$menge mysql_num_rows($result);


if(
$menge == 0)
{
$eintrag "INSERT INTO login (login_name, password, email) VALUES ('$username', '$passwort', '$email')";
$eintragen mysql_query($eintrag);

if(
$eintragen == true)
{
gebe an Server1/abfrage.php $antwort "erfolgreich";
}
else
{
gebe an Server1/abfrage.php $antwort "fehlgeschlagen";
}
}
else
{
gebe an Server1/abfrage.php $antwort "vorhanden";
}
?>


sysop 17.12.2015 15:06:19

AW: Problem: Php fragt über php2 Datenbank ab
 
Ok also 2 Server.

allow_url_fopen wäre da ein Ansatz.

Das muss aber gut überlegt sein...


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:37:26 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.