Hilfe! Ich komm grad voll nicht auf mysql klar xDD

raven16

Lieutenant
Registriert
Nov. 2008
Beiträge
580
Code:
<form method="post"><br>
     <input type="text" name="name"><br>Dein Name*<br><br>
     <input type="email" name="email"><br>Deine Email<br><br>
     <textarea name="eintrag" class="gaestebuch"></textarea><br>Deine Grüße*             
     <br>
     <input type="submit" name="valider" value="Eintragen">
</form>

<?php
     $email = $_post["email"];
     $text = $_post["text"];
     $sql= "INSERT INTO gaestebuch (Name,Email,Text)
     VALUES ("$name ","$email ","$text ")";
?>

möchte in dem SQL insert variablen mit einbinden aber irgendwie komme ich grad voll nicht auf die hochzeichen wie " oder ' klar... hab all mögliche variationen ausprobiert !
hoffe ihr könnt mir vll. mal kurz erklären wie ich das schreiben muss und was man bei dem setzen von hochzeichen beachten muss
 
PHP:
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

Mehr dazu hier.
 
Qubit schrieb:
PHP:
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
Mehr dazu hier.

Und mit diesem Code baust du dir 'ne schöne Sicherheitslücke (Stichwort: SQL-Injection)

Besser ist:
PHP:
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES('".mysql_real_escape_string($_POST["firstname"])."',
'".mysql_real_escape_string($_POST["lastname"])."',
'".mysql_real_escape_string($_POST["age"])."')";
 
Zuletzt bearbeitet:
@IceMatrix: Meinst du die hier: ´´?

Die sind nicht notwendig, wenn man die Spalten nicht mit reservierten Wörtern benennt.
 
Das klappt irgendwie immer noch nicht mit dem Datenbank eintrag :(
Vllt. hab ich ja irgendwo einen Fehler eingebaut...
Der macht zwar jetzt keinen Fehler mehr auf der Seite aber dafür passiert auch nix wenn ich etwas eintragen lasse
Hier mal der komplette Text

PHP:
<?php
		$db_server="localhost";
		$db_user="MeinUserName";
		$db_passwort="MeinUserPw";
		$db_name="MeinDatenBankName";
		
		$verbindung = mysql_connect($db_server,$db_user,$db_passwort);
		if(!$verbindung)
			die("Unerreichbarer Server.");
		if (!mysql_select_db($db_name,$verbindung))
			die("Datenbank nicht gefunden.");
	?>	


<div class="boxtitle">Gästebuch</div> 
	
	<table>
	<tr>
	<td>
		<form method="post"><br>
		<input type="text" name="name"><br>Dein Name*<br><br>
		<input type="email" name="email"><br>Deine Email<br><br>
		<textarea name="eintrag" class="gaestebuch"></textarea><br>Deine Grüße*<br><br>
		<br>
		<input type="submit" name="valider" value="Eintragen">
		</form>
		<?php
			$sql="INSERT INTO Persons (Name, Email, Text)
				VALUES('".mysql_real_escape_string($_POST[name])."',
						'".mysql_real_escape_string($_POST[email])."',
						'".mysql_real_escape_string($_POST[text])."')";  
		?>
	</td>	
	<td>
		
	</td>
	</table>



Hoffe ihr könnt mir nochmal weiterhelfen
 
Jo danke.... klappt jetzt
hab das jetzt so gemacht:

PHP:
<table>
	<tr>
	<td>
		<form method="post"><br>
		<input type="text" name="name"><br>Dein Name*<br><br>
		<input type="email" name="email"><br>Deine Email<br><br>
		<textarea name="eintrag" class="gaestebuch"></textarea><br>Deine Grüße*<br><br>
		<br>
		<input type="submit" name="valider" value="Eintragen">
		</form>
		<?php
			$sql="INSERT INTO gaestebuch (Name, Email, Text)
				VALUES('".mysql_real_escape_string($_POST[name])."',
						'".mysql_real_escape_string($_POST[email])."',
						'".mysql_real_escape_string($_POST[eintrag])."')";  
			$result = mysql_query($sql);
			if (!$result) 
			{
				die('SQL Befehl konnte nicht ausgeführt werden. ' . mysql_error());
			}
		?>
	</td>	
	<td>
		
	</td>
	</table>


Wenn ich das jetzt abschicke, dann springt der immer an die obere ende der seite...
kann man sowas auch verhindern? sodass es dann nicht mehr so aussieht, dass der nachn abschicken auf den seitenanfang springt?

wie könnte ich am besten noch das datum und die uhrzeit von dem eintrag speichern?
 
Stimmt, die richtigen Anführungszeichen fehlten.

Ich hab's in meinem Post geändert. In dem Post von Qubit, aus dem ich den Code übernommen hatte, fehlen allerdings auch.
 
Zurück
Oben