Sehr großes Problem

Hallo und guten Tag,

hab mal wieder ein sehr großes Problem. Leider komme ich selber nicht drauf wie ich das lösen muss. Ich hoffe, dass mir jemand dabei helfen kann. Währew wirklich sehr sehr froh, denn es ist wichtig.

Hier kommt mal mein Problem. Ich will jedem User ein Gästebuch erstellen. Das habe ich auch so geamcht. Habe eine Tabell in der DB die sieht so aus:

CREATE TABLE `p_gaestebuch` (
`id` int(6) NOT NULL auto_increment,
`user` varchar(30) NOT NULL default '0',
`name` varchar(200) NOT NULL default '',
`text` text NOT NULL,
`datum` datetime NOT NULL default '0000-00-00 00:00:00',
`ip` int(6) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=6 ;

dann habe ich im Profil von jedem User ein Link zu einem POPUP wo dann auch das Eingabeformular und auch das auslesen der Daten vorgenommen wird.

So sieht der Link aus:

PHP:
<a href="popup.php?user=<? echo $_data['benutzername'];?>" class="Stil4" onclick="window.open('popup.php?user=<? echo $_data['benutzername'];?>','popup','width=700,height=500,left=0,top=0,scrollbars');return false;">

So das POPUP sieht dann wie folgt aus. Zum Eintragen der Daten habe ich das wie folgt geamcht:


PHP:
if(!empty($_POST))
 {
 		$sql = "INSERT INTO p_gaestebuch 
 				(
 					name,
 					text,
 					user,
 					ip,
 					datum
 				)
 				VALUES
 				(
 		    		'" . $_SESSION['benutzername'] . "',
 		    		'" . addslashes($_POST["text"]) . "',
 		    		'" . addslashes($_POST["user"]) . "',
 					'" . $_SERVER["REMOTE_ADDR"]. "',
 					NOW()
 				)
 				";
 		mysql_query($sql)OR die(mysql_error());
 		
 		header("Location: http://www.meineSeite.de/popup.php?user=".$_POST['user']); 
 exit;
 }
 ?>

Nun das Skript zum auslesen der Daten aus der DB:

PHP:
  <?php // News aus der Datebank laden
  $sql="SELECT id, datum, name, user, text FROM p_gaestebuch WHERE user='".$_GET['benutzername']."'"; 
 		 $return = mysql_query($sql) OR die(mysql_error());
 					?>
   <?php
 		    		while($_data = mysql_fetch_assoc($return))
 					{
 						?>

dann sind die ganzen DAten in $_data so mache ich dann auch die Ausgabe:

PHP:
<?php echo htmlentities(echo_message($_data['text'])); ?>

So nun kommt aber mein Problem:

Wenn ich meine Daten in der DB ansehen dann sehen die nun wie folgt aus:

INSERT INTO `p_gaestebuch` VALUES (4, 'XXX', 'svenja', 'Hallo', '2005-03-27 16:05:14', 217);

Da wo ich nun das XXX eingetragen habe da steht eben in der DB nichts, da soll aber rein von welchem Profil ich aus den Gästebuch eintrag geamcht habe. Aber dads ist leider nicht der Fall. Wenn ich nun anstat den XXX z.B. Svenja eingebe und dann auf mein Profil klicke und dann auf Gästebuch, dann geht das POPUP auf und es kommt der eintrag aber ich kann ja nicht alles manuell machen das ist ja zu viel arbiet.

Ich hoffe es kann mir jemand helfen. Ach ja die USer werden anhand der Session erkannt.

Gruß Svenja
 
Ich weiss nicht ob es daran liegt, aber Du hast das hier geschrieben:
PHP:
'" . $_SESSION['benutzername'] . "',
                    '" . addslashes($_POST["text"]) . "',
                    '" . addslashes($_POST["user"]) . "',
                    '" . $_SERVER["REMOTE_ADDR"]. "',
Vielleicht hilft es bei der Session-Variable die '' gegen "" zu ersetzen.
Also so:
PHP:
'" . $_SESSION["benutzername"] . "',
                    '" . addslashes($_POST["text"]) . "',
                    '" . addslashes($_POST["user"]) . "',
                    '" . $_SERVER["REMOTE_ADDR"]. "',
 
Hallo,

nee du leider geht das dann auch nicht. Es passiert wieder so dass wie ich gerade geschrieben habe bei USER nichts eingetragen wird. Es leigt ja auch nicht an dem User also der wo das abschickt da wird das richtig eingetragen also mit der Session aber es muss auch noch eingetragen werden woher der User das eingetragen hat, dass man das dann auch wieder ausgeben kann.

Gruß Svenja
 
Hallo,

ich bin z.B. auf einem Profil von Maus ( das ist der Benutzername von dem User ) dann klicke ich auf den Link >> Gästebuch << dann geht das POPUP auf.

Jetzt muss ja in der DB gespeichert werden von welchem Profil aus ich das aufgerufen habe umd später das wieder auszulesen.

Dazu ist die Spalte "user" da in der Spalte "name" wird mein Benutzername gespeichert also mmit der Session.

Verstehst du was ich meine?

Gruß Svenja
 
Probier mal folgende Abfrage:
PHP:
<?php

	[…]

	$sql = "
		INSERT INTO
		        `p_gaestebuch`
		  SET
		        `name`  = '" . $_SESSION['benutzername'] . "',
		        `text`  = '" . mysql_real_escape_string($_POST['text']) . "',
		        `user`  = '" . mysql_real_escape_string($_POST['user']) . "',
		        `ip`    = '" . $_SERVER['REMOTE_ADDR'] . "',
		        `datum` = NOW()
		";

	[…]

?>
 
Wenn ich das richtig sehe wird doch die Variable user mit ueber die URL uebergeben, oder?
Dann musst Du nicht $_POST sondern $_GET nutzen.
 
Zurück