Jetzt kostenlos Anmelden!

Raffy

lernt alles kennen

1

Mittwoch, 26. Mai 2010, 02:56

PHPKIT USERNAME im Formular automatisch speichern

Hallo Leute.
Hier hab ich ein kleines Formular erstellt, in dem ein User einen Text speichern kann.
Leider muss der User seinen Namen angeben, was bei vielen Teammitgliedern auch schnell missbraucht werden kann, da man nicht nicht wissen kann, dass auch wirklich der USER Marcel=Marcel ist.

Welchen Code könnte man wo einbauen, dass er aus dem Formularfeld ohne Nickeingabe den Usernick speichert, mit dem er online ist.

Hier ist mein code:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php


if ($checkprofil['spezial_field']="Radiomoderator" or $USER['status']="admin") {

 if (isset($_POST['action'])) $ACTION=$_POST['action'];
 else $ACTION='view';

$userinfo=$DB->fetch_array($DB->query("SELECT * FROM ".$db_tab['user']." WHERE user_id='".intval($USER['id'])."'"));
if ($ACTION==$_POST['save']) {


$DB->query("INSERT INTO ".$db_tab['modwrite']." (modwrite_nick, modwrite_text) VALUES (

'".$_REQUEST['modwrite_nick']."',
'".$_REQUEST['modwrite_text']."')");

header("Location: include.php?path=crew/modwrite/modwrite.php");

}

eval ("\$site_body.=\"".templateinclude("crew/modwrite/modwrite_new")."\";");
}
?>


Vielen Dank für eure Hilfe :)
  • Zum Seitenanfang
  • Zum Seitenende

-=LCL=-|BuLLeT| Männlich

#1.6.1 - still alive #

Beiträge: 1 356

Geschlecht: Männlich

Wohnort: Leipzig

PHPKIT Version: 1.6.1

2

Mittwoch, 26. Mai 2010, 07:16

zunächst einmal brauchst du das $_REQUEST nicht. verwende dazu doch $_POST

zum anderen kannst du für den username $USER['nick'] verwenden. diese variable ist ein globale und wird innerhalb vom phpkit überall erkannt.

im punkto sicherheit würde ich für den eingabetext folgendes verwenden:

htmlentities($_POST['modwrite_text'])

des weiteren:

if ($checkprofil['spezial_field']="Radiomoderator" or $USER['status']="admin"){

woher erkennt er das profilfeld, ohne das es abgefragt wird? ($checkprofil['spezial_field'])
außerdem fehlen bei beiden jeweils ein =
sprich zb:

if ($checkprofil['spezial_field']=="Radiomoderator" || $USER['status']=="admin"){

nächste:

wozu die komplette user tabelle auslesen?
sehe keine einzige verwendete variable im code von dir.


so das wars erstmal :)
  • Zum Seitenanfang
  • Zum Seitenende

Raffy

lernt alles kennen

3

Mittwoch, 26. Mai 2010, 10:54

=)

Danke...
Die Profilabrage ist für bestimmte User gedacht, die im Profil als Status den Namen Radiomoderator haben, leider funktioniert es nur mit einem Fragezeichen.
Usertabelle zum auslesen, dachte ich wäre für die automatische Nickübername.
Werds mal probieren.

Danke dür die Infos
  • Zum Seitenanfang
  • Zum Seitenende

Raffy

lernt alles kennen

4

Mittwoch, 26. Mai 2010, 11:16

=(

Hab den Code nun so geändert, aber nun spreichert er garnichts in die Datenbank =(

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php


if ($checkprofil['spezial_field']="Radiomoderator" or $USER['status']="admin") {

 if (isset($_POST['action'])) $ACTION=$_POST['action'];
 else $ACTION='view';

if ($ACTION==$_POST['save']) {


$DB->query("INSERT INTO ".$db_tab['modwrite']." VALUES (

                    '".htmlentities($_POST['modwrite_text'])."',
                    '".htmlentities($USER['modwrite_nick'])."'
                    )");

header("Location: include.php?path=crew/modwrite/modwrite.php");

}

eval ("\$site_body.=\"".templateinclude("crew/modwrite/modwrite_new")."\";");
}
?>
  • Zum Seitenanfang
  • Zum Seitenende

-=LCL=-|BuLLeT| Männlich

#1.6.1 - still alive #

Beiträge: 1 356

Geschlecht: Männlich

Wohnort: Leipzig

PHPKIT Version: 1.6.1

5

Mittwoch, 26. Mai 2010, 15:28

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
// Abfrage für das Spezial Profilfeld
$checkprofil=$DB->fetch_array($DB->query("SELECT spezial_field FROM ".$db_tab['user']." WHERE user_id='".intval($USER['id'])."'"));

if (getrights(admin) || $checkprofil['spezial_field']=="Radiomoderator") 
{
 if (isset($_POST['action'])) $ACTION=$_POST['action'];
 else $ACTION='view';

if ($ACTION==$_POST['save'])
{
$DB->query("INSERT INTO ".$db_tab['modwrite']." (modwrite_nick, modwrite_text) VALUES (
 '".$USER['nick']."',
 '".htmlentities($_POST['modwrite_text'])."')");

header("Location: ?path=crew/modwrite/modwrite.php");
}
eval ("\$site_body.=\"".templateinclude("crew/modwrite/modwrite_new")."\";");
}
?>
  • Zum Seitenanfang
  • Zum Seitenende

Raffy

lernt alles kennen

6

Mittwoch, 26. Mai 2010, 16:03

wow

Du bist spitze...
Vielen vielen lieben Danke <3
Megafreu... euer Support ist super.
Danke nochmals =)
*Happy* :P
  • Zum Seitenanfang
  • Zum Seitenende