Fehler im Script
Astratqp
- php
1 Dieter Raber0 Astratqp0 Dieter Raber0 Astratqp0 Dieter Raber0 Astratqp
Ich habe versucht ein PHP Script mit HTML Code zu erweitern.
Der HTML und JS Teil geht nun wunderbar. Allerdings funktioniert die
Erstellung der News mit der Bedingung:
if($_POST[do_create_news] == 1)
{
mysql_query("insert into toxic_clan_news (topic,text,time,newsgroup,creater_id,creater_name,comments,artikel) VALUES('$_POST[topic]','$_POST[text]','$time','$newsgroup','$login_id','$login_nick','0','$_POST[artikel]')");
}
if($_POST[do_create_news] == 1) echo"News erfolgreich erstellt";
Das ganze ist darauf zurück zu führen das ich
<form name = "create_news" auch im HTML Teil habe. Entferne ich dieses wieder geht zwar das PHP Script wieder aber mein JS bringt
Fehler da es natürlich mein document "create_news" nicht findet.
Hier das ganze PHP Script ich weis es ist lang (ist nur ein AUSZUG)aber ich weis mir nicht zu helfen:
-----------------------------------------------------------------
<form name = "create_news">
<script language="JavaScript" type="text/javascript" src="modules/wncode.js"></script>
<table width="20" cellpadding="0" cellspacing="0" border="1" style="margin-bottom:3px;" bgcolor="#9D4F00" bordercolor="#C0C0C0"><tr>
<td width="10%"><input type="radio" name="mode" value="0" onclick="savemode(this.value);" id="mode0"%m0check%></td><td width="80%" nowrap><font face="Verdana" size="-1"> Fenster Modus </font></td>
<td class="barbutton"><img src="design/fett.gif" alt="Fett" title="Fett" border="0" onclick="wncode('B','');"></td>
<?
check_login($login_news);
if($_POST[do_create_news] == 1)
{
mysql_query("insert into toxic_clan_news (topic,text,time,newsgroup,creater_id,creater_name,comments,artikel) VALUES('$_POST[topic]','$_POST[text]','$time','$newsgroup','$login_id','$login_nick','0','$_POST[artikel]')");
}
if($_POST[do_create_news] == 1) echo"News erfolgreich erstellt";
if($_POST[do_create_news] != 1) {
echo"
<form name="create_news" action="index.php?ID=create_news" method=POST>
<input name="do_create_news" value="1" type="hidden">
<table cellspacing="1" cellpadding="1" border="0" bordercolor="#074D9B">
<tr>
<td width="110" class="inhalt">Topic:</td>
<td class="inhalt"><input name="topic" value="" size="50" maxlength="45"></td>
</tr>
<tr>
<td width="110" class="inhalt">Text:</td>
<td class="inhalt"><textarea name="text" cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td width="110" class="inhalt">Newsgroup:</td>
<td class="inhalt">
<select name="newsgroup">
<option>news</option>
<option>clanwars</option>
<option>scene</option>
<option>warcraft3</option>
</select>
</td>
</tr>
<tr>
<td width="110" class="inhalt">Artikel</td>
<td class="inhalt"><input name="artikel" value="1" type="checkbox"></td>
</tr>
</table>
<input type="submit" value="News erstellen">
</form>
";
}// do create news != 1
?>
</form>
Hallo Astratqp,
Schalte mal dein error_reporting ein. Sobald das passiert ist, wirst du feststellen, dass dein Script nichts von einer Funktion check_login() in Zeile 11 weiss. Loese das Problem, nur um festzustellen, dass das Script noch weiterhin unzufrieden ist:
Notice: Use of undefined constant do_create_news - assumed 'do_create_news' in F:\htdocs\test.php on line 13
Notice: Undefined index: do_create_news in F:\htdocs\test.php on line 13
Notice: Use of undefined constant do_create_news - assumed 'do_create_news' in F:\htdocs\test.php on line 20
Notice: Undefined index: do_create_news in F:\htdocs\test.php on line 20
Notice: Use of undefined constant do_create_news - assumed 'do_create_news' in F:\htdocs\test.php on line 25
Notice: Undefined index: do_create_news in F:\htdocs\test.php on line 25
Lies nach, warum register_globals = on keine gute Idee ist und bringe dein Script dazu, auch ohne auszukommen. Wenn du dann noch Probleme hast, komm wieder hierher.
Gruß,
Dieter
Danke für die Antwort,
Das ganze ging aber befor ich die HTML Befehle eingebaut hatte wunderbar. Ich denke Das Problem liegt somit nur an der Zeile
<form name ="create_news"></form> entferne ich diese aus dem HTML Teil
geht das PHP Script wieder. Aber wie gesgt das JS nicht, da dieses
ja nach der form creat_news sucht...?!?!
Hallo Astratqp,
Du versuchst, in Zeile 11 check_login($login_news) auszufuehren, eine Funktion, die nicht existiert. Ich kann nur wiederholen, geh meinen Ratschlaegen von vorhin nach, wenn du eine Loesung willst.
Gruß,
Dieter
Natürlich gibt es diese Function. Diese ist nur in einer anderen Datei.
///////////////
//check login//
///////////////
function check_login($var)
{
global $superadmin;
if(($var != 1) && ($superadmin != 1)) die("Keine Berechtigung");
}
Das Problem liegt aber nicht daran, da das Script breits funktionierte. Das Problem liegt an meinem FORM NAME
Hallo Astratqp,
Ich habe das Script, so wie du es gepostet hast, laufen lassen und die bewussten Fehlermeldungen bekommen. Wenn Du Hilfe moechtest, gib bitte alle Informationen weiter, die du hast.
Gruß,
Dieter
Ich kann hier doche keine Ellen lange Scripts Posten.
Es lieht wie ich schon 100x geschrieben habe an dem Eintrag
<form name="create_news">
<?
XXX
XXX
//Auch hier wird nochmal eine
<form name"=create_news">
XXX
XXX
</form>
?>
</form>
Mach ich das form oben wech geht das PHP SCript wieder aber das JS nicht.
Hallo,
Ich kann hier doche keine Ellen lange Scripts Posten.
nee, aber einen Link auf ein Online-Beispiel, das ist meistens das Wirksamste.
<form name="create_news">
<?
XXX
XXX
//Auch hier wird nochmal eine
<form name"=create_news">
XXX
XXX
</form>
?>
</form>
Da haben wir's doch schon: Du kannst keine zwei Formulare verschachteln! Das ist nicht zulässig, ganz zu schweigen davon, dass sie beide denselben Namen haben, was Probleme geben kann, wenn du mit Javascript auf die Formularelemente zugreifen willst. Abgesehen davon: Wo ist das action-Attribut der Formulare? Und du solltest dir auch angewöhnen, PHP-Abschnitte mit <?php einzuleiten und dich nicht darauf zu verlassen, dass short_open_tags aktiviert ist. Das ist nämlich auf vielen Servern nicht der Fall.
So long,
Martin