Michaela Zigler: In MySQL Formulardaten speichern

Hallo!

So nun muß ich mich doch mal wieder an euch wenden, hätte ich nicht hellblonde Haare, würden sie jetzt grau werden ;-)
Habe folgendes Problem:

Habe ein Formular, -diese Daten sollen in eine MySQL Datenbank gespeichert werden, aber ich bekomme immer folgende Meldung:
"" Forbidden ... You don't have permission to access /_BereichJuPu/_Projekte/Der Datensatz konnte leider nicht gepeichert werden. Pruefen Sie Ihre Eingaben und versuchen es noch einmal.<p> on this server. ""

ABER WARUM ??? mann mann, bin ich so unfähig ???

Habe soweit doch alles richtig gemacht, denke ich, aber weis einfach nicht mehr weiter... anbei eine Ausschnitt vom Quellencode:
....
<form name="Projekt anlegen" method="post" action="
<?php {
  include("../_hidden/db_connect2.inc");
  if(@mysql_connect($host, $user, $pwd))
    {
    if(@mysql_select_db($dbname))
      {
      $sql = "INSERT INTO $tblname1 (verfolgungspflichtig, projektnummer, durckdatum, sumession, nachfaßdatum, zuschlagstermin, rückmeldetermin, projektbezeichnung, angebotskreis, angebotsnummer, ablage, wert, auftraggeber, ansprechpartner, telefonnummer) VALUES ("
           . "'$verfolgungspflichtig', "
           . "'$projektnummer', "
           . "'$druckdatum', "
     . "'$submession', "
     . "'$nachfaßdatum', "
     . "'$zuschlagstermin', "
     . "'$rückmeldetermin', "
     . "'$projektbezeichnung', "
     . "'$angebotskreis', "
     . "'$angebotsnummer', "
     . "'$ablage', "
     . "'$wert', "
     . "'$auftraggeber', "
     . "'$ansprechpartner', "
                   . "'$telefonnummer');";
      if(@mysql_query($sql))
        {
        echo "<h1>Eintrag erfolgreich</h1>\n";
        echo "Die neue Kontaktperson <b>$projektnummer $angebotsnummer</b> wurde erfolgreich eingetragen.<p><hr>";
        }
      else
        {
        echo "Der Datensatz konnte leider nicht gepeichert werden. ";
        echo "Pruefen Sie Ihre Eingaben und versuchen es noch einmal.<p>\n";
        }
      } //mysql_select_db()
    else
      echo "<br><i>Verbindung zur Datenbank ist im Moment nicht möglich!</i><br>\n";
    mysql_close();
    } //mysql_connect()
  else
    echo "<br><i>Der Server ist wegen Wartungsarbeiten voruebergehend nicht erreichbar.</i><br>\n";
  }
  ?>
  ">
  <p><strong>Stammdaten:</strong> </p>
  <table width="88%" border="0">
    <tr>
      <td width="34%"><p>Verfolgungspflichtig</p></td>
      <td width="66%"><p>
          <input type="radio" name="verfolgungspflichtig" value="radiobutton">
          ja, ist verfolgungspflichtig (verfolgungspflichtig)</p></td>
    </tr>
....

das ganz wurde auch als .php gespeichert

Vielen dank...

