[HILFE] standort-script - schreibt nicht in die db

phpMars

Erfahrenes Mitglied
Ich habe ein kleines Standort Script gebastelt. Aber auf einmal schreibt er nicht mehr in die Datenbank.
Da ich mitlerweile völlig verzweifelt bin frage ich euch nach Hilfe.

Kann mir jemand helfen ?


Neuen Standort eintragen:

PHP:
case 1:
/***********************************************************/
/*  Standort hinzufügen									   */
/***********************************************************/
echo ("<form name=\"addlocation\" method=\"post\" action=\"admin.php?view=2&action=4\">");
echo ("<table width=\"75%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">");
  echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">Firmenname: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"firmname\"></td>");
  echo ("</tr>");
  echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">Straße: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"street\"></td>");
  echo ("</tr>");
  echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">PLZ / Zipcode: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"zipcode\"></td>");
  echo ("</tr>");
  echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">Stadt: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"city\"></td>");
  echo ("</tr>");
    echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">Email: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"email\"></td>");
  echo ("</tr>");
  echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">Land: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"land\"></td>");
  echo ("</tr>");
  echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">Telefonnummer: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"telefonnumber\"></td>");
  echo ("</tr>");
    echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">Mobiltelefon: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"mobilephone\"></td>");
  echo ("</tr>");
  echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">Faxnummer: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"faxnumber\"></td>");
  echo ("</tr>");
  echo ("<tr>");
    echo ("<td valign=\"top\" class=\"newslist\">Ansprechpartner: </td>");
    echo ("<td valign=\"top\" class=\"newslist\"><input type=\"text\" name=\"leader\"></td>");
  echo ("</tr>");
  echo ("<tr>");
    echo ("<td colspan=\"2\" valign=\"top\" class=\"newslist\"><input type=\"submit\" name=\"Abschicken\" value=\"Speichern\"><input type=\"reset\" name=\"Löschen\" value=\"L&ouml;schen\"></td>");
  echo ("</tr>");
echo ("</table>");
echo ("</form>");

break;

PHP:
case 4:
/***********************************************************/
/*  Standort speichern									   */
/***********************************************************/
if(mysql_query("INSERT INTO bbk_locations (firmname, street, zipcode, city, land, email, telefonnumber, mobilephone, faxnumber, leader) VALUES ('$firmname', '$street', '$zipcode', '$city', '$land', '$email', '$telefonnumber', '$mobilephone', '$faxnumber', '$leader')")) 
{
	echo "<br>Standort wurde erfolgreich in die Datenbank &uuml;bernommen.";
} 
else {
	echo "<br>".error("Standort konnte nicht in die Datenbank aufgenommen werden!");
}

break;


das funktioniert aus irgendwelchen gründen nicht mehr.

Sieht da jemand einen Fehler ?
 
Zuletzt bearbeitet:
Wird eine Fehlermeldung ausgegeben? Hast du was an deinen Zugangsdaten oder ähnlichem verändert?!
 
Ja, meine Fehlermeldung kommt:

"Standort konnte nicht in die Datenbank aufgenommen werden"


Nein, es wurde nichts an den Zugangsdaten verändert.
In der selben Datei habe ich noch ein case welches aus der selben Tabelle die daten für eine Übersicht ausliest und das funktioniert auch.
Es werden auch alle Datensätze in input Felder (zum editieren) gelesen, aber auch da kann ich sie dann nicht mehr ändern
 
Probier mal Folgendes:
PHP:
<?php

	…

		case 4:
			/***********************************************************/
			/*  Standort speichern                                       */
			/***********************************************************/
			$query = "
				INSERT INTO
				        `bbk_locations`
				  SET
				        `firmname`      = '".mysql_real_escape_string($firmname)."',
				        `street`        = '".mysql_real_escape_string($street)."',
				        `zipcode`       = '".mysql_real_escape_string($zipcode)."',
				        `city`          = '".mysql_real_escape_string($city)."',
				        `lang`          = '".mysql_real_escape_string($land)."',
				        `email`         = '".mysql_real_escape_string($email)."',
				        `telefonnumber` = '".mysql_real_escape_string($telefonnumber)."',
				        `modilephone`   = '".mysql_real_escape_string($mobilephone)."',
				        `faxnumber`     = '".mysql_real_escape_string($faxnumber)."',
				        `leader`        = '".mysql_real_escape_string($leader)."'
				";
			if( mysql_query($query) ) {
				echo '<br>Standort wurde erfolgreich in die Datenbank &uuml;bernommen.';
			} else {
				echo '<br>' . error('Standort konnte nicht in die Datenbank aufgenommen werden!');
			}
		break;

	…

?>
 
Hallo!

phpMars hat gesagt.:
.....Aber auf einmal schreibt er nicht mehr in die Datenbank.....
Dass heisst dass das Script vorher schonmal funktioniert hat?
Kann es evtl. sein dass dein Hoster register_globals=ON auf register_globals=OFF umgestellt hat?
Hört sich für mich schwer danach an..... auslesen funktioniert (SELECT) Aber eintragen/ändern nicht (mehr).
Die Daten werden vom Formular per POST übergeben und eintragen willst Du sie mit $firmname (usw.).
Wenn Du die Variablen also vorher nicht "umschreibst" ( $firname = $_POST['firname']; ) oder direkt im Query anpasst, dann werden die Daten bei register_globals=OFF nicht übergeben.
Und was nicht übergeben wird, wird natürlich auch nicht in die Datenbank eingetragen.

Gruss Dr Dau
 
Hallo, ich hatte auch mal so ein Problem, damals habe ich folgende Lösung gefunden:

Hast du in deiner DB Datentypen int?

Mal Angenommen zipcode hätte den datentyp int müsstest du di Hochkomas weglassen:


Dein Code:
PHP:
("INSERT INTO bbk_locations (firmname, street, zipcode, city, land, email, telefonnumber, mobilephone, faxnumber, leader) VALUES ('$firmname', '$street', '$zipcode', '$city', '$land', '$email', '$telefonnumber', '$mobilephone', '$faxnumber', '$leader')"))

Editierter Code:

PHP:
("INSERT INTO bbk_locations (firmname, street, zipcode, city, land, email, telefonnumber, mobilephone, faxnumber, leader) VALUES ('$firmname', '$street', $zipcode, '$city', '$land', '$email', '$telefonnumber', '$mobilephone', '$faxnumber', '$leader')"))


hoffe du weist was ich damit meine.

Gruss
 
@tschimo

nein habe kein int

meine tabelle sieht so aus:

PHP:
CREATE TABLE `bbk_locations` (
  `firmname` varchar(255) NOT NULL default '',
  `street` varchar(255) NOT NULL default '',
  `zipcode` varchar(255) NOT NULL default '',
  `city` varchar(255) NOT NULL default '',
  `land` varchar(255) NOT NULL default '',
  `telefonnumber` varchar(255) NOT NULL default '',
  `faxnumber` varchar(255) NOT NULL default '',
  `leader` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`firmname`)
) TYPE=MyISAM;

@Gumbo

habe deine version mal benutzt, scheint aber auch nicht zu funktionieren.

register_global sind auf ON
 
Zuletzt bearbeitet:
@Gumbo

Wenn ich deine Version nehme erscheint bei mir folgender Fehler:

Fatal error: Call to undefined function: mysql_real_escape_string()
 
Danke, bekomme die Fehlermeldung nichtmehr, aber funktionieren tut es immer noch nicht.

Ich bin verzweifelt und hab kein Plan was ich machen soll.

[edit]

Ok hab meinen Fehler gefunden!
 
Zuletzt bearbeitet:
Zurück