Problem bei Code

cd_brenner

Aktives Mitglied
CODE <?php

session_start (); // Session starten.

if ($_SESSION["user_eingeloggt"]) {

//Variablen sammeln:
//Benutzereingabe:
$smiley=$_GET["smiley"];
$betreff=$_GET["betreff"];
$post=$_GET["post"];
$board=$_GET["board"];
$name=$_SESSION["name"];
$email=$_SESSION["email"];
//Durch PHP erstellte Daten:
$post_id="0";
$pinned="nein";
$datum=date("d.m.Y");
$uhrzeit=date("H:i");
$open="ja";
$status=$_SESSION["status"];
//Verbinde mit Database

mysql_connect("localhost", "xrayserver", "******");
mysql_select_db("xrayserver");

//Eintrag sammeln und Query ausführen

$eintrag="INSERT INTO `forum_posts` (`smiley` , `betreff`, `post`, `board`, `name`, `email`, `name`, `email`, `post_id`, `pinned`, `datum`, `uhrzeit`, `open` , `status` ) VALUES ('$smiley', 'betreff', '$post', '$board', '$name', '$email', '$post_id', '$pinned', '$datum', '$uhrzeit','$open', '$status')";
$eintragen=mysql_query($eintrag);

}

else {

include "loginfehler.php";

}

?>


Wasn da bitte falsch?? es haut ned hin.

THX Markus
 
Könntest du bitte einen kleinen Hinweis auf das Problem bzw. Fehlermeldung geben. Ansonsten wirst du kaum eine vernünfitge Antwort bekommen, weil sich keiner gerne die Mühe macht, in einem Heuhaufen eine Stecknadel zu finden.
 
sorry,

naja, das script will nichts in die angegebene DB eintragen.
In den Tutorials, sagen irgendwie alle was anderes.

Bitte könnte mir jemand erklären wie`s richtig geht, und vor allem welcher schreibstil der Richtige ist.

LG Markus
 
Also dieser Teil:
CODE .. VALUES ('$smiley', 'betreff', '$post', '$board', '$name', '$email', '$post_id', '$pinned', '$datum', '$uhrzeit','$open', '$status')";


Müsste sicher so aussehen:

CODE VALUES ('$smiley', '$betreff', '$post', '$board', '$name', '$email', '$post_id', '$pinned', '$datum', '$uhrzeit','$open', '$status')";


(fehlendes $ vor dem Betreff-Value)

Dann unbedingt die Formulardaten über mysql_escape_string absichern (Wichtig!!)
 
nimm mal die komischen hochkommas raus.. mit denen hatte ich auch schon probleme

`forum_posts` solle eigentlich funktionieren wenn du nur forum_posts schreibst.

Hochkommas sind eigentlich ' oder ". die `gehören nicht hierhin...

könne mich aber täuschen..

gruss und viel glück.

spaceman007
 
Was macht der mysql_escape_string genau, und wo kann ich ihn verwenden. Hab das was du mir gesagst hast mal probiert, besser gesagt bin grad beim probieren.

THX markus
 
Dein Query muss so ausschauen:
CODE $eintrag="INSERT INTO `forum_posts` (smiley , betreff, post, board, name, email, post_id, pinned, datum, uhrzeit, open , status ) VALUES ('$smiley', '$betreff', '$post', '$board', '$name', '$email', '$post_id', '$pinned', '$datum', '$uhrzeit','$open', '$status')";¨



(Felder name und email waren auch 2x definiert.). Bei den Numerischen Werten (Zahlen), brauchts die ' nicht bei den Values. Bei den Spaltennamen eh nicht.

So wie du das momentan vor hast, wird alles was der Benutzer im Formularfeld eingibt, in dein SQL-Query eingebaut. EIn ' im Feld wird dann z.B. einen Fehler auslösen, weil dann im Query eins zuviel ist. Erweitert man den Ansatz, lassen sich sogar ganze Datenbankbefehle einschleusen. Nennt sich dann SQL-Injection ist eine heickle Sache.

Mit dem mysql_escape_string werden alle ' und "" ausmaskiert (Ein \ vorgestellt, damit die Hochkommas keine Funktion haben).

Wird z.B. so angewendet:

CODE $smiley=mysql_escape_string($_GET["smiley"]);
 
Danke funkt.

Eine Frage:

Habe eine Seite mit Frames: Oben und unten unterteilt.

Nach dem Login, sollen beide frames getauscht weden, aber es soll kein neues Fenster geöffnet werden. Ich will einfach aus dem bestehenden Frameset raus und ein neues Frameset benutzten. Wie stell ich das an??
 
Zurück
Oben