Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst AJAX lädt php, welche eine Session setzt. Laden der Session geht nicht!

Mitglied: B-free

B-free (Level 1) - Jetzt verbinden

17.05.2014 um 12:24 Uhr, 3792 Aufrufe, 6 Kommentare, 1 Danke

Hallo,

ich bin ein AJAX neuling und PHP habe ich im letzten halben Jahr "etwas" vernachlässigt...
Wie schon oben beschrieben, habe ich folgendes Problem:

eine index.html:
01.
<script> 
02.
(AJAX script blabla...) 
03.
function login(){ 
04.
    var username = document.getElementById("username").value; 
05.
    var password = document.getElementById("password").value; 
06.
    var request = "ajaxTest2.php?u="+username+"&p="+password+"&a=login"; 
07.
var xmlhttp; 
08.
if (window.XMLHttpRequest) 
09.
  {// code for IE7+, Firefox, Chrome, Opera, Safari 
10.
  xmlhttp=new XMLHttpRequest(); 
11.
12.
else 
13.
  {// code for IE6, IE5 
14.
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
15.
16.
xmlhttp.onreadystatechange=function() 
17.
18.
  if (xmlhttp.readyState==4 && xmlhttp.status==200) 
19.
20.
      document.getElementById("display1").innerHTML=xmlhttp.responseText; 
21.
22.
23.
xmlhttp.open("GET",request,true); 
24.
xmlhttp.send(); 
25.
}</script>
und dann meine ajaxTest2.php:
01.
(LogIn script blabla) 
02.
if (login == true) { (jaja... nur als beispiel) 
03.
$_SESSION['loggedIn'] == true; 
04.
}
in meiner ajaxTest2.php habe ich auch noch:
01.
(...) 
02.
function deleteFile($filename) { 
03.
if ($_SESSION['loggedIn']) { 
04.
if ($filename != "" && file_exists('files/'.$filename)) { 
05.
unlink('files/'.$filename); 
06.
07.
else
08.
$_SESSION['errorMsg'] = '<span class="error">Cannot delete file!</span>'; 
09.
10.
11.
else
12.
echo '<span class="error">Sie sind nicht eingeloggt</span>'; 
13.
14.
15.
(...)
Das Problem ist:

Wenn ich mich einlogge, klapptalles super, aber wenn ich danach eine aktion durchführe (z.B. Datei Löschen), dann kriege ich meinen "Sie sind nicht eingeloggt" screen!

Ich denke, dass die session nicht gespeichert wird...


Stimmt das? Und wenn ja, wie behebe ich das?

Tschau
B-Free
Mitglied: B-free
17.05.2014, aktualisiert um 14:19 Uhr
Nach langen Tests mit Hilfe, habe ich herausgefunden, dass die Session jedes mal beim aufrufen zurückgesetzt wird...

liegt das an
01.
Session_start;
?

Nachtrag:
Die "index.html" in "index.php" umzubenennen und an den anfang ein
01.
<?php session_start; ?>
zu setzen hat auch nicht geholfen...
Bitte warten ..
Mitglied: Arano
17.05.2014 um 19:46 Uhr
Hi,

PHP-Manual - session_start()

Ich vermute folgendes:
session_start() ... WELCHE Session !?
Woher soll PHP denn wissen welche Session denn zu diesem AJAX-Request gehört !
Normalerweise wird die SESSION-ID als Cookie vom Browser übertragen, oder wenn dies deaktiviert ist als zusätzlicher URL-Parameter PHP-Manual - session_id()
Ich bin überzeugt davon, das diese Angaben (Cookie oder zusätzlicher Parameter) in deinem AJAX-Request NICHT automatisch mitgegeben werden. Deswegen kann keine "alte" Session gestartet werden und es wird einfach eine neue gestartet.

Du musst deinen AJAX.-Request also soweit umstricken das er entweder das Session-Cookie mitsendet (und beim Login empfängt und setzt) oder die ID als Parameter mit übergeben und in der/den PHP-Dateien diesen annehmen und daraufhin genau diese Session wieder aufrufen.


~Arano
Bitte warten ..
Mitglied: B-free
18.05.2014 um 12:35 Uhr
Danke!
Werde das gleich mal ausprobieren!
Bitte warten ..
Mitglied: dog
19.05.2014, aktualisiert um 14:46 Uhr
01.
if (login == true) {  
02.
  $_SESSION['loggedIn'] == true; 
"Warum machst du einen Vergleich, wenn du das Ergebnis sowieso ignorierst?"

Ich bin überzeugt davon, das diese Angaben (Cookie oder zusätzlicher Parameter) in deinem AJAX-Request NICHT automatisch mitgegeben werden.

Natürlich wird das Cookie auch bei XmlHttpRequests mitgesendet!
Cookies werden prinzipiell bei jedem HTTP-Request im Gültigkeitsbereich mitgesendet.
Bitte warten ..
Mitglied: Guenni
19.05.2014 um 18:05 Uhr
Zitat von B-free:

Nachtrag:
Die "index.html" in "index.php" umzubenennen und an den anfang ein
01.
<?php session_start;> ?>
zu setzen hat auch nicht geholfen...

Hi,

die Funktion session_start() initialisiert nicht nur eine neue Session, sie nimmt auch eine vorab gestartete Session wieder auf.

Deshalb gehört der Funktionsaufruf nicht nur in deine index.php, sondern in jedes weitere PHP-Script, das mit der/den aktuellen Session/Sessionvariablen arbeitet.

Siehe --> http://de3.php.net/manual/de/function.session-start.php

Gruß
Günni

PS.: Falls das bei dir der Fall sein sollte, betrachte diesen Hinweis als gegenstandslos
Bitte warten ..
Mitglied: B-free
21.05.2014 um 18:39 Uhr
Zitat von dog:
"Warum machst du einen Vergleich, wenn du das Ergebnis sowieso ignorierst?"

Ganz einfach:

Ich habe eine Datenbank-abfrage (und keine if(session['loggedIn'] == true)...), welche entscheidet, ob das Login erfolgreich war...

Deshalb darf ich danach die Session setzen...


Generell habe ich das Problem so gelöst, dass ein Token im Cookie gespeichert (64 zeichen lang) und mit einer Datenbank verglichen wird. Brutforce wird erkannt und in diesem Fall wird automatisch eine IP-Sperre + Cookie-Sperre eingesetzt...

Tschau
B-Free
Bitte warten ..
Ähnliche Inhalte
Webentwicklung

AJAX-PHP durch WebRTC für Datenaustausch ersetzen?

Frage von mabue88Webentwicklung1 Kommentar

Hallo zusammen, ich habe einen XAMPP Server laufen. Vom Server werden bislang lediglich Daten in Form von Strings an ...

JavaScript

Dropdownfeld auslesen und mit AJAX und JS an PHP senden

gelöst Frage von ITFloriJavaScript7 Kommentare

Hallo zusammen, ich versuche gerade die Auswahl eines Dropdown Menüs in eine Variable schreiben zu lassen und Sie mir ...

Apache Server

Ubuntu Server - PHP lädt keine mysql extension

gelöst Frage von harald.schmidtApache Server6 Kommentare

Hallo! Mein PHP lädt trotz eingeschalteter extensions mysql nicht. Woran kann das liegen? extension=php_bz2.dll extension=php_curl.dll extension=php_fileinfo.dll extension=php_gd2.dll extension=php_gettext.dll extension=php_gmp.dll ...

Schulung & Training

IT-Dokumentation - Wie geht ihr dabei vor? Welche Tools setzt ihr ein?

Frage von L0g333Schulung & Training3 Kommentare

Hallo liebe Mitadministratoren und Administratorinnen, heute möchte ich mich zum Thema IT-Dokumentation an euch wenden. Ich arbeite seit 6 ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 5 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 10 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server23 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...