mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: So 28.04.2024 16:13 Benutzername: Passwort: Auto-Login

Thema: PHP/MySQL Postleitzahlensuche vom 13.06.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP/MySQL Postleitzahlensuche
Seite: Zurück  1, 2, 3, 4
Autor Nachricht
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Do 14.06.2007 01:42
Titel

Antworten mit Zitat Zum Seitenanfang

OK. Das Problem scheint an den Quotes zu liegen.
Das sollte dann ja schnell behoben sein...

Code:
$sql_statement = "SELECT * FROM tabellenname WHERE plz = '". $_POST['plz'] . "'"; // SQL Abfrage

Aber das ist doch wohl nicht der Originalcode, der den Fehler verursacht, oder?
Deine Tabelle heißt doch wohl nicht wirklich "tabellenname", oder etwa doch?

Und dann fallen mir noch zwei Dinge an dieser Abfrage auf.

Das erste ist:
In keinem Fall darf dieser Code so genutzt werden!
Das ist ganz gefährlich.

Damit wäre es möglich, die Datenbank per SQL-Injection anzugreifen.
Nie, nie, niemals darf man Werte, die von außen kommen, ungeprüft in seine Abfragen einzubauen.

Wenn man Werte in ein SQL-Statement einbaut, dann müssen diese beispielsweise mit mysql_real_escape_string() behnadelt werden, um möglichen SQL-Code unschädlich zu machen.

Code:
$sql_statement = "SELECT * FROM tabellenname WHERE plz = '". mysql_real_escape_string( $_POST['plz'] ) . "'"; // SQL Abfrage


Auch bei anderen Dingen muß man aufpassen. Mailformulare könnten z.B. ganz schnell zu Spamschleudern werden, wenn man die übergebenen Werte nicht korrekt prüft und ggf. bereinigt.
Hier wären Zeilenumbrüche das worauf man aufpassen muß, weil damit Mail-Header-Zeilen voneinander abgetrennt werden und man somit beim Absender, Empfänger, ... ungewollte Header übergeben könnte.

Und auch bei Seiten, wo man statt Frames mit der include()-Funktion arbeitet, muß man aufpassen, daß nicht eventuell ungewollte Werte per URL übergeben werden und somit falsche Dateien eingebunden werden.

Da gibt es viele Möglichkeiten, wie man Schaden anrichten kann...
Alle Werte, die von außen an ein Script übergeben werden, müssen grundsätzlich als "böse" angesehen werden.
Diese Werte müssen immer geprüft und gegebenenfalls bereinigt werden!


Und als zweites wäre noch anzumerken, daß man nicht SELECT * schreiben sollte.
Es ist besser, wie einzelnen Spalten aufzuführen.
Siehe dazu die FAQ der Newsgroups de.comp.lang.php.*:
Warum soll ich nicht SELECT * schreiben?


Zuletzt bearbeitet von rob am Do 14.06.2007 01:46, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
matuweb
Threadersteller

Dabei seit: 25.03.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 14.06.2007 08:42
Titel

Antworten mit Zitat Zum Seitenanfang

danke für die antworten!

ich sitz gerade auf der arbeit und kann die vorschläge nicht umsetzen, werd es aber sofort heut abend ausprobieren.

der code, den ich benutzt habe ist auf seite 2.

ich habe daraufhin die datenabnk plz angelegt und den tabellennamen adressen mit 8 spalten angelegt (die erste spalte habe ich id genannt, INT, auto increasment und als primärschlüssel, so ok???).
  View user's profile Private Nachricht senden
Anzeige
Anzeige
matuweb
Threadersteller

Dabei seit: 25.03.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 14.06.2007 21:07
Titel

Antworten mit Zitat Zum Seitenanfang

HAMMER!!!

es hat funktioniert, er spuckt mir die werte aus, vielen dank für eure hilfe.


bei falscher oder keiner eingabe soll eine hinweismeldung unterhalb des eingabefeldes erscheinen, wie bau ich das ein?


