Wert in Db eintragen (login_project)

ShinmA

Erfahrenes Mitglied
hi,
erstmal der code:

PHP:
$memberid=$row['id'];
$ip = $_SERVER['REMOTE_ADDR'];

  $sql = "UPDATE `datenbank` SET `addon` = " & $ip & " AND online = '1' WHERE `id` = '$memberid'";
  echo $sql;
  $check = @mysql_query($sql);
   if(isset($check))
             {
               echo "<br />";
                   if ($row['id']>="1")
                         {
                           echo "<B><u>";
                           echo "You are now logged in!";
                           echo "</u></B>";
                         }
                       else
                         {
                           echo "You typed the wrong user / pass";
                         };
                          echo"<br />";
                          echo "Your Member ID is: ";


                           echo "<B>";
                           echo $row['id'];
                           echo "</B>";
                           echo"<br />";
                           echo "Your IP( ";
                           echo "<B>";
                           echo $ip;
                           echo "</B>";
                           echo " ) has been logged.";
               }
             else
               {
                echo"Your IP could not be recieved! Try again!";
                exit;
             };

Das ergebnis ist:

Server dialog:
Connected to the Server and working.
You are now logged in!
Your Member ID is: 1
Your IP( 127.0.0.1 ) has been logged.


Die Tabelle ist so aufgebaut:
CREATE TABLE `datenbank` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`benutzer` VARCHAR( 30 ) NOT NULL ,
`passwort` VARCHAR( 110 ) NOT NULL ,
`online` VARCHAR( 20 ) NOT NULL ,
`addon` VARCHAR( 40 ) NOT NULL ,
PRIMARY KEY ( `id` ) ,
INDEX ( `passwort` ) ,
UNIQUE (
`benutzer`
)
);


und drin steht bis etzt:

id benutzer passwort online addon
1 ShinmA bla 1 1

aber verdammt der trägt mir die IP einfach nicht in die DB eni woran kann das liegen?

danke, Kevin.
 
Hmm, ich bin kein PHP-Spezialist, aber gucke doch mal, ob die Variable $ip direkt nach dem Zuweisen einen Wert enthält (kann sie eigentlich nicht).
Soweit ich weiß, kannst du nicht immer / nur in neuen PHP-Versionen mit $_SERVER usw. arbeiten.

Daher tippe ich auf eine ältere PHP-Version auf dem Server.
 
Willkommen bei phpMyAdmin 2.4.0-rc2
Verbunden mit MySQL 4.0.12-max-debug

ich glaube kaum das der server zu alt ist is alles sehr neu
es muss was anderes sein
 
Original geschrieben von ArneE
...ob die Variable $ip direkt nach dem Zuweisen einen Wert enthält (kann sie eigentlich nicht)...
nicht?

vielleicht so:
PHP:
$sql = "UPDATE `datenbank` SET `addon` = '$ip' AND online = '1' WHERE `id` = '$memberid'";
?
 
Original geschrieben von ShinmA

PHP:
$sql = "UPDATE `datenbank` SET `addon` = " & $ip & " AND online = '1' WHERE `id` = '$memberid'";

also das ist meiner kenntnis nach sowohl keine gültige (oder keine gängige) php-syntax als auch keine gültige (oder keine gängige) sql-syntax :) machs mal so:

PHP:
$sql = "UPDATE `datenbank` SET `addon` = '$ip', online = '1' WHERE `id` = $memberid";

dann klappts auch mit dem query ;P :)
 
würde auch gehen:

PHP:
$sql = "UPDATE `datenbank` SET `addon` = " . $ip . " AND online = '1' WHERE `id` = '$memberid'";
 
Und zur Not geht die Methode von methodus (*g*) auch ohne die Leerschritte um die Stringverbindungsoperatoren (sprich die Punkte). :-)
 
Original geschrieben von leuchte
Und zur Not geht die Methode von methodus (*g*) auch ohne die Leerschritte um die Stringverbindungsoperatoren (sprich die Punkte). :-)

siehe meine lösung.
achja und methodus methode kann nicht funzen, weil das feld addon vom typ varchar ist, die variable $ip aber nicht in hochkommata steht :)
 
komisch, bei mir funzt's trotzdem, ansonsten versuchs damit *fg*

PHP:
$sql = "UPDATE `datenbank` SET `addon` = '" . $ip . "' AND online = '1' WHERE `id` = '$memberid'";
 
Zurück