php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


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.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-02-2019, 18:49
Chrimoe
 Registrierter Benutzer
Links : Onlinestatus : Chrimoe ist offline
Registriert seit: Feb 2019
Beiträge: 7
Chrimoe befindet sich auf einem aufstrebenden Ast
Standard 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();
}

}
?>
Mit Zitat antworten
  #2 (permalink)  
Alt 24-02-2019, 10:26
bandit600
 Registrierter Benutzer
Links : Onlinestatus : bandit600 ist offline
Registriert seit: Jan 2010
Beiträge: 192
bandit600 befindet sich auf einem aufstrebenden Ast
Standard

Drehe mal das Error-Reporting hoch:
PHP-Code:
<?php   
error_reporting
(E_ALL);  
 
ini_set('display_errors'true);
Mit Zitat antworten
  #3 (permalink)  
Alt 27-02-2019, 13:51
SysOp
 Registrierter Benutzer
Links : Onlinestatus : SysOp ist offline
Registriert seit: May 2005
Beiträge: 81
SysOp befindet sich auf einem aufstrebenden Ast
Standard

die() beendet ein Script mit ener Fehlermeldung
header() funktioniert nur, wenn noch keine Ausgabe an den Browser stattgefunden hat.
Mit Zitat antworten
  #4 (permalink)  
Alt 03-03-2019, 18:48
Chrimoe
 Registrierter Benutzer
Links : Onlinestatus : Chrimoe ist offline
Registriert seit: Feb 2019
Beiträge: 7
Chrimoe befindet sich auf einem aufstrebenden Ast
Standard

die Besonderheit mit dem header habe ich bereits berücksichtigt: Es findet vor dem header keine Ausgabe statt
Mit Zitat antworten
  #5 (permalink)  
Alt 03-03-2019, 19:50
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.650
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Deine Fehlerbeschreibung ist sehr dürftig. Was kommt denn beim Browser an? Was steht im HTTP-Header des Response?
Mit Zitat antworten
  #6 (permalink)  
Alt 03-03-2019, 20:14
Chrimoe
 Registrierter Benutzer
Links : Onlinestatus : Chrimoe ist offline
Registriert seit: Feb 2019
Beiträge: 7
Chrimoe befindet sich auf einem aufstrebenden Ast
Standard

ü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
Mit Zitat antworten
  #7 (permalink)  
Alt 03-03-2019, 20:35
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.650
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Chrimoe Beitrag anzeigen
über
a) header: response im Browser leer
Was heißt "leer"? Was steht im HTTP-Header?
Mit Zitat antworten
  #8 (permalink)  
Alt 05-03-2019, 20:30
Chrimoe
 Registrierter Benutzer
Links : Onlinestatus : Chrimoe ist offline
Registriert seit: Feb 2019
Beiträge: 7
Chrimoe befindet sich auf einem aufstrebenden Ast
Standard

Im Header steht: text/html
Mit Zitat antworten
  #9 (permalink)  
Alt 05-03-2019, 20:52
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.650
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Das ist sicher nicht alles, das im Header steht.
Mit Zitat antworten
  #10 (permalink)  
Alt 07-03-2019, 22:34
Chrimoe
 Registrierter Benutzer
Links : Onlinestatus : Chrimoe ist offline
Registriert seit: Feb 2019
Beiträge: 7
Chrimoe befindet sich auf einem aufstrebenden Ast
Standard

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
Mit Zitat antworten
  #11 (permalink)  
Alt 08-03-2019, 10:29
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.650
h3ll befindet sich auf einem aufstrebenden Ast
Standard

In Location steht member.html. Dorthin wird wohl der Browser umleiten.
Mit Zitat antworten
  #12 (permalink)  
Alt 08-03-2019, 12:22
Chrimoe
 Registrierter Benutzer
Links : Onlinestatus : Chrimoe ist offline
Registriert seit: Feb 2019
Beiträge: 7
Chrimoe befindet sich auf einem aufstrebenden Ast
Standard

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?
Mit Zitat antworten
  #13 (permalink)  
Alt 08-03-2019, 12:34
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.650
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Wenn sich der Browser nicht an die Angaben im HTTP-Header hält, ist der Browser kaputt.
Mit Zitat antworten
  #14 (permalink)  
Alt 08-03-2019, 15:27
Chrimoe
 Registrierter Benutzer
Links : Onlinestatus : Chrimoe ist offline
Registriert seit: Feb 2019
Beiträge: 7
Chrimoe befindet sich auf einem aufstrebenden Ast
Standard

Das der Browser kaputt ist, kann ich mir nicht vorstellen, da das beschrieben Verhalten für alle Browser gleichermaßen zutrifft!
Mit Zitat antworten
  #15 (permalink)  
Alt 08-03-2019, 15:40
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist gerade online
Registriert seit: Mar 2008
Beiträge: 3.650
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Dann passiert etwas anderes, als du beschreibst.

Jedenfalls ist das Problem ohne testbaren Code nicht nachvollziehbar. Du solltest das Problem auf ein Minimalbeispiel herunterbrechen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php Weiterleitung Problem marlenko PHP Developer Forum 2 08-11-2010 22:43
PHP Weiterleitung AciD-CoRe PHP Developer Forum 11 26-07-2006 09:42
PHP Weiterleitung Sager7620 PHP Developer Forum 10 20-02-2006 21:50
url.php weiterleitung ?? Arkona PHP Developer Forum 5 27-06-2004 18:32
Meta - Weiterleitung via PHP sdecher PHP Developer Forum 7 18-12-2003 22:56

Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Plates native PHP template system

Plates ist ein natives PHP-Vorlagensystem, das schnell, einfach zu verwenden und einfach zu erweitern ist.

24.05.2019 Berni | Kategorie: PHP/ Framework
Maqetta Open Source  HTML5-Editor ansehen Maqetta Open Source HTML5-Editor

Einen WYSIWYG-Editor zur visuellen Erstellung von Userinterfaces in HTML5 (Drag-and-Drop)

13.05.2019 Berni | Kategorie: HTML5/ EDITOR
NodeBB

NodeBB ist eine Foren-Software auf NodeJS-Basis

13.05.2019 Berni | Kategorie: PHP/ Forum PHP Software
 Alle PHP Scripte anzeigen

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