2012-03-26 11 views
1

Ich versuche, Beiträge mit einem userid = zu der aktuell angemeldeten Benutzer-ID zu erstellen. Auf Seite 1 I $ _SESSION verwendet eine Variable

$_SESSION['Userid'] = $row_getUserStuff['userid']; 

I $ _SESSION nennen kann, um [ 'Userid'] auf beide Seite 1 und Seite 2 mit

echo($_SESSION['Userid']); 

, die der Benutzer-ID ausgibt, Mein Problem ist, wenn ich versuche, diese Daten in die Datenbank zu pushen. Ich In Form setzen

<input type="hidden" name="userid" value="<?php $_SESSION['Userid']?>" /> 

Aber wenn ich versuche, es zu senden erhalte ich die Fehler

Spalte 'Benutzer-ID' nicht

+0

Angabe der offensichtlichen, aber haben Sie überprüft, ob der Wert leer ist? Überprüfen Sie es, indem Sie die HTML-Quelle anzeigen und sehen, was in das Wertfeld geschrieben wird. – Gigi

Antwort

1

versuchen Sie dies:

<input type="hidden" name="userid" value="<?php echo $_SESSION['Userid']?>" /> 

Sie sind eigentlich nicht PHP zur Ausgabe der Session-Variablen zu sagen, du bist nur darauf Bezug nehmend. Aber da es eine Sitzungsvariable ist, muss es überhaupt nicht im Formular sein. Ich nehme an, dass irgendwo in Ihrem Code ein $_POST['userid'] steht, um das Formular zu bearbeiten, ersetzen Sie das einfach durch $_SESSION['Userid'].

+0

Danke, das hat perfekt funktioniert. – Aaronrobeson

0

versuchen null sein
<input type="hidden" name="userid" value="<?php echo $_SESSION['Userid']; ?>" /> 

Ich fügte die echo Anweisung und diehinzu, so dass kein PHP-Fehler generiert wird und der $_SESSION['Userid'] ordnungsgemäß an den Browser gesendet wird.

7

Legen Sie die Sitzungsdaten nicht in das Formular. Es ist sinnlos, wenn der Browser dem Server etwas senden muss, das der Server bereits kennt, und jeder kann ihn bei einem Injektionsangriff ändern.

Greifen Sie stattdessen einfach auf $_SESSION['Userid'] zu, wenn Sie den Wert in die Datenbank einfügen.

+0

+1 war im Begriff, das gleiche zu posten. –

+0

+1 Tolle Antwort Ich hätte nie gedacht, aber so wahr. – 19greg96

+0

Danke, zwischen diesem und JKirchartz Beitrag habe ich es behoben. Ich bin wirklich neu in PHP, also war es einfacher zu verstehen. – Aaronrobeson

0

Ersetzen Sie diese Zeile:

<input type="hidden" name="userid" value="<?php $_SESSION['Userid']?>" /> 

zu

<input type="hidden" name="userid" value="<?php echo $_SESSION['Userid']?>" /> 
Verwandte Themen