Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
session probleme, verzweifelt hilfe gesucht ! [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
session probleme, verzweifelt hilfe gesucht !


 
tahir
15-04-2004, 16:49 
 
Hi,

Ich habe ein riesen session problem. Ich weiss dass wenn ein user sich einlogt wird dieser user erst gecheckt wenn er in DB existiert wird an den Datensatz die session_id() hinzugefüg bzw. upgedated. Dann fängt der session auf der nächsten seite die ich aufrufe an weil ich sehe im browser dass der PHPSESSID an den jeweiligen Seiten angehängt wird aber manchmal auch nicht. Ich muss zugeben ich habe vorher noch nie mit sessions gearbeitet und ich weiss nicht ob das so üblich ist dass die PHPSESID im browser immer sichtbar sein muss. Tuts helfen bringen mich nicht viel weiter.

Da ist eine Suchroutine in meinem Projekt wo der user aussuchen kann nach welchen kriterien ein kunde gesucht werden soll. Nach firma, nach vornamen oder nach dem nachnamen. Dann wird er auf die entsprechende Seite gelinkt wo er dann die such daten eingeben kann. Die Ergebnisse werden als Link erzeugt wo von den
Kunden nur vor- und nachname sichtbar ist. Dieser link führt dann zum entsprechenden detail ausgabe von jeweiligen Kunden.

HIER BEGINNT AUCH DAS GANZE PROBLEM . Um den entsprechenden Kunden zu identifizieren hänge ich '.$row['ID'].' an den detail.php . Und im detail.php baue ich die '.$_REQUEST['rid'].'in meine sql Abfrage (siehe codeschnipsel unten)

select.php :

<?php
while ($row =mysql_fetch_assoc($result)):
echo("<a href=\"detail.php?rid=".$row['ID']."\">".$row['fname']." ".$row['lname']."</a>");

endwhile;
}

?>

detail.php:


<?php
$sql = "select customers.fname, customers.lname,
customers.number, customers.email, company.name,
city.name from customers,company,city
where customers.companyID=company.ID
AND customers.cityID=city.ID
AND customers.ID='" .$_REQUEST['rid']. "'";

$result = mysql_query($sql);

?>


Die details kriege ich angezeigt aber damit auch die ganzen Warnings unten auch:


- Warning: session_start(): Cannot send session cookie- headers already sent by (output started at W:\www.detail.php:1) in W:\www.detail.php on line 2

- Warning: session_start(): Cannot send session cache limiter- headers already sent by (output started at W:\www.detail.php:1) in W:\www.detail.php on line 2

- Warning: session_start(): Cannot modify header information- headers already sent by (output started at W:\www.detail.php:1) in W:\www.detail.php on line 2


line 2 ist da wo session_start() ist.


Kann mir bitte ein PHP GURU helfen ?

 
TobiaZ
15-04-2004, 16:54 
 
Dann fängt der session auf der nächsten seite die ich aufrufe an weil ich sehe im browser dass der PHPSESSID an den jeweiligen Seiten angehängt wird aber manchmal auch nicht. Ich muss zugeben ich habe vorher noch nie mit sessions gearbeitet und ich weiss nicht ob das so üblich ist dass die PHPSESID im browser immer sichtbar sein muss Tätest du mal das Manual lesen!!!

Wäre mal nicht schlecht, wenn du ein paar [PHP]-Tags benutz

und einfach mal die Suche verwendest!!! Wie oft hatten wir das Problem schon? Und ich sage dir, deins ist kein stück schwieriger als die anderen

 
marc75
15-04-2004, 17:11 
 
- Warning: session_start(): Cannot modify header information- headers already sent by (output started at W:\www.detail.php:1) in W:\www.detail.php on line 2

haste mal versucht das zu Übersetzen? sollteste mal machen.

PS: der Fehler liegt in Zeile 1 (www.detail.php:1)

TobiaZ: URL-Erkennung ausgeschaltet.

 
tahir
16-04-2004, 10:14 
 
Ich starte aber alle meine skripte mit

<?php
session_start();
...
..
.

ich glaube nicht dass das Problem damit zusammenhängt. Was denkt ihr ?

 
MoRtAlAn
16-04-2004, 10:45 
 
Cannot modify header information- headers already sent by ...

dort steht aber, dass du vorher (wo auch immer) eine Ausgabe gemacht hast!

gruss

 
freq.9
16-04-2004, 11:30 
 
Also, irgendwo gibts nen echo, include oder sonstwas, was etwas ausgibt, vor dem session_start().

@ MoRtAlAn: Wenn er das session_start() nach ganz oben packt, kann er keine Ausgaben mehr drüber haben!

 
tahir
16-04-2004, 11:56 
 
Hi,

ich habe jetzt alle meine .php files die ich in meinem Projekt verwende nachgecheckt und echos oder leerzeichen usw. vor session_start(); beseitigt und siehe da ich kriege keine warnings mehr.

Allerdings bin ich mir immer noch nicht sicher ob da ein neues session startet wenn ich

..
echo("<a href=\"detail.php?rid=".$row['ID']."\">".$row['fname']." ".$row['lname']."</a>");
...


das hier mache ?????

 
TobiaZ
16-04-2004, 12:06 
 
Wieso sollte aufgrund eines Echos eine neue Session gestartet werden?

 
freq.9
16-04-2004, 12:17 
 
Original geschrieben von TobiaZ
Wieso sollte aufgrund eines Echos eine neue Session gestartet werden?
das frag ich mich auch o.O

So wird ne Session gesetzt!
$_SESSION['foo'] = "bar";
nicht mit session_register()!!!!!!!

// Edit:
Wieso willst du da denn ne Session setzen? x_X

 
TobiaZ
16-04-2004, 12:52 
 
wo wurde denn session_register genutzt??? :confused:

 
tahir
16-04-2004, 13:11 
 
Session register wurde nirgendwo benutzt.

Das was ich meinte war auch nur

\"detail.php?rid=".$row['ID']."\" dieser teil von echo weil hier die $row[ID] angehängt wird so dass hier eventuell eine neue session starten könnte weill die PHPSESID sich im Browser geändert hat !!!!

 
marc75
16-04-2004, 13:12 
 
Original geschrieben von TobiaZ
wo wurde denn session_register genutzt??? :confused:


bestimmt irgendwo hier im Forum :D

 
TobiaZ
16-04-2004, 13:13 
 
wenn sich die sessionid geändert hast, kannst du ohl von ausgehen, dass es eine neue Session ist. aber was hat das mit dem code zu tun?

 
TobiaZ
16-04-2004, 13:14 
 
bestimmt irgendwo hier im Forum schwates... Die Leute lesen doch garantiert alle das Manual!

 
tahir
16-04-2004, 14:43 
 
Original geschrieben von TobiaZ
wenn sich die sessionid geändert hast, kannst du ohl von ausgehen, dass es eine neue Session ist.

Genau das will ich ja versuchen zu verhindern und ich weiss eben nicht wie. Warum fängt er eine neue Session an ?

 
TobiaZ
16-04-2004, 14:46 
 
weil du die sid offensichtlich nicht korrekt übergibst.

 
tahir
16-04-2004, 15:41 
 
Original geschrieben von TobiaZ
weil du die sid offensichtlich nicht korrekt übergibst.


Soweit bin ich auch schon wenn ich nur wüsste wie es richtig zu machen ist !!!!;)

 
TobiaZ
16-04-2004, 18:11 
 
das wiederum steht im manual :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:50 Uhr.