Wo muss ich hier den Fehler suchen

son gohan

Erfahrenes Mitglied
Hi, ich hab mir da ein simples Script geschrieben womit ich eine Linkliste mit Mysql Datenbank realisiere.

Das ganze funktioniert auch Fehlerfrei unter meinm lokalen Server (XMAPP), doch wenn ich das auf mein Webserver von evanzo.de ausprobiere bekomme ich keine Datensätze in die Tabelle rein und ich weis deswegen nicht wo ich nach ein Fehler suchen soll, weil es ja lokal läuft. Ich nehme an bei evanzo.de benutzen die auch schon php 4.0 oder woran es sonst liegen sollte.

Mein Script sieht zumindest so aus:

PHP:
<?php

   if ($gesendet)
   {
      $sqlab = "insert linkliste";
      $sqlab .= "(name, url, beschr, email, katg, ip, datum)";
      $sqlab .= " values ";
      $sqlab .= "('$name','$url','$beschr','$email','$katg',
      '" . $_SERVER["REMOTE_ADDR"]. "', NOW()  )";

      echo mysql_error();

      mysql_db_query("DB68640", $sqlab);
      $num = mysql_affected_rows();
      if ($num>0)
      {
         echo "<span class=\"stro\">Ihr Eintrag wurde hinzugef&uuml;gt</span>";
         }
      else
      {
         echo "Es ist ein <span class=\"stro\">Fehler</span> aufgetreten, ";
         echo "<span class=\"stro\">es wurde kein Datensatz</span> hinzugef&uuml;gt, der Datensatz ist m&ouml;glicherweise schon vorhanden.";  //Wenn abgeschickt wird und Eintrag schon vorhanden ist.
      }
   }
   if ($gesendet && $num == 0)  //Wenn einfach so abgeschickt wird oder ein Feld fehlt
{
         echo "<span class=\"stro\">Fehlgeschlagen !</span> Sie haben vergessen ein Feld auszuf&uuml;llen. Bitte f&uuml;llen Sie alle Felder aus und vermeiden Spam, Ihre IP Adresse wird zu unserer Sicherheit mit gespeichert";
      }
?>

Das mysql_connent findet immer ganz oben am Anfang der Seite start. Ich bekomme immer die Meldung Fehlgeschlagen, falls nötig hier auch noch das HTML zum Script, beide sind in der selben Datei integriet.

PHP:
<form method="post" class="padu" action="<?php echo $_SERVER['PHP_SELF']; ?>#berti">
          <table id="links_tab">
          <tr>
          <td class="weniger">Titel</td>
          <td>
          <input class="links_inp" name="name" type="text" />
          </td>
          </tr>
          <tr>
          <td class="weniger" title="Hyperlink">URL</td>
          <td>
          <input class="links_inp" name="url" type="text" value="http://" />
          </td>
          </tr>
          <tr>
          <td class="weniger">Beschreibung</td>
          <td>
          <input class="links_inp" name="beschr" type="text" />
          </td>
          </tr>
          <tr>
          <td class="weniger">E-Mail</td>
          <td>
          <input class="links_inp" name="email" type="text" />
          </td>
          </tr>
          <tr>
          <td class="weniger">Rubrik auswählen</td>
          <td>
<select id="links_select" name="katg"><option value="Auto und Motor">Auto und Motor</option><option value="B_cher und Medien">Bücher und Medien</option><option value="Computer und Zubeh_r">Computer und Zubehör</option><option value="Essen, Trinken und Genuss">Essen, Trinken und Genuss</option><option value="Gesundheit und Wellness">Gesundheit und Wellness</option><option value="Hifi, Elektronik und Foto">Hifi, Elektronik und Foto</option><option value="Haus und Garten">Haus und Garten </option><option value="Mode und Accessoires">Mode und Accessoires</option><option value="Kind und Baby">Kind und Baby</option><option value="Musik und Film">Musik und Film</option><option value="Reise und Urlaub">Reise und Urlaub</option><option value="Sport und Freizeit">Sport und Freizeit</option><option value="Telekommunikation">Telekommunikation</option><option value="Verschiednes">Verschiednes</option></select>
          </td>
          </tr>
          <tr>
          <td>&nbsp;</td>
          <td>
          <input class="pado" name="gesendet" type="submit" value="Eintragen" title="<?php echo $titmenu_2; ?>" />
          <input type="reset" value="Zurücksetzen" />
          </td>
          </tr>
          </table>
