PHP Fehler

CharlyMaus

Gesperrt
27 März 2011
29
1
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:
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 index: teilgenommen in /htdocs/user/aktionpopup.php on line 17

Notice: Undefined index: text 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 variable: meldung in /htdocs/user/aktionpopup.php on line 93

hier das script mit den fehlern:

PHP:
<?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> </td></tr>
<tr>
<td>
<p><b>$projektname - UserID: </b>$userid     <b>$projektname - UserName: </b>$userdaten[username]
</td>
</tr>
<tr><td><p> </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> </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
 
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...