Erik: $_SESSION[] wird partout nicht übergeben

Hallo,

folgendes,nervenaufreibendes Problem:
Ich möchte eine Variable an ein Folge Script übergeben, hab das so:

(search.php nenn ich sie mal)

session_start();
$_SESSION["search_string"] = $search_string;

header("Location: http://".$_SERVER ['SERVER_NAME']."/bo/search_result.php");

in "search_result.php" steht :
session_start();
echo $_SESSION["search_string"];

Es wird (in search_result.php), egal was in "$search_string" vorher stand: "bool(false)" ausgegeben

lass ich mir vor Übergabe (in search.php):
echo $_SESSION["search_string"]; anzeigen stimmt der Variablen-Wert

mein <form></form> element sieht so aus:
<FORM  action="'.$_SERVER['PHP_SELF'].'" method="GET" name="something" target="_self">

wobei ich schon POST und GET probierte
Server hat MySQL 3.22.32

Ich lese öfters von den Register globals, muß ich da vielleicht etwas ändern ?

voller Verzweiflung wende ich mich vertrauensvoll an euch
Danke
Gruß
Erik

  1. Hi,

    $_SESSION["search_string"] = $search_string;

    mit welchem Wert hast Du $search_string zuvor initialisiert?

    header("Location: http://".$_SERVER ['SERVER_NAME']."/bo/search_result.php");

    Mal eine Frage: Welche Information steht hiernach dem Client zur Verfügung, um Dir eine serverseitige Session-Identifikation mitzuteilen?

    mein <form></form> element sieht so aus:

    Nein, tut es nicht.

    <FORM  action="'.$_SERVER['PHP_SELF'].'"

    Wenn _das_ der Browser sieht, ist Dein Server defekt.

    Server hat MySQL 3.22.32

    Nein, hat er nicht. Zugang dazu vielleicht.

    Ich lese öfters von den Register globals, muß ich da vielleicht etwas ändern ?

    Wenn die erste von mir zitierte Codezeile tatsächlich funktioniert: Ja, und zwar dringend.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. mit welchem Wert hast Du $search_string zuvor initialisiert?

      $search_string bekommt die User-Eingabe aus einer Textbox
      dann wird geprüft (submitbutton = search):
      if (isset($_GET['search'])){
          $str_len= strlen($search_string);
              if($str_len < 3)$bHasError= TRUE;
      }
      if(!$bHasError){
         session_start;
          $_SESSION["search_string"] = $search_string;
          header *****wie im posting angegeben*****;
      }

      Mal eine Frage: Welche Information steht hiernach dem Client zur Verfügung, um Dir eine serverseitige Session-Identifikation mitzuteilen?

      sorry.....wie kann ich das ermitteln ?

      <FORM  action="'.$_SERVER['PHP_SELF'].'"

      Wenn _das_ der Browser sieht, ist Dein Server defekt.

      großer deutscher Provider (leider nicht so recht   zufriedenstellend)
         was kann ich tun ?

      Server hat MySQL 3.22.32
      Nein, hat er nicht. Zugang dazu vielleicht.

      ok

      Ich lese öfters von den Register globals, muß ich da vielleicht etwas ändern ?

      Wenn die erste von mir zitierte Codezeile tatsächlich funktioniert: Ja, und zwar dringend.

      echo $_SESSION["search_string"] = $search_string;
      Ausgabe auf search.php geht, nach Übergabe nur "bool(false)"

      mit einem Hoffnungsschimmer...
      Gruß
      Erik

      1. Hi,

        mit welchem Wert hast Du $search_string zuvor initialisiert?
        $search_string bekommt die User-Eingabe aus einer Textbox

        womit hast _Du_ die Variable initialisiert? Das ist eine Zuweisung, die im PHP-Code steht.

        if (isset($_GET['search'])){

        Hier scheinst Du noch zu wissen, wie es geht.

        Mal eine Frage: Welche Information steht hiernach dem Client zur Verfügung, um Dir eine serverseitige Session-Identifikation mitzuteilen?
        sorry.....wie kann ich das ermitteln ?

        Das sollst Du nicht ermitteln, es ist der Hinweis auf die Ursache des Problems.

        <FORM  action="'.$_SERVER['PHP_SELF'].'"
        Wenn _das_ der Browser sieht, ist Dein Server defekt.
           großer deutscher Provider (leider nicht so recht   zufriedenstellend)
           was kann ich tun ?

        Du kannst bei allem, was clientseitig relevant ist, das clientseitige liefern. PHP-Code ist bedeutungsfrei.

        Ich lese öfters von den Register globals, muß ich da vielleicht etwas ändern ?
        Wenn die erste von mir zitierte Codezeile tatsächlich funktioniert: Ja, und zwar dringend.
        echo $_SESSION["search_string"] = $search_string;

        $search_string hat unbekannt zu sein, solange Du es nicht selbst im Code deklariert hast, oder Dein Server ist schrottig konfiguriert.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
    2. Hallo,

      <FORM  action="'.$_SERVER['PHP_SELF'].'"

      Wenn _das_ der Browser sieht, ist Dein Server defekt.

      mach doch mal ein echo rein oder wird dies alles bereits per echo ausgegeben?
      wenn kein <? erfolgt ist es auch kein php für den server...

      Odium

  2. Moin!

    session_start();
    $_SESSION["search_string"] = $search_string;

    header("Location: http://".$_SERVER ['SERVER_NAME']."/bo/search_result.php");

    Wie kommt die Session-ID zur nächsten Seite? So bestimmt nicht, wenn du keine Cookies für die Session verwendest oder wenn dein Browser Cookies ablehnt.

    Ich habe aus genau diesen Gründen zum Debugging eine Einzelbestätigung für jedes gesendete Cookie im Browser aktiviert (Opera - der auch ausführlich die Cookie-Inhalte listet. Mozilla könnte das ebenso tun, der IE eher nicht).

    Wenn du keine Cookies für die Session verwendest, oder Cookies ablehnst, gibt es in PHP die Möglichkeit, die Session-ID über die URL zu übergeben. Das tust du bei deiner Weiterleitung aber nicht.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|