</form>

Ich weis nicht wo ich nach einem Fehler suchen soll, da es lokal läuft über mein XMAPP Server.
 
Wo kommen die Daten für die Abfrage her? Sind sie bereits validiert und entsprechend präpariert? Gibt es eine Fehlermeldung von Seiten PHPs?
Ein paar mehr Informationen wäre hilfreich.
 
Hallo, Fehlermeldungen und des gleichen kommen keine von PHP ausser die eigens eingebaute Fehlermeldung wenn mysql_affected_rows(); kleiner gleich null ist, also nicht hinzugefügt wurde.

@forsterm wo kann ich das nachschauen mit den Register Globals?
 
Hallo, ich konnte es eben beides nachprüfen, register globals ist bei beiden Servern auf on.

Hm, woran könnte es noch liegen, immerhin funkt es ja unter XMAPP ohne Fehlermeldung und unter dem Webserver klappt es einfach nicht, es kommt aber auch keine Fehlermeldung.
 
[…] wo kann ich das nachschauen mit den Register Globals?
Bei PHP-bezogenen Fragen sollte dein erster Blick ins PHP-Handbuch folgen.

Es gibt bestimmt Fehlermeldungen, nur sie werden unterdrückt. Setze mal die Fehlersensibilität PHPs höher:
PHP:
<?php

	ini_set('display_errors', 1);
	ini_set('error_reporting', E_ALL);

	…

?>

Allgemein sollten Skripte untern den schärfsten und strengsten Einstellungen geschrieben werden. Dies kann gewährleistet, dass das Skript auch mit den unterschiedlichensten PHP- und Webserver-Einstellungen läuft. Dennis Wronka hat dazu einmal ein paar Einstellungsrichtlinien zum PHP-Contest vorgeschlagen, die auch im alltäglichen Einsatz hilfreich sind.
 
Hi, wenn ich die von dir vorgeschlagenen Fehlermeldungen einbaue, dann bekomme ich zwei Angaben:

erste lautet:
Notice: Undefined index: sitestyle in C:\Dokumente und Einstellungen\\Eigene Dateien\includ\elf.html on line 2

und die Zeile sieht dort so aus:
PHP:
if ($_COOKIE['sitestyle'] == 'different')

im ganzen so:
PHP:
<?php
if ($_COOKIE['sitestyle'] == 'different')
{
echo "<div id=\"head_2\">";
}
else
{
echo "";
}
?>

Das ganze hat etwas mit einem Style Switcher zu tun.

Die zweite Meldung sieht genau wie die erste aus und verweist auf ein gleiches Script meines Style Switchers.

edit: ich bekomme noch folgende Fehlermeldung für jede einzelne Variable des Formulares:

Notice: Undefined variable: name in C:\Dokumente und Einstellungen\\Eigene Dateien\linkliste_eintragen.html on line 90
ich erspare mir jetzt mal jede Meldung zu wiederholen, wie gesagt bekomme ich die Meldung für jede Variable. Was ist da falsch dran.
 
Zuletzt bearbeitet:
Kleine Frage zu dem Script oben: Was bringt es, wenn man die mögliche MYSQL-Fehlermeldung vor der Ausführung des Querys ausgibt?
 
@fanste, sorry aber ich habe das ganze so selbst zusammengebaut und fand es auch logisch, ich bin halt noch so ein hoby programierer

@gumbo, ich habe oft das Problem von notice Meldungen das irgendeine Variable nicht definierd ist, obwohl sie es ist, nur wird sie includiert.

Ansonsten muss ich noch mal drüber nachdenken, ob ich das ganze nicht besser neu programmiere.
 
Zurück