Zurück   klamm-Forum > Virtual World > Programmierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30.03.2011, 13:04:56   #1 (permalink)
Gesperrt

CharlyMaus eine Nachricht über ICQ schicken
Reg: 27.03.2011
Beiträge: 29
CharlyMaus befindet sich auf einem aufstrebenden Ast
Standard PHP Fehler

Hallo,

Ich nutze ein Script um daten in einer DB zu speichern. Da keine Daten gespeichert wurden, habe ich mal am anfang des scripts error_reporting(E_ALL);
eingetragen. Mit folgendem ergebnis:

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Notice: Use of undefined constant projekturl assumed 'projekturl' in /htdocs/user/aktionpopup.php on line 10

Notice
: Use of undefined constant projektname assumed 'projektname' in /htdocs/user/aktionpopup.php on line 11

Notice
: Use of undefined constant adminmail assumed 'adminmail' in /htdocs/user/aktionpopup.php on line 12

Notice
Undefined indexteilgenommen in /htdocs/user/aktionpopup.php on line 17

Notice
Undefined indextext in /htdocs/user/aktionpopup.php on line 18

Notice
: Use of undefined constant id assumed 'id' in /htdocs/user/aktionpopup.php on line 28

Notice
Undefined variablemeldung in /htdocs/user/aktionpopup.php on line 93 
hier das script mit den fehlern:

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
<?php
error_reporting
(E_ALL);




include(
"../include/connect/connect.php");
$projektdatena mysql_query("SELECT * FROM einstellungen");
$projektdaten=mysql_fetch_array($projektdatena);
$projekturl=$projektdaten[projekturl];
$projektname=$projektdaten[projektname];
$projektmail=$projektdaten[adminmail];

$designa mysql_query("SELECT * FROM design");
$design=mysql_fetch_array($designa);

$teilgenommen $_POST['teilgenommen'];
$text=$_POST['text'];

$datum=time();

$aktionsid=$_GET['aktionsid'];
$userid=$_GET['userid'];


$userdaten1=mysql_query("select * from user_daten  WHERE id='$userid'");
$userdaten=mysql_fetch_array($userdaten1);
$subid $userdaten[id];

$userdaten3=mysql_query("select * from user_konten  WHERE username='$userdaten[username]'");
$userdaten2=mysql_fetch_array($userdaten3);

$aktionsdaten1=mysql_query("select * from bonusaktionen  WHERE id='$aktionsid'");
$aktionsdaten=mysql_fetch_array($aktionsdaten1);
?>

<html>
<head>
<title>Bonusaktion teilnahme bestätigen</title>
<link rel="stylesheet" type="text/css" href="<?php echo"$projekturl";?>/css/style.css">

<script language="javascript">
var emptydone=0;
function emptyfield(){
if(emptydone==0){
document.forms.sendform.text.value='';
emptydone=1;
}
}
function waitclose(){
setTimeout('parent.window.close();',6000);
}
</script>

</head>
<body bgcolor="<?php echo"$design[bodycolor]";?>" backround="<?php echo"$design[bodyimg]";?>" onload="foc()" class="popup">
<?php
if($teilgenommen){
if(
$text == ""){$meldung="<center><p><font color=red><b>Sie haben vergessen die Angaben einzutragen!</b></font></center>";
}elseif(
eregi("([<>/=$'#*+&;])"$text)){
$meldung="<center><p><font color=red><b>Die Sonderzeichen </b> < > / = $ ' # * + & ; <b> sind nicht erlaubt!</b></font></center>";
}elseif(
strlen($text)>250){
$meldung="<center><p><font color=red><b>Ihre Angabe ist zu lang, es sind maximal 250 Zeichen erlaubt!</b></font></center>";
}else{
mysql_query("insert into bonusaktionen_teilgenommen (admin,aktionsname,aktionsid,kategorieid,sponsorname,username,userid,kommentar,datum,verguetungsart,verguetung,verguetung2) values ('$aktionsdaten[admin]','$aktionsdaten[name]','$aktionsdaten[id]','$aktionsdaten[kategorieid]','$aktionsdaten[username]','$userdaten[username]','$userid','$text','$datum','$aktionsdaten[verguetungsart]','$aktionsdaten[verguetung]','$aktionsdaten[verguetung2]')");
echo
"
<table border='0' cellspacing='0' cellpadding='0' width='100%' height='100%'>
<tr>
<td align='center' valign='middle'>
<p><font color=green>
Vielen Dank für Ihre Teilnahme an der Bonusaktion <a href='
$aktionsdaten[zielurl]$subid' target='_blank' class='faq'><u>$aktionsdaten[name]</u></b></a>.<br><br><br><br>
Ihre Teilnahme wird <b>innerhalb 1 bis 90 Tagen</b> geprüft und wenn Sie sich an die Regeln und Beschreibung der jeweiligen Bonusaktion gehalten haben wird Ihnen die Vergütung nach erfolgreicher Prüfung Ihrem Account bei 
$projektname gutgeschrieben!
</font>
</td>
</tr>
</table>
"
;
mysql_close();
exit;
}}