Zuletzt bearbeitet von matuweb am Do 14.06.2007 22:05, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Zeithase

Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht: Männlich
Verfasst Fr 15.06.2007 01:06
Titel

Antworten mit Zitat Zum Seitenanfang

matuweb hat geschrieben:
wie bau ich das ein?


Amazon.de: Suche nach PHP + MySQL. Ich glaube, das ist sinnvoller, als Dir staendig Tipps zu geben. Das ist jetzt nicht boese gemeint -- aber so ganz ohne Wissen ist das ziemlich gefaehrlich. Vorallem, wenn Du Dich nur auf Code von Anderen verlaesst, ohne zu wissen, was er tut.
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Fr 15.06.2007 01:26
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
bei falscher oder keiner eingabe soll eine hinweismeldung unterhalb des eingabefeldes erscheinen, wie bau ich das ein?

Du erzeugst eine Variable für deinen Fehlertext.
Du machst eine if-Abfrage, welche Werte übergeben wurden.
Je nachdem, was dort rauskommt, schreibst du eine Fehlermeldung in eine Variable.
Später prüfst du dann, ob diese Variable nicht leer ist und gibst in diesem Fall dann den Inhalt aus.

Code:

<?php
$errMsg = '';
if ( trim( $_POST['eingabefeld'] ) == '' )
{
   $errMsg = "Fehler. Sie haben nichts eingegeben.";
}
?>

Code:
<div>
   Hier steht irgendwas.
</div>
<div>
   Hier ist dein Formular.
   <form name="" action="" method="">
      ...
   </form>
</div>
<div>
   Hier soll vielleicht deine Fehlermeldung hin.
   <?php
   if ( !empty( $errMsg ) )
   {
      echo $errMsg;
   }
   ?>
</div>


So könnte man das prinzipiell angehen.

Aber ich denke, es wäre wirklich besser, wenn du dich (wie Zeithase bereits empfohlen hat) mehr mit der Thematik befassen würdest.
Es gibt viele Leute, die eigentlich keine Ahnung vom Programmieren haben, dann aber trotzdem Scripte für ihre Websites schreiben und damit, ohne es zu wissen, große Sicherheitslöcher reissen.
Ich habe ja auch bereits darauf hingewiesen, daß der Code dieser SQL-Abfrage mehr als fahrlässig ist.
Damit wäre es möglich, durch eine SQL-Injection, beliebigen SQL-Code auszuführen (Datenbanken leeren oder evtl. löschen, Datensätze ändern, usw.).
  View user's profile Private Nachricht senden
aUDIOfREAK

Dabei seit: 04.04.2002
Ort: Ansbach
Alter: 44
Geschlecht: Männlich
Verfasst Fr 15.06.2007 08:29
Titel

Antworten mit Zitat Zum Seitenanfang

kleiner buchtipp von mir:
http://www.amazon.de/PHP-MySQL-Kevin-Yank/dp/3898641988

das is für absolute anfänger - ich habs damals auch benutzt und war recht begeistert. es verschafft dir sehr praxisnah nen überblick über php und mysql und nach dem buch kannst du die essenziellen dinge. das ding is zudem kein riesen schinken und es macht spaß es durchzulesen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
matuweb
Threadersteller

Dabei seit: 25.03.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 15.06.2007 09:14
Titel

Antworten mit Zitat Zum Seitenanfang

ok, vielen dank.

ich werd mir das buch mal zulegen und fleißig lernen, damit ich in zukunft auch den "ichhabkeineahnunghelftmirschreibern" im forum helfen kann.
  View user's profile Private Nachricht senden
 
Ähnliche Themen [PHP + mySQL] Kann Fehler in einer mySQL-Phrase nicht finden
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
[MySql]Lost connection to MySQL server during query
[PHP / MySQL] MySQL-Funktion gesucht: letzteÄnderungTabelle
BLOB in mysql per php oder mysql einfügen
[php / mysql] Mysql Daten in php als Link ausgeben
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3, 4
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.