2017-03-27 2 views
-1

Ich habe ein Formular erstellt und möchte die Daten in meine Datenbank eingefügt, um den Benutzer, der auf meiner Website angemeldet ist, zu attache. Ich habe diese Form verwendet:Joomla Benutzer einfügen in mysql

<form action="/index.php?option=com_content&view=article&id=41" method="post"> 

<input type="hidden" name="username" id="username" value="username"> 

<input type="radio" name="k1" id="k1" value="1">1<input type="radio" name="k1" value="X">X<input type="radio" name="k1" value="2">2<br /> 

<input type="text" name="k1r" id="k1r"> 

<div> 

<p style="float:left; width:14%; margin-right:2%; background:#eee; color:black; border:1px solid #ccc; padding:10px"><input type="submit" value="Add Records"></p> 

</div> 

</form> 

Ant die 'Aktion' würde diesen Code erhalten:

// Check connection 
if($mysqli === false){ 
die("ERROR: Could not connect. " . $mysqli->connect_error); 
} 

// Escape user inputs for security 

$username = $mysqli->real_escape_string($_SESSION['username']); 

$k1 = $mysqli->real_escape_string($_POST['k1']); 
$k1r = $mysqli->real_escape_string($_POST['k1r']); 

// attempt insert query execution 
$sql = "INSERT INTO kampbs(username, k1, k1r) VALUES('$user', '$k1', '$k1r')"; 

if($mysqli->query($sql) === true){ 
echo "Records inserted successfully."; 
} else{ 
echo "ERROR: Could not able to execute $sql. " . $mysqli->error; 
} 


// Close connection 
$mysqli->close(); 
?> 

Die Formdaten, wie sie eingesetzt soll, aber im Feld 'Benutzername' in In der Datenbank heißt es "JUser". Was soll ich tun, um den Login-Benutzernamen zu erhalten (sollte der Benutzername 'DJ' gewesen sein).

+0

'$ sql =" INSERT in kampbs (Benutzername, k1, k1r) VALUES ('$ user', '$ k1', '$ k1r') ";' in diesem sollten Sie '$ username' stattdessen verwenden von '$ user', denn Sie speichern den Benutzernamen in diesem' $ username'. – Bhaskar

+0

@Bhaskar Wow, blöd mich :) Aber wenn ich das mache, ist das Feld "Benutzername" in MySQL leer? –

+0

ein anderer Punkt, wenn Sie Benutzername Wert aus Sitzung abrufen, warum verwenden Sie verstecktes Feld? – Bhaskar

Antwort

0

Ich tat es jetzt tatsächlich, dank @Bhaskar 's Link. Joomla bekam seine eigene Art und Weise Benutzer-Informationen abzurufen:

$user = JFactory::getUser(); 

Danach machte ich die Variable:

$username = $user->username; 

Und endlich ich gerade eingefügt in die $ sql wie:

$sql = "INSERT INTO kampbs(username, k1, k1r) VALUES('$username', '$k1', '$k1r')"; 

Das hat es geschafft! :)