echo
"
<table border='0' cellspacing='0' cellpadding='0' width='100%' height='100%'>
<tr>
<td colspan='2'>
$meldung
</td>
</tr>
<tr>
<td align='center'>

<form method='post' action='
$projekturl/user/aktionpopup.php?aktionsid=$aktionsid&userid=$userid' name='sendform'>
<table border='0' width='100%' align='center'>
<tr>
<td>
<p><b><font color='green'>Bonusaktion:</font></b> <a href='
$projekturl/user/bonusaktionen2.php?subid=$userid&aktion=$aktionsid' target='_blank' class='faq'><b><u>$aktionsdaten[name]</u></b></a>
</td>
</tr>
<tr><td><p>&nbsp;</td></tr>
<tr>
<td>
<p><b>
$projektname - UserID: </b>$userid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>$projektname - UserName: </b>$userdaten[username]
</td>
</tr>
<tr><td><p>&nbsp;</td></tr>
<tr>
<td>
<textarea class='textfeld' cols='65' rows='10' name='text' onClick='emptyfield();' onKeyDown='emptyfield();' onKeyUp='emptyfield();'>
Geben Sie hier bitte die 
$aktionsdaten[angabe] ein, mit der Sie sich bei $aktionsdaten[name] angemeldet haben!
</textarea>
</td>
</tr>
<tr><td><p>&nbsp;</td>
<tr>
<td align='center'>
<input type='submit' class='button' name='teilgenommen' value='Ich habe an dieser Bonusaktion teilgenommen'>
</td>
</tr>
</table>
</form>

</td>
</tr>
</table>
"
;
mysql_close();
?>
</body>
Ich hoffe das jemand nen lösungsansatz für mich hat.

mfg
CharlyMaus ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 30.03.2011, 13:24:57   #2 (permalink)
Erfahrener Benutzer

ID: 272843
Lose-Remote

Reg: 01.02.2007
Beiträge: 1.814
marac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehen
Standard

Erstmal fehlen bei den Abfragen der Felder der mysql-Result-Objekte offenbar grundsätzlich die Anführungsstriche.

z.B. $projekturl=$projektdaten[projekturl]; muss sicherlich $projekturl=$projektdaten['projekturl']; heißen. (Das sagt ja auch die erste Fehlermeldung aus: "Ich kenne keine Konstante "projekturl", also nehme ich mal an, du meinst die Zeichenkette "'projekturl'".)
Das gleiche gilt für "projektname", "adminmail" und weiter unten "id".
Dann wird auf POST-Übergaben zugegriffen, ohne vorher zu prüfen, ob es sie überhaupt gibt.

$teilgenommen = $_POST['teilgenommen']; müsste sauber wohl eher if isset($_POST['teilgenommen']) { $teilgenommen = $_POST['teilgenommen']; } else { $teilgenommen = 0; } oder etwas in der Art heißen. Damit sollten einige deiner Fehlerausgaben schon mal beseitigt sein, und man kann sich auf die Meldungen konzentrieren, die übrig bleiben...
Und nun gebe ich ab zur Werbung:
marac ist offline   Mit Zitat antworten
Alt 30.03.2011, 14:14:26   #3 (permalink)
Multitalent
Benutzerbild von joschilein

ID: 9301
Lose-Remote

joschilein eine Nachricht über ICQ schicken
Reg: 05.05.2006
Beiträge: 1.414
joschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehen
Standard

Ich würde dir auch dringend empfehlen das Thema SQL-Injections zu beachten


Heute schon gepixelt
joschilein ist offline   Mit Zitat antworten
Alt 30.03.2011, 15:35:50   #4 (permalink)
XHTML|PHP|SQL|C

ID: 227795
Lose-Remote

Reg: 19.09.2006
Beiträge: 842
Darklord ist ein wunderbarer AnblickDarklord ist ein wunderbarer AnblickDarklord ist ein wunderbarer AnblickDarklord ist ein wunderbarer AnblickDarklord ist ein wunderbarer AnblickDarklord ist ein wunderbarer AnblickDarklord ist ein wunderbarer Anblick
Standard

Damit man nicht gleich "falsches" lernt.
Warum soll ich nicht SELECT * schreiben?
Darklord ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Edit-Fehler: "Jetzt Abstimmen" statt "Speichern" | Layout-Fehler Kesselchen Bug-Report 15 02.11.2009 20:28:23
Schnittstellen-Fehler am EF? (Returncode 1099) "unbekannter Fehler" mephi1982 Bug-Report 5 22.07.2009 03:31:58
(B) 300k Lose pro Fehler! Checkt meine Seite auf Fehler... Adiceltic Lose4Misc 14 12.11.2008 10:49:57
[php/ef] fehler Brom Programmierung 10 27.06.2007 14:45:07


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06:24 Uhr.