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. |
 |

22-02-2019, 18:49
|
Chrimoe
Registrierter Benutzer
|
|
Registriert seit: Feb 2019
Beiträge: 7
|
|
PHP Weiterleitung
Hallo zusammen,
folgende Situation und Prozessweg:
a) in einem HTML-Formular <form> gebe ich Login-Daten ein
b) per Button in dem vor benannten Formular werden die Login-Daten noch auf der HTML-Seite geprüft und dann
c) zu einem JSON-Object transformiert und an ein PHP-Script via POST gesendet
d) dieses PHP-Script validiert die Login-Daten und schreibt, wenn valide diverse Log-Daten in eine mySQL-DB-Tabelle
---- bis hierhin funktioniert alles so wie es soll ----
e) sind die Daten aus d) erfolgreich weggeschrieben soll auf eine weitere PHP-Seite (z.B. member.php) weitergeleitet werden. Hierfür habe ich bereits 2 Dinge ausprobiert:
1.) die('Login erfolgreich. Weiter zu <a href="localhost/member2.php">interner Bereich</a>'); (mit und ohne 'localhost' getestet
2.) header("Location:localhost/member.html"); ebenfalls mit und ohne 'localhost' getestet
beide Varianten führen nicht dazu, dass die Folgeseite angezeigt wird.
Lasse ich das und c) benannte Script im Browser als localhost/test.php laufen, klappt alles wunderbar - auch wird zur Folge-PHP-Seite gewechselt.
Was mache ich falsch????
Zur Veranschaulichung, nachfolgend das PHP-Script:
<?php
//bind external ressource
include ('db_configuration.php');
$sname = session_name();
session_start();
$sid = session_id();
//$cok = $_COOKIE["PHPSESSID"];
$sstatus = session_status();
// Initialize Variables to Null or empty string.
$email =""; // Sender's E-mail ID
$christianname = "";
$surname = "";
$userid ="";
$Error ="";
$successMessage ="";
$password = "";
$password_h = "";
$user_exist = 0;
$ret = "";
$id = "";
$pw_must_be_changed = "";
$timstamp = date("Y-m-d H:i:s");
$day = date("Y-m-d");
$date = date_create("now");
$date->add(new Dateinterval('P1D'));
$doe = $date->format('Y-m-d H:i:s');
function mysqli_escape(&$String)
{
if (get_magic_quotes_gpc())
{
$String = stripcslashes($String);
}
mysqli_real_escape_string($String);
}
$json_obj = file_get_contents('php://input');
$data_decoded = json_decode($json_obj);
$email = $data_decoded->{'emailadr'};
$christianname = $data_decoded->{'christname'};
$surname = $data_decoded->{'surname'};
$password = $data_decoded->{'password'};
// to set session vars
if(!isset($_SESSION['validuser'])){
$_SESSION['validuser'] = FALSE;
}
if(!isset($_SESSION['sid'])){
$_SESSION['sid'] = " ";
}
if(!isset($_SESSION['login'])){
$_SESSION['login'] = FALSE;
}
if(!isset($_SESSION['username'])){
$_SESSION['username'] = "";
}
if(!isset($_SESSION['starttime'])){
$_SESSION['starttime'] = $timstamp;
}
if ($password !== NULL && ($email !== NULL || ($christianname !== NULL && $surname !== NULL)))
{
//filtering bad chars all variables
$f_email = filter_var($email, FILTER_SANITIZE_EMAIL); // Sanitizing E-mail(Remove unexpected symbol like <,>,?,#,!, etc.)
$f_christianname = filter_var($christianname, FILTER_SANITIZE_STRING);
$f_surname = filter_var($surname, FILTER_SANITIZE_STRING);
$f_password = filter_var($password, FILTER_SANITIZE_STRING);
// establishing Connection With Server..
$db_conn = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE);
mysqli_set_charset($db_conn, 'utf-8');
mysqli_autocommit($db_conn, TRUE);
//check if user exist
if($db_conn === FALSE){
//die("FEHLER: Verbindung nicht möglich" . mysqli_connect_error());
exit();
}
$sel_query_existuser = "SELECT f_user_id FROM user u, passwords p WHERE 1 = 1 ";
if($f_email){
$sel_query_existuser .= "AND u.emailadress = '$f_email' AND p.password = '$f_password'";
}
elseif ($f_christianname && $f_surname){
$sel_query_existuser .= "AND u.christianname = '$f_christianname' AND u.surname = '$f_surname' AND p.password = '$f_password'";
}
if ($sel_ret = mysqli_query($db_conn, $sel_query_existuser))
{
while($row = mysqli_fetch_object($sel_ret))
{
$userid = $row->f_user_id;
}
}
if (!empty($userid))
{
$_SESSION['validuser'] = TRUE;
$npw_sel = "SELECT f_user_id FROM passwords WHERE f_user_id = '$userid' AND pw_type = 'npw' AND date_of_expiry > $timstamp - 86400";
if($sel_result2 = mysqli_query($db_conn, $npw_sel))
{
$pw_must_be_changed = TRUE;
}
}
if ($_SESSION['validuser'] === TRUE){
//valid user
$_ref = $_SERVER['REMOTE_ADDR'];
$session_timeout = 1800; // time until tiemout 1800 sec
//setcookie('id', $login_check['id'], time()+86400*30);
//setcookie('pass', $login_check['pass'], time()+86400*30);
//setcookie('login','true', time()+8600*30);
$_SESSION['sid'] = session_id();
$_SESSION['login'] = TRUE;
$_SESSION['username'] = $userid;
$_SESSION['starttime'] = $timstamp;
//$_SESSION['sessionkey'] = $_SESSION['id'] + $_SESSION['username'] = $userid;
$session_id = $_SESSION['id'];
$ins_login_data = "INSERT INTO logins (f_user_id, login_date, session_id, session_start, session_end, root_url, root_referer, bad_authorized, entry_time_stamp) VALUES('$userid','$day','$session_id','$timstamp', '$timstamp','','', 0, '$timstamp' )";
if(mysqli_query($db_conn, $ins_login_data)){
die('Login erfolgreich. Weiter zu <a href="localhost/member2.php">interner Bereich</a>');
//header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
//header("Cache-Control: no-cache");
//header("Pragma: no-cache");
//header("Location:localhost/member.html");
//exit();
}
}
else {
header ('Location: cm-secure.html');
session_destroy();
exit();
}
}
?>
|