Michaela

  1. Hi, nochmal ein Nachtrag:

    Habe es auch mal so versucht:

    ...
    <form name="Projekt anlegen" method="post" action="/_hidden/PAnlage_DB.php">
      <p><strong>Stammdaten:</strong> </p>
      <table width="88%" border="0">
        <tr>
          <td width="34%"><p>Verfolgungspflichtig</p></td>
          <td width="66%"><p>
              <input type="radio" name="verfolgungspflichtig" value="radiobutton">
              ja, ist verfolgungspflichtig (verfolgungspflichtig)</p></td>
        </tr>
    ...

    Jetzt bekomme ich diese Meldung:
    Forbidden
    You don't have permission to access /_hidden/PAnlage_DB.php on this server.

    Hilfeeeeee.... :-))

    1. Hi!

      Jetzt bekomme ich diese Meldung:
      Forbidden
      You don't have permission to access /_hidden/PAnlage_DB.php on this server.

      Gibt es den Pfad /_hidden/PAnlage_DB.php direkt in Deinem document-root?

      Was passiert wenn Du www.deinserver.de/_hidden/PAnlage_DB.php direkt angibst?

      Grüße
      Andreas

      1. Hallo,

        also soweit habe ich jetzt mal alles nach Anleitung ;-) gemacht, ein Vortschritt...

        aber...
        In diesem php ist wohl nich der Wurm drinnen, den jetzt bekomme ich nur noch folgende Ausgabe im Browser:
        "Der Datensatz konnte leider nicht gepeichert werden. Pruefen Sie Ihre Eingaben und versuchen es noch einmal."
        Die bedeutet doch, daß die Felder nicht gespeichert wurde, oder ???

        wo liegt jetzt darin noch das Problem... Hilfe :-))

        <?php {
          include("../hidden/db_connect2.inc");
          if(@mysql_connect($host, $user, $pwd))
            {
            if(@mysql_select_db($dbname))
              {
              $sql = "INSERT INTO $tblname1 (verfolgungspflichtig, projektnummer, durckdatum, sumession, nachfaßdatum, zuschlagstermin, rückmeldetermin, projektbezeichnung, angebotskreis, angebotsnummer, ablage, wert, auftraggeber, ansprechpartner, telefonnummer) VALUES ("
                   . "'$verfolgungspflichtig', "
                   . "'$projektnummer', "
                   . "'$druckdatum', "
             . "'$submession', "
             . "'$nachfaßdatum', "
             . "'$zuschlagstermin', "
             . "'$rückmeldetermin', "
             . "'$projektbezeichnung', "
             . "'$angebotskreis', "
             . "'$angebotsnummer', "
             . "'$ablage', "
             . "'$wert', "
             . "'$auftraggeber', "
             . "'$ansprechpartner', "
                   . "'$telefonnummer');";
              if(@mysql_query($sql))
                {
                echo "<h1>Eintrag erfolgreich</h1>\n";
                echo "Die neue Kontaktperson <b>$projektnummer $angebotsnummer</b> wurde erfolgreich eingetragen.<p><hr>";
                }
              else
                {
                echo "Der Datensatz konnte leider nicht gepeichert werden. ";
                echo "Pruefen Sie Ihre Eingaben und versuchen es noch einmal.<p>\n";
                }
              } //mysql_select_db()
            else
              echo "<br><i>Verbindung zur Datenbank ist im Moment nicht möglich!</i><br>\n";
            mysql_close();
            } //mysql_connect()
          else
            echo "<br><i>Der Server ist wegen Wartungsarbeiten voruebergehend nicht erreichbar.</i><br>\n";
          }
          ?>

        DANKE... Knut...

        Michaela

        1. Hi!

          aber...
          In diesem php ist wohl nich der Wurm drinnen, den jetzt bekomme ich nur noch folgende Ausgabe im Browser:
          "Der Datensatz konnte leider nicht gepeichert werden. Pruefen Sie Ihre Eingaben und versuchen es noch einmal."
          Die bedeutet doch, daß die Felder nicht gespeichert wurde, oder ???

          wo liegt jetzt darin noch das Problem... Hilfe :-))

          Sorry, aber ein bisschen kannst Du ja auch selbst mal probieren. Gucke Dir an wo die Fehlermeldung herkommt, dann verstehst Du an welcher Stelle das Problem liegt. Ich empfehle schrittweise vorzugehen, mache erstmal ne kleine Datenbank-Abfrage mit PHP, dann schick mal Formulardaten an PHP... bis Du dann am Ende alls zusammen machen kannst.

          • Du solltest mal Variablen ausgeben(echo) um zu sehen ob da auch das drin steht was Du erwartest
          • Du solltest mit if() prüfen ob Daten von einem Formular gesendet wurden bevor Du einen Datenbank-Eintrag durchführst
          • Du sollstest auf Parameter nicht direkt zugreifen, sondern über $_POST[]

          Ich empfehle Dir folgende Seiten:

          http://www.php3.de/manual/de/tutorial.forms.php
          http://www.php3.de/manual/de/language.variables.external.php
          http://php-faq.de/q/q-formular-register-globals.html
          http://de3.php.net/manual/de/security.registerglobals.php
          http://php-faq.de/q/q-mysql-zugriff.html
          http://www.php3.de/manual/de/ref.mysql.php

          Grüße
          Andreas

    2. Halihallo Michaela

      Jetzt bekomme ich diese Meldung:
      Forbidden
      You don't have permission to access /_hidden/PAnlage_DB.php on this server.

      Ich nehme meine vorangegangene Aussage des ersten Absatzes zurück, die war falsch.
      Du hast IMHO irgendwo einen Syntaxfehler. Eine nicht geschlossene Klammer o. ä.

      Viele Grüsse

      Philipp

  2. Halihallo Michaela

    Habe ein Formular, -diese Daten sollen in eine MySQL Datenbank gespeichert werden, aber ich bekomme immer folgende Meldung:
    "" Forbidden ... You don't have permission to access /_BereichJuPu/_Projekte/Der Datensatz konnte leider nicht gepeichert werden. Pruefen Sie Ihre Eingaben und versuchen es noch einmal.<p> on this server. ""

    Das sagt ja alles: You don't have permission. Überprüfe die Einstellungen $host, $user,
    $pwd und vergleiche sie mit den richtigen Informationen. Sind die Einstellungen richtig?
    Nun, da der Fehler erst bei mysql_query kommt, wäre es naheliegender, dass du auf eine
    bestimmte Tabelle o. ä. keinen Zugriff hast. In PHP ist der Fehler auf jeden Fall nicht
    zu suchen.

    <?php {
      include("../_hidden/db_connect2.inc");

    ^^^^^^^^^^^^^^^^^^    ^^^^^

    das ist BÖSE! - .inc kann normalerweise jeder lesen! - In plain/text. Ändere dies besser
    in .php oder konfiguriere den Webserver ggf. so, dass nicht jeder deine .inc's lesen
    kann.

    Viele Grüsse

    Philipp

  3. Hi!

    Habe ein Formular, -diese Daten sollen in eine MySQL Datenbank gespeichert werden, aber ich bekomme immer folgende Meldung:
    "" Forbidden ... You don't have permission to access /_BereichJuPu/_Projekte/Der Datensatz konnte leider nicht gepeichert werden. Pruefen Sie Ihre Eingaben und versuchen es noch einmal.<p> on this server. ""

    ABER WARUM ??? mann mann, bin ich so unfähig ???

    Naja, hast Du Dir mal die Fehlermeldung genau angeguckt, und dann den Code? Findest Du vielleicht einen Teil der Fehlermeldung im Code? Hast Du das Script selbst geschrieben? Wieso fügst Du das PHP-Script in das Formular Action-Attribut ein? Wenn Dein Script aufgerufen wird - was passiert dann? Da Du nicht prüfst ob es sich um ein abgeschicktes Formular handelt, wird sofort das komplette PHP-Script mit insert... ausgeführt. Das scheitert dann, gibt eine Fehlermeldung halt im action-Attribut des form-tags aus(was Du nur merken würdest wenn Du mal aus Spaß in den HTML-Quelltext der Seite in Deinem Browser gucken würdest), und dann schickst Du das Formular ab, und zwar an die Fehlemeldung, wobei der Browser ja denkt dass es ein Dateipfad ist.... daher die Fehlermeldung. Gucke in den HTML-Quelltext!

    Grüße
    Andreas

  4. Hi!

    Du hast gefunden wo die erschienende Fehlermeldung im Code steht? Dann kannst Du an dieser Stelle auch mal mysql_error() ausgeben, darin steht dann auch wieso mysql_query() scheitert. Ohne diese Angabe kann man schlecht wissen wieso mysql Probleme mit der Query hat.

    Grüße
    Andreas