Session Variable wird nicht neu geschrieben?!

TaxiDriver

Mitglied
PHP:
<?php
session_start ();
if (!isset ($_SESSION["user_Id"]))
{
  header ("Location: fehler.php");
}

$connectionid = mysql_connect ("localhost", "db", "pass");
if (!mysql_select_db ("data", $connectionid))
{
  die ("Keine Verbindung zur Datenbank");
}

$sql = "UPDATE ".
	"benutzerdaten ".
   "SET ".
    "freigabe = 1 AND ".
    "transnr = '".$_SESSION["user_transnr"]."'".
  " WHERE ".
    "(Id = '".$_SESSION["user_Id"]."')";
$result = mysql_query ($sql);

if (mysql_num_rows ($result) > 0)
{
$data = mysql_fetch_array ($result);

	header ("Location: freigabe.php?erfolg=1");
}
else
{
	header ("Location: fehler.php");
}
?>

Das Feld Transnr. ist ein TIMESTAMP in der SQL Tabelle. Ich bekomme immer die Fehlermeldung, dass das $result fehlerhaft sei. Ich glaube, ich hab nur irgendwo einen Schreibfehler drin... bin mir aber nicht sicher.

Könnt Ihr euch das mal anschauen?
 
MySQL gibt normalerweise nen Fehler aus, wenn was nicht stimmt, was steht denn da? Bei Syntaxfehlern ist es meisten irgendwas mit "near .."
 
"SET ".

"freigabe = 1 AND ".

"transnr = '".$_SESSION["user_transnr"]."'".

" WHERE ".

"(Id = '".$_SESSION["user_Id"]."')";


das and hinter der freigabe hat da nix zu suchen

stattdessen ein komma setzen

dann wird transnr auch neu gesetzt

Oder:

"SET ".

"freigabe = 1 where ".

"transnr = '".$_SESSION["user_transnr"]."'".

" and ".

"(Id = '".$_SESSION["user_Id"]."')";

dann wird das Feld transnr zur eingrenzung der where Abfrage eingesetzt
 
danke, melmager!

jetzt wird zwar die variable eingefügt und freigabe auf 1 gesetzt aber ich bekomm folgende Fehlermeldung:

Warning: Supplied argument is not a valid MySQL result resource in /verzeichniss/www/set.php on line 23

Warning: Cannot add header information - headers already sent by (output started at /verzeichniss/www/set.php:23) in /verzeichniss/www/set.php on line 31

das kann ich mir jetzt nicht erklären?!
 
Nach dem Update versuchst du auf Daten
von Mysql zuzugreifen
Nur: Ein Update gibt keine Daten zurück

spich da fehlt ein select Query :-)

-
der Fehler in 31 kommt weil in Zeile 23 eine Fehlemeldung
rausgegeben wurde :-)
 
Beziehungsweise versuchst du eine header() Umleitung vorzunehmen. Da aber zuvor durch session_start(), so sich denn der Session-ID Speicher Modus auf Cookie gestellt befindet, schon header Informationen gesendet wurden, kann die Weiterleitung mit header nicht mehr funktionieren.
 
Original geschrieben von Tim Comanns
Beziehungsweise versuchst du eine header() Umleitung vorzunehmen. Da aber zuvor durch session_start(), so sich denn der Session-ID Speicher Modus auf Cookie gestellt befindet, schon header Informationen gesendet wurden, kann die Weiterleitung mit header nicht mehr funktionieren.
...stimmt nicht... :)
 
wieso sollte das nicht stimmen? Es ist so! Durch Session_start werden Cookieinformationen an den Client gesendet, verweigert er dies werden die serverseitigen Möglichkeiten verwendet. Sobald nochmal den Header senden will geht das schief!

PS: kurzpostings sind ungern gesehen! Nur als Info
 
Original geschrieben von methodus
wieso sollte das nicht stimmen? Es ist so! Durch Session_start werden Cookieinformationen an den Client gesendet, verweigert er dies werden die serverseitigen Möglichkeiten verwendet. Sobald nochmal den Header senden will geht das schief!
ahha... und warum tritt der Fehler im Posting überhauptnicht auf? Nach euch dürfte sein Script also nicht funktionieren... komisch.... Und warum kann ICH (und bestimmt jeder andere auch) ohne Probleme nach einem session_start(); per Header umleiten? Ihr verwechselt da was!
PS: kurzpostings sind ungern gesehen! Nur als Info
Was soll ich machen? Ich hab's so gesagt wie es ist. Wäre nichts dran, hätte ichs auch garnicht geschrieben... aber oft ists doch nett, wenn man die Leute zum nachdenken anreizt - was hier ja nicht geklappt hat. Aber ok... falls ich falsch liege, wäre es doch nett mich davon zu überzeugen.

Danke
Jan
 
Zurück