24-02-2019, 10:26
|
bandit600
Registrierter Benutzer
|
|
Registriert seit: Jan 2010
Beiträge: 192
|
|
Drehe mal das Error-Reporting hoch:
PHP-Code:
<?php error_reporting(E_ALL); ini_set('display_errors', true);
|

27-02-2019, 13:51
|
SysOp
Registrierter Benutzer
|
|
Registriert seit: May 2005
Beiträge: 81
|
|
die() beendet ein Script mit ener Fehlermeldung
header() funktioniert nur, wenn noch keine Ausgabe an den Browser stattgefunden hat.
|

03-03-2019, 18:48
|
Chrimoe
Registrierter Benutzer
|
|
Registriert seit: Feb 2019
Beiträge: 7
|
|
die Besonderheit mit dem header habe ich bereits berücksichtigt: Es findet vor dem header keine Ausgabe statt
|

03-03-2019, 19:50
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.875
|
|
Deine Fehlerbeschreibung ist sehr dürftig. Was kommt denn beim Browser an? Was steht im HTTP-Header des Response?
|

03-03-2019, 20:14
|
Chrimoe
Registrierter Benutzer
|
|
Registriert seit: Feb 2019
Beiträge: 7
|
|
über
a) header: response im Browser leer
b) die ('xyz'): der Text der als String in die() notiert wurde (hier: xyz)
Browserseitig wird der response in responsevar abgelegt, diese ist eine JS-Variable des Typs XMLHttpRequest.responseText
|

03-03-2019, 20:35
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.875
|
|
Zitat:
Zitat von Chrimoe
über
a) header: response im Browser leer
|
Was heißt "leer"? Was steht im HTTP-Header?
|

05-03-2019, 20:30
|
Chrimoe
Registrierter Benutzer
|
|
Registriert seit: Feb 2019
Beiträge: 7
|
|
Im Header steht: text/html
|

05-03-2019, 20:52
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.875
|
|
Das ist sicher nicht alles, das im Header steht.
|

07-03-2019, 22:34
|
Chrimoe
Registrierter Benutzer
|
|
Registriert seit: Feb 2019
Beiträge: 7
|
|
Kompletter Abzug der Header-Daten:
Anfragemethode: POST
Status-Code:
302
Header-Daten:
Cache-Control
no-cache
Connection
Keep-Alive
Content-Length
2
Content-Type
text/html; charset=UTF-8
Date
Thu, 07 Mar 2019 21:23:31 GMT
Expires
Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive
timeout=5, max=100
Location
member.html
Pragma
no-cache
Server
Apache/2.4.33 (Win32) OpenSSL/1.1.0h PHP/7.2.6
Set-Cookie
PHPSESSID=pfp8rfcqcvart3kp85uh6acek8; path=/
X-Powered-By
PHP/7.2.6
Anfragekopfzeilen (345 B)
Accept
*/*
Accept-Encoding
gzip, deflate
Accept-Language
de,en-US;q=0.7,en;q=0.3
Connection
keep-alive
Content-Length
85
Content-Type
application/json
Host
localhost
Referer
http://localhost/cm-secure.html
User-Agent
Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/65.0
GET
Status-Code:
200
Header-Daten:
Accept-Ranges
bytes
Connection
Keep-Alive
Content-Length
275
Content-Type
text/html
Date
Thu, 07 Mar 2019 21:23:31 GMT
ETag
"80-5827e306ee280"
Keep-Alive
timeout=5, max=99
Last-Modified
Fri, 22 Feb 2019 16:36:13 GMT
Server
Apache/2.4.33 (Win32) OpenSSL/1.1.0h PHP/7.2.6
Anfragekopfzeilen (369 B)
Accept
*/*
Accept-Encoding
gzip, deflate
Accept-Language
de,en-US;q=0.7,en;q=0.3
Connection
keep-alive
Content-Type
application/json
Cookie
PHPSESSID=pfp8rfcqcvart3kp85uh6acek8
Host
localhost
Referer
http://localhost/cm-secure.html
User-Agent
Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/65.0
|

08-03-2019, 10:29
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.875
|
|
In Location steht member.html. Dorthin wird wohl der Browser umleiten.
|

08-03-2019, 12:22
|
Chrimoe
Registrierter Benutzer
|
|
Registriert seit: Feb 2019
Beiträge: 7
|
|
Das heißt im Klartext:
Die Seite member.html müßte vom Browser angezeigt werden?!
Passiert aber nicht.
Egal ob ich als Location member.html oder member.php (beides ist rudimentär vorhanden) angebe, es wird weder member.html noch member.php in Browser angezeigt.
oder habe ich einen Knick im Gedankengang?
|

08-03-2019, 12:34
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.875
|
|
Wenn sich der Browser nicht an die Angaben im HTTP-Header hält, ist der Browser kaputt.
|

08-03-2019, 15:27
|
Chrimoe
Registrierter Benutzer
|
|
Registriert seit: Feb 2019
Beiträge: 7
|
|
Das der Browser kaputt ist, kann ich mir nicht vorstellen, da das beschrieben Verhalten für alle Browser gleichermaßen zutrifft!
|

08-03-2019, 15:40
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.875
|
|
Dann passiert etwas anderes, als du beschreibst.
Jedenfalls ist das Problem ohne testbaren Code nicht nachvollziehbar. Du solltest das Problem auf ein Minimalbeispiel herunterbrechen.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
Aktuelle PHP Scripte
Homepagetools 2022
Kostenloses Gästebuch und Homepagetools für die eigene Homepage.
Bei GuxDu kann man sich kostenlos die Websitetools auf die vorhandene Website einbauen. Zudem kann man bei GuxDU auch eine eigene Homepage mit 3D Effekten erstellen. GuxDu ist kostenlos.
29.04.2022
freepler | Kategorie: PHP/ Gaestebuch
|
SF-Shopsystem V1.0
Hier haben wir ein einzigartiges Shopsystem in PHP.
Die Anzahl der Artikel ist unbegrenzt, einfach zu bedienen und erklärt sich.
Ausführliche Beschreibung weiter unten.
28.04.2022
Speedcrawler | Kategorie: PHP/ Shops
|
Anzeigen Markt mit PayPal Bezahl System
Anzeigen Markt Script
mit PayPal Bezahl System
Der Benutzer hat die Möglichkeit sofort nach Bezahlung mit PayPal
seine Anzeigen zu schalten, je nach seinem Guthaben.
27.04.2022
Webace_de | Kategorie: PHP/ Anzeigenmarkt
|
Alle PHP Scripte anzeigen
|