SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 03.09.2007, 00:12   #1
TP-Senior
 
Registriert seit: Jul 2007
Ort: Bobingen
Marki87 ist auf einem guten Weg

Formulareingaben "zwischenspeichern"


Hallo zusammen!
Ich bräuchte mal die Hilfe von ein paar alten Hasen und würde eure Meinung zu folgendem Thema wissen wollen:
Ich habe auf meiner Seite ein Formular, mit dem der User Datensätze zu meiner Datenbank hinzufügen kann.
Mal abgesehen davon dass ich versch. Formular-Überprüfen-Eigenschaften mit Dreamweaver eingefügt habe, würde das niemanden daran hindern, riesigen Sch**** in meine DB einzugeben und mich regelrecht mit Müll zu überfluten. Damit rechne ich nicht unbedingt, trotzdem habe ich gelesen, dass man bei so etwas immer vom schlimmsten Fall ausgehen sollte.
Rein von der logischen Seite wäre es toll, wenn ich die von den Usern eingegebenen Datensätze erst irgendwo "zwischenspeichern" könnte, um sie dann mit eigenem Auge zu überprüfen, dass sich nicht jemand einen Spaß erlaubt.
Bei erfolgreicher Prüfung würde ich sie dann "weiterleiten".

Für Anregungen und Vorschläge bin ich euch sehr verbunden!
Danke!
__________________
Herzlichst, euer Markus

http://www.studio-bewertungen.de/
http://www.uni-bewertungen.de/
Marki87 ist offline   Mit Zitat antworten


Alt 03.09.2007, 00:28   #2
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Tabelle der Meinungen um ein Feld erweitern "aktiviert"
Beim posten immer eine 0 rein schreiben lassen.
Nachdem eine Meinung rein kommt, eine Mail an Dich zu Info, in der Administration abfragen was alles eine 0 in "aktiviert" hat und checken, wenn ok, 0 gehen eine 1 updaten, sonst löschen.
Öffentlich werden nur die angezeigt, die eine 1 haben, also ... WHERE `aktiviert` = 1;
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 03.09.2007, 00:39   #3
TP-Senior
 
Registriert seit: Jul 2007
Ort: Bobingen
Marki87 ist auf einem guten Weg
Danke Mark, das Vorgehen habe ich umrissen, werde mich dann ab morgen an die Umsetzung machen (also wird noch die ein oder andere Frage kommen... )
__________________
Herzlichst, euer Markus

http://www.studio-bewertungen.de/
http://www.uni-bewertungen.de/
Marki87 ist offline   Mit Zitat antworten
Alt 11.09.2007, 17:12   #4
TP-Senior
 
Registriert seit: Jul 2007
Ort: Bobingen
Marki87 ist auf einem guten Weg
So, jetzt bin ich gerade dabei, mich an dieses Thema zu machen.
Die "0" wird jetzt reingeschrieben. Nun sollen alle angezeigt werden, die im Feld "aktiviert" eine "1" drinstehen haben.
Dieses wollte ich so lösen:
PHP-Code:
$query_Abfrage_namen "SELECT id, name, plz, ort, aktiviert FROM tbl_studios WHERE aktiviert = '1' AND name LIKE '%".$suche."%' OR plz LIKE '%".$suche."%' OR ort LIKE '%".$suche."%' ORDER BY name ASC"
Allerdings werden mir auch weiterhin alle Namen ausgegeben, also auch die, bei denen "0" steht.
Wo liegt der Fehler??
__________________
Herzlichst, euer Markus

http://www.studio-bewertungen.de/
http://www.uni-bewertungen.de/
Marki87 ist offline   Mit Zitat antworten
Alt 11.09.2007, 17:33   #5
TP-Supporter
 
Registriert seit: Feb 2005
Driver ist auf einem guten Weg
PHP-Code:
$query_Abfrage_namen "SELECT id, name, plz, ort, aktiviert FROM tbl_studios WHERE aktiviert = '1' AND (name LIKE '%".$suche."%' OR plz LIKE '%".$suche."%' OR ort LIKE '%".$suche."%') ORDER BY name ASC"
Das sollte gehen, die Klammer machts.
Driver ist offline   Mit Zitat antworten
Alt 11.09.2007, 17:48   #6
TP-Senior
 
Registriert seit: Jul 2007
Ort: Bobingen
Marki87 ist auf einem guten Weg
Sehr schön, danke, es funktioniert. Nun fehlt nur noch die automatische Mail-Benachrichtigung an mich.
Aber wie schaut die denn aus?
Sie sollte in etwa so lauten:" Neuer Datensatz hinzugefügt"
__________________
Herzlichst, euer Markus

http://www.studio-bewertungen.de/
http://www.uni-bewertungen.de/
Marki87 ist offline   Mit Zitat antworten
Alt 11.09.2007, 20:27   #7
TP-Supporter
 
Registriert seit: Feb 2005
Driver ist auf einem guten Weg
Zitat:
Zitat von Marki87 Beitrag anzeigen
Sehr schön, danke, es funktioniert. Nun fehlt nur noch die automatische Mail-Benachrichtigung an mich.
Aber wie schaut die denn aus?
Sie sollte in etwa so lauten:" Neuer Datensatz hinzugefügt"
http://de.php.net/mail
Driver ist offline   Mit Zitat antworten
Alt 30.09.2007, 17:56   #8
TP-Senior
 
Registriert seit: Jul 2007
Ort: Bobingen
Marki87 ist auf einem guten Weg
So ich habe jetzt folgende Mailfunktion in meinen Code eingesetzt:
PHP-Code:
$nachricht "Neuer Datensatz hinzugefuegt.";
mail('meinemailadresse@example.com''Datensatz'$nachricht); 
Es soll also immer eine Mail an mich geschickt werden, wenn jemand den INSERT INTO Befehl betätigt.
Meine Anfängerfrage also: Wie muss ich obige Codezeile in folgenden Code einbauen, dass auch alles richtig funktioniert?
PHP-Code:
$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO tbl_studios (name, strasse, plz, ort, homepage, telefon, freigeben) VALUES (%s, %s, %s, %s, %s, %s, '1')",
                       
GetSQLValueString($_POST['name'], "text"),
                       
GetSQLValueString($_POST['strasse'], "text"),
                       
GetSQLValueString($_POST['plz'], "text"),
                       
GetSQLValueString($_POST['ort'], "text"),
                       
GetSQLValueString($_POST['homepage'], "text"),
                       
GetSQLValueString($_POST['telefon'], "text"),
                       
GetSQLValueString($_POST['freigeben'], "int"));

  
mysql_select_db($database_Studios$Studios);
  
$Result1 mysql_query($insertSQL$Studios) or die(mysql_error());

  
$insertGoTo "danke_hinzufuegen.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}
?> 
Danke für eure Hilfe
__________________
Herzlichst, euer Markus

http://www.studio-bewertungen.de/
http://www.uni-bewertungen.de/
Marki87 ist offline   Mit Zitat antworten
Alt 30.09.2007, 20:04   #9
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Welchen Sinn macht diese Zeile?
PHP-Code:
$Result1 mysql_query($insertSQL$Studios) or die(mysql_error()); 
Du schreibst doch etwas in die DB und liest nichts aus, also wieso legst Du das Resultat in einer Variablen ab?

Zu deiner Frage...
Unmittelbar nach der Zeile in der Daten der DB hinzugefügt werden fragst Du in einer IF-Anweisung mit mysql_affected_rows ab ob der Eintrag wirklich erfolgreich war. Ist das der Fall verschickst Du deine Mail, andernfalls kannst Du mit einer Fehlermeldung darauf reagieren.
Rizzo ist offline   Mit Zitat antworten
Alt 30.09.2007, 21:15   #10
TP-Senior
 
Registriert seit: Jul 2007
Ort: Bobingen
Marki87 ist auf einem guten Weg
Welchen Sinn diese Zeile hat, musst du DW fragen, als Anfänger habe ich dessen Hilfen schon genutzt, eine PHP-Abfrage zu erstellen. Jedenfalls läufts auch ohne diese Zeile.
Ich habe mithilfe von JavaScript schon eine Formularüberprüfung auf meine Felder gelegt, er meckert also wenn in die Felder gar nichts oder etwas falsches eingegeben wird.
Ist dieser Weg dann deinem gleichwertig oder gibt es da Nachteile?
__________________
Herzlichst, euer Markus

http://www.studio-bewertungen.de/
http://www.uni-bewertungen.de/
Marki87 ist offline   Mit Zitat antworten
Alt 30.09.2007, 21:19   #11
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Javascript ist ungeeignet um Eingaben zu prüfen. Das sollte immer zwingend serverseitig (mit PHP oder einer anderen Scriptsprache) gemacht werden. Javascript lässt sich abschalten, Formulare lassen sich von extern abschicken, wo keine Prüfung stattfindet, usw.

Die Zeile
PHP-Code:
$Result1 mysql_query($insertSQL$Studios) or die(mysql_error()); 
brauchst Du schon, weil das die Zeile ist wo etwas in die DB geschrieben wird. Was Du nicht brauchst ist das "$Result1 =" vornedran, weil das vollkommen sinnfrei da steht.
Rizzo ist offline   Mit Zitat antworten
Alt 30.09.2007, 21:44   #12
TP-Senior
 
Registriert seit: Jul 2007
Ort: Bobingen
Marki87 ist auf einem guten Weg
Na gut, dann werde ich mich mal an die mysql_affected_rows machen, man lernt bei euch eben immer hinzu... vielen Dank für die Tips.
Ist es dann prinzipiell so richtig?
PHP-Code:
$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO tbl_studios (name, strasse, plz, ort, homepage, telefon, freigeben) VALUES (%s, %s, %s, %s, %s, %s, '1')",
                       
GetSQLValueString($_POST['name'], "text"),
                       
GetSQLValueString($_POST['strasse'], "text"),
                       
GetSQLValueString($_POST['plz'], "text"),
                       
GetSQLValueString($_POST['ort'], "text"),
                       
GetSQLValueString($_POST['homepage'], "text"),
                       
GetSQLValueString($_POST['telefon'], "text"),
                       
GetSQLValueString($_POST['freigeben'], "int"));

  
mysql_select_db($database_Studios$Studios);
  
mysql_query($insertSQL$Studios) or die(mysql_error());

$nachricht "Neuer Datensatz hinzugefuegt.";
mail('meinemailadresse@example.com''Datensatz'$nachricht);

  
$insertGoTo "danke_hinzufuegen.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}
?> 
__________________
Herzlichst, euer Markus

http://www.studio-bewertungen.de/
http://www.uni-bewertungen.de/

Geändert von Marki87 (30.09.2007 um 21:50 Uhr).
Marki87 ist offline   Mit Zitat antworten
Alt 30.09.2007, 21:58   #13
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Zitat:
Zitat von Marki87 Beitrag anzeigen
Ist es dann prinzipiell so richtig?
Ja
Rizzo ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Formulareingaben "zwischenspeichern" Formulareingaben "zwischenspeichern"
« Referer für meine User feststellen | Einfache MySQL-Abfrage ind Tabelle »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:31 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
TP-Partner: Computerhilfen.de |