Buttons funktionieren unter XAMPP nicht

Alles, was PHP betrifft, kann hier besprochen werden.

Buttons funktionieren unter XAMPP nicht

Postby alucard010 » 12. November 2004 16:10

Hallo, ich habe ein kleines Problem mit einem Button. Wenn ich es auf kostenlosen Websapce hochlade, wird der code nach
Code: Select all
if (isset($_POST['login'])
ausgeführt. Wenn ich das gleiche jedoch unter XAMMP versuche, wird die Seite einfach nur neu geladen und der code nach isset wird nicht ausgeführt. Auch nicht wenn es nur eine echo Ausgabe ist.
Am Code kann es ja wohl kaum liegen. Würde eher sagen das es an den Einstellungen des XAMPP liegt. Muss ich da etwas bestimmtes in der config ändern?
alucard010
 
Posts: 5
Joined: 12. November 2004 15:56

Postby Wiedmann » 12. November 2004 16:58

Auch nicht wenn es nur eine echo Ausgabe ist.

Dann schreib doch mal den ganzen Code (minimal) mit "echo" hin. So ist das ganze nicht aussagefähig.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby alucard010 » 12. November 2004 17:11

Code: Select all
   
if (isset($_POST['login']))
{
  echo "test";
}


Online auf einem kostenlosen Websapce funktioniert es wie es soll. Nur bei XAMPP wird die Seite nur geladen ohne jegliche Ausgabe.
alucard010
 
Posts: 5
Joined: 12. November 2004 15:56

Postby Jan H. Krüger » 12. November 2004 17:17

Hm, bau mal eine Ausgabe für die hier abgefrage Variable login ein und schaue ob sie auch wirklich gesetzt wird.
Jan H. Krüger
 
Posts: 152
Joined: 24. October 2004 19:42

Postby Wiedmann » 12. November 2004 18:44

Ein "<?php ... ?>" wird ja wohl aussen rum sein?

Die Datei heisst "foo.php" ist im Order "\xampp\htdocs" und das Formular hast du auch korrekt angelegt?:
Code: Select all
<form method="post" action="foo.php">
<input type="submit" name="login">
</form>
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby alucard010 » 12. November 2004 20:56

Ich denke ich habe die Fehlerquelle finden können. Es hat nicht direkt mit dem Button zu tun. Und zwar, registriere ich eine sessionvariable:
Code: Select all
$_SESSION['id'] = session_id();

Diese wird auch registriert. Wenn ich das php Script weiterlaufen lasse, kommt folgendes drin vor:
Code: Select all
header("Location: index.php?sessionid=$sessionid");

Dannach sit die Variable:
Code: Select all
$_SESSION['id']
allerdings leer!
Sie sollte aber nciht leer sein. Auch wenn ich den code, der zum leeren der variable führt, weg mache, ist sie nach dem header befehl leer. Diese brauche ich allerdings.
alucard010
 
Posts: 5
Joined: 12. November 2004 15:56

Postby Jan H. Krüger » 12. November 2004 21:04

Hm, ich registriere Sessionvariablen für gewöhnlich so:

session_register(VARIABLENNAME);
Jan H. Krüger
 
Posts: 152
Joined: 24. October 2004 19:42

Postby alucard010 » 12. November 2004 21:08

Ist beides möglich, unterschied:
Wenn Sie wollen, dass ihr Script unabhängig von der Einstellung von register_globals funktioniert, müssen Sie stattdessen das Array $_SESSION verwenden, weil $_SESSION-Einträge automatisch registriert werden. Wenn Sie in Ihrem Script session_register() verwenden, funktioniert es nicht in Umgebungen, in denen die PHP-Anweisung register_globals deaktiviert ist.

Quelle: php.net


Und da es online aufm Webspace funktioniert, denke ich das ich in der php.ini etwas bei den sessions ändern muss?!
alucard010
 
Posts: 5
Joined: 12. November 2004 15:56

Postby Wiedmann » 12. November 2004 21:16

$_SESSION['id'] = session_id();

Du meinst:
Code: Select all
unset($_SESSION['id']);

BTW:
Für die ID gibt es die Funktion session_id(). Löschen würde man eine Session auch anders:
Code: Select all
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
   setcookie(session_name(), '', time() - 42000, '/');
}
session_destroy();

header("Location: index.php?sessionid=$sessionid");

Du meinst:
Code: Select all
header('Location: http://'.$_SERVER['HTTP_HOST'].'/index.php?'.SID);

Vor diesem Befehl darf nichts an den Browser ausgegen werden. Ausser du hast eine Ausgabepufferung aktiviert.

Am Anfang jeder PHP-Seite die diese Session benutzen soll, muss folgedes stehen:
Code: Select all
session_start();


BTW:
Jan H. Krüger wrote:Hm, ich registriere Sessionvariablen für gewöhnlich so:
session_register(VARIABLENNAME);

Das war vor PHP 4.1.0 mal aktuell...
Last edited by Wiedmann on 12. November 2004 21:21, edited 2 times in total.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Jan H. Krüger » 12. November 2004 21:17

Hm, erstaunlich.
Naja, man lernt nie aus, danke.
Jan H. Krüger
 
Posts: 152
Joined: 24. October 2004 19:42

Postby alucard010 » 12. November 2004 21:40

Kann mir mal bitte jemand folgendes erklären:
Wenn ich meine Firewall deaktiviere, funktioniert alles ohne Probleme.
Wenn ich sie weider an mache, kommt das Problem mit den Sessions.
ABER: Wenn ich die Firewall an lasse, und die Option "Popup-/Popunder Werbung" ausschalte, funktioniert es wieder! (Also, wenn ich popups blocken lasse, funktioniert es nicht)
Warum? Auf meiner Seite sind weder Werbebanner, noch popups/popunder.
Außerdem taucht das Problem nur bei XAMPP auf, online nicht
alucard010
 
Posts: 5
Joined: 12. November 2004 15:56


Return to PHP

Who is online

Users browsing this forum: No registered users and 10 guests