• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Username abfragen und in DB eintragen ?

maria1

Mitglied
Hy,

Ich lerne seit ca. 3 Monaten PHP und komme nun nicht weiter..

Ich hab ein Login Script mit MYSQL und Session's....

Nunja, nun hab ich ein formular mit dem ein User was eintragen kann in die DB.
Zwingend notwendig ist es allerdings das der Username auch in die DB gepostet wird.

Als beispiel, ich kann den Usernamen auslesen zb so..

PHP:
if($_SESSION['username']) 
 
 
 
 
echo " 
Welcome, ".$_SESSION['username']."! <a href='logout.php'>Logout</a><br /> 
";

Nun, wie schaff ich es das er in die DB eingetragen wird wenn jemand einen artikel einsendet ?

Hier mein derzeitiger versuch...

PHP:
<?php
session_start();
error_reporting(0); 
if($_SESSION['username']) 
 
 
 
 
echo ""; 
 





//Variablen zuweisen
$bezeichnung = $_POST["bezeichnung"];
$kategorie = $_POST["kategorie"];
$zustand = $_POST["zustand"];
$tauschpreis= $_POST["tauschpreis"];
$beschreibung = $_POST["beschreibung"];
$username = $_GET["".$_SESSION['username'].""];

if (($bezeichnung == "") OR ($kategorie == "") OR($zustand == "")) {
        echo "Fehler: Eintrag unvollständig.";
        die; 
}

//Verbindung herstellen
include ('mysql.php');

//Daten in DB speichern
$sql_befehl = mysql_query("INSERT INTO artikel (bezeichnung,kategorie,zustand,tauschpreis,beschreibung,username) VALUES ('".$_POST['bezeichnung']."','".$_POST['kategorie']."','".$_POST['zustand']."','".$_POST['tauschpreis']."','".$_POST['beschreibung']."','".$_POST['$username']."')");

if($sql_befehl)
{ echo "Ihr Eintrag wurde hinzugefügt.".$_SESSION['username'].""; }

//Verbindung beenden
mysql_close($connect); 





?>

Keine fehlermeldung, alles wird auch in die DB eingtragen nur der Username nicht :(

Jemand ne Idee ?
 
Werbung:
Diese Zeile macht keinen Sinn:
PHP:
$username = $_GET["".$_SESSION['username'].""];
So wäre es richtig:
PHP:
$username = $_SESSION['username']

Im MySQL Query verwendest du aufeinmal $_POST['username']. Woher kommt denn diese Variable? Wieso verwendest du die POST-Variablen, obwohl du ein paar Zeilen vorher das machst:

PHP:
$bezeichnung = $_POST["bezeichnung"];
$kategorie = $_POST["kategorie"];
$zustand = $_POST["zustand"];
$tauschpreis= $_POST["tauschpreis"];
$beschreibung = $_POST["beschreibung"];
$username = $_SESSION['username']

So müsste der Code gehen:

PHP:
$sql_befehl = mysql_query("INSERT INTO `artikel` (`bezeichnung`, `kategorie`, `zustand`, `tauschpreis`, `beschreibung`, `username`) VALUES ('".$bezeichnung."', '".$kategorie."', '".$zustand."', '".$tauschpreis."', '".$beschreibung."', '"$username."')");
(Ich hoffe ich hab mich nicht vertippt)

Die Daten sind außerdem nicht ausreichend validiert. Ist $tauschpreis wirklich eine Zahl? Existiert $kategorie?

Tutorials | PHP : Sicherheit | SQL Injections vermeiden
 
Werbung:
Parse error: syntax error, unexpected T_VARIABLE in /opt/lampp/htdocs/boerse/eintragen_send.php on line 31

PHP:
<?php
session_start();
 
 
 
 
 
 





//Variablen zuweisen
$bezeichnung = $_POST["bezeichnung"];
$kategorie = $_POST["kategorie"];
$zustand = $_POST["zustand"];
$tauschpreis= $_POST["tauschpreis"];
$beschreibung = $_POST["beschreibung"];
$username = $_SESSION['username'];  

if (($bezeichnung == "") OR ($kategorie == "") OR($zustand == "")) {
        echo "Fehler: Eintrag unvollständig.";
        die; 
}

//Verbindung herstellen
include ('mysql.php');

//Daten in DB speichern
$sql_befehl = mysql_query("INSERT INTO `artikel` (`bezeichnung`, `kategorie`, `zustand`, `tauschpreis`, `beschreibung`, `username`) VALUES ('".$bezeichnung."', '".$kategorie."', '".$zustand."', '".$tauschpreis."', '".$beschreibung."', '"$username."')");  
if($sql_befehl)
{ echo "Ihr Eintrag wurde hinzugefügt."; }

//Verbindung beenden
mysql_close($connect); 





?>


$kategorie exestiert ja, $tauschpreis ist eine Zahl ja .

Hmm ...
 
Werbung:
Zurück
Oben