Astratqp: Fehler im Script

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">&nbsp;Fenster Modus&nbsp;</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>

  1. 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

    1. 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...?!?!

      1. 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

        1. 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

          1. 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

            1. 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.

              1. 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

                --
                Es gibt Dinge, die sind sooo falsch, dass nicht einmal das Gegenteil stimmt.