mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 09:00 Benutzername: Passwort: Auto-Login

Thema: PHP MYSQL Signaturenformular vom 08.04.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP MYSQL Signaturenformular
Seite: 1, 2  Weiter
Autor Nachricht
Sulak10
Threadersteller

Dabei seit: 08.04.2010
Ort: -
Alter: 33
Geschlecht: Männlich
Verfasst Do 08.04.2010 13:37
Titel

PHP MYSQL Signaturenformular

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen *zwinker*

Ich bin Neueinsteiger in PHP und MYSQL *bäh*

Ich bin grade dabei als Projekt für meine Firma ein Tool über PHP und Mysql zu basteln, welches Emailsignaturen generiert.
Soweit habe ich schon alles und es klappt auch alles.

-Eintragen in die Datenbank
-Auslesen der Stammdaten
-Auslesen des Signaturenquelltextes (welcher auch in der Datenbank hinterlegt ist) mit den Stammdaten an der richtigen Stelle.

PROBLEM IST:
Nicht jede Signatur sieht gleich aus, manche Leute haben ihre private Festnetz/Faxnummer oder Handynummer hinterlegt, manche nicht.

Ich will gerne, dass das PHP Script die Datenbank auf die Einträge prüft und so entscheidet, welcher Quellcode ausgegeben wird.

Beim Anlegen der Benutzer füllt man ein Formular aus, das für alle gleich aussieht. Wer keine Handy/Festnetz/Faxnummer besitzt bekommt die Bezeichnung "NEIN" o.ä. eingetragen.

Beim Auslesen des Quellcodes mit den Stammdaten fülle ich wieder ein Formular aus, indem ich die eindeutige Identifikation des Mitarbeiters (bei mir die Emailadresse) angebe.
Das Formular überprüft die Datenbank auf die Mailadresse und gibt den Quellcode mit den Stammdaten aus.

form5.php
Code:
<html>
<head>
<title>Notessignatur</title>
<LINK REL="SHORTCUT ICON" HREF="/Images/Favicon.ico">
<link rel="stylesheet" type="text/css" href="css/Style.css">
</head>
<body>



<?php
$con = mysql_connect("localhost","Benutzer","Passwort");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("Datenbank", $con);

$result = mysql_query("SELECT * FROM Tabelle
WHERE Email='$_POST[Email]'");

while($row = mysql_fetch_array($result))
  {
  echo " " . $row['Abschnitt1'] . "" . $row['TelDW'] . "<br> " . $row['Abschnitt2'] . "" . $row['HeimTel'] . "<br> " . $row['Abschnitt3'] . "" . $row['Mobil'] . "<br> " . $row['Abschnitt4'] . "" . $row['FaxDW'] . "<br> " . $row['Abschnitt5'] . "" . $row['HeimFax'] . "<br>" . $row['Abschnitt6'] . "" . $row['Email'] . "" . $row['Abschnitt7'] . "" . $row['Email'] . "<br> " . $row['Abschnitt8'] . "</b>";
  echo "<br />";
  }
?>

</body>
</html>


(Abschnitt1 z.B. gibt jeweils die Passage aus dem Quellcode aus, TelDW z.B. gibt die Stammdate Telefon-Durchwahl aus)

Wie muss ich diesen Code erweitern, dass das Script aussucht, welchen Quellcode es braucht?

Es ist ein bisschen schwer es zu erklären, ich hoffe ihr versteht trotzdem wie ich es meine.

Ich würde mich auf eure Antworten freuen, bei Fragen, fragt mich Lächel

Lg Sulak10
  View user's profile Private Nachricht senden
Kash

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 08.04.2010 13:55
Titel

Antworten mit Zitat Zum Seitenanfang

Frag doch ab ob bestimmte Tabellenfelder den Default Wert haben oder nicht.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Sulak10
Threadersteller

Dabei seit: 08.04.2010
Ort: -
Alter: 33
Geschlecht: Männlich
Verfasst Do 08.04.2010 15:28
Titel

Antworten mit Zitat Zum Seitenanfang

Leider hab ich nicht so viel Ahnung, weil ich erst neu in der Materie bin .. ich konnte das ganze auch nur mit Hilfe von Foren etc. programmieren und mir viele Sachen denken.

Aber wie man das macht, da bin ich überfragt.
Hab auch schon viel gesucht, bin leider zu keiner Antwort gekommen *Schnief*

Kannst du mir vllt für einen Anfänger (Grins) erklären, wie ich das machen kann?


Edit: Bzw kannst du mir erstmal sagen, was der Default Wert ist *zwinker* Hab es schon oft gehört, aber ich kann mir nicht viel drunter vorstellen.

Hab nachgelesen, dass man den Defaultwert mit PHPmyAdmin editieren kann .. hilft mir aber nicht viel weiter, weil ich auch dann nicht wüsste, was ich da mache ..


Zuletzt bearbeitet von Sulak10 am Do 08.04.2010 15:32, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
safer-print

Dabei seit: 11.03.2010
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 08.04.2010 20:12
Titel

Antworten mit Zitat Zum Seitenanfang

Wenn der Default-Wert, also der Vorgabewert aus der Datenbank (bei MySQL mit Standard bezeichnet) kannst du einfach prüfen ob z.B. $row['TelDW'] einen leeren String enthält.
Code:
while($row = mysql_fetch_array($result)) {
if ($row['TelDW'] != '') { echo " " . $row['Abschnitt1'] . "" . $row['TelDW'] . "<br> ";}
...

Das gehst du für alle Elemente durch, die eventuell leer sind.

Ein Hinweis noch:
Code:
$result = mysql_query("SELECT * FROM Tabelle
WHERE Email='$_POST[Email]'");

diese Art der Abfrage öffnet Angreifern Tür und Tor. Verwende die Funktion mysql_real_escape_string um Angriffe zu vereiteln z.B. so:
Code:
$result = mysql_query(sprintf ("SELECT * FROM `Tabelle`
WHERE `Email`='%s'",mysql_real_escape_string($_POST['Email']));

Und Feldnamen ab MySQL 5 immer in Backticks setzen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Sulak10
Threadersteller

Dabei seit: 08.04.2010
Ort: -
Alter: 33
Geschlecht: Männlich
Verfasst Fr 09.04.2010 07:16
Titel

Antworten mit Zitat Zum Seitenanfang

PERFEKT!

Vielen Dank! Lächel

PS: Dieses Tool wird nur intern von mir und 2 Kollegen verwendet, es wird dort eigl. keinen Angriffen ausgesetzt sein, aber ist trotzdem gut zu wissen Lächel

Zitat:
diese Art der Abfrage öffnet Angreifern Tür und Tor. Verwende die Funktion mysql_real_escape_string um Angriffe zu vereiteln z.B. so:
Code:
Code:
$result = mysql_query(sprintf ("SELECT * FROM `Tabelle`
WHERE `Email`='%s'",mysql_real_escape_string($_POST['Email'])); 
  View user's profile Private Nachricht senden
Sulak10
Threadersteller

Dabei seit: 08.04.2010
Ort: -
Alter: 33
Geschlecht: Männlich
Verfasst Fr 09.04.2010 10:09
Titel

Antworten mit Zitat Zum Seitenanfang

Hm ich bekomme es leider nicht hin *Schnief*
Kann mir da vllt noch einmal jemand helfen?

Wenn ich das Formular ausfülle trägt die es die Daten in die Datenbank ein.

Code:
<form action="form1.php" method="POST">
<input type="text" name="Vorname" /> Vorname<br>
<input type="text" name="Nachname" /> Nachname<br>
<input type="text" name="TelDW" /> Telefon Durchwahl<br>
<input type="text" name="FaxDW" /> Fax Durchwahl<br>
<input type="text" name="Mobil" /> Mobilnummer<br>
<input type="text" name="HeimTel" /> Heim-Telefon<br>
<input type="text" name="HeimFax" /> Heim-Fax<br>
<input type="text" name="Email" /> Email<br><br>
usw.. es folgt noch die textarea mit den Abschnitten mit dem Quellcode für die Signatur..


Diese Datei ließt alles aus und gibt den Quellcode mit den Stammdaten aus dem Formular aus:

Code:
<html>
<head>
<title>Notessignatur</title>
<LINK REL="SHORTCUT ICON" HREF="/Images/Favicon.ico">
<link rel="stylesheet" type="text/css" href="css/Style.css">
</head>
<body>



<?php
$con = mysql_connect("localhost","********","*********");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("signaturen", $con);

$result = mysql_query("SELECT * FROM geruest
WHERE Email='$_POST[Email]'");

while($row = mysql_fetch_array($result))
  {
  echo " " . $row['Abschnitt1'] . "" . $row['TelDW'] . "" . $row['Abschnitt2'] . "" . $row['Abschnitt3'] . "" . $row['HeimTel'] . "" . $row['Abschnitt4'] . "" . $row['Abschnitt5'] . "" . $row['Mobil'] . "" . $row['Abschnitt6'] . "" . $row['Abschnitt7'] . "" . $row['FaxDW'] . "" . $row['Abschnitt8'] . "" . $row['Abschnitt9'] . "" . $row['HeimFax'] . "" . $row['Abschnitt10'] . "" . $row['Abschnitt11'] . "" . $row['Email'] . "" . $row['Abschnitt12'] . "" . $row['Email'] . "" . $row['Abschnitt13'] . "" . $row['Abschnitt14'] . "";
  echo "<br />";
  }
?>

</body>
</html>



Wenn ich in dem Formular z.B. bei HeimTel nichts angebe, wie bekomm ich es hin, dass die if/else-Funktion mir den richtigen Quellcode ausgibt (also z.B. ohne HeimTel oder ohne Mobil ..)

Oben die Ansätze haben mich zum nachdenken angeregt, lassen mich aber leider doch nicht auf die Lösung kommen, weil ich nicht weiß, wie ich es richtig einsetze oder umschreibe.

- Wenn ich bei HeimTel ein "N" eingebe, soll mir der Quellcode ohne HeimTel ausgegeben werden.
- Wenn ich bei HeimFax ein "N" eingebe, soll mir der Quellcode ohne HeimFax ausgegeben werden.
- Wenn ich bei Mobil ein "N" eingebe, soll mir der Quellcode ohne Mobil ausgegeben werden.
- Wenn ich bei HeimTel und HeimFax ein "N" eingebe, soll mir der Quellcode ohne HeimTel und ohne HeimFax ausgegeben werden.
- usw..

Vllt bin ich zu blöd, aber ich komm trotz den Threads oben nicht darauf was ich machen muss, damit es klappt. *Schnief*
  View user's profile Private Nachricht senden
escaPe

Dabei seit: 10.09.2007
Ort: <? include("home.htm") ?>
Alter: 112
Geschlecht: Männlich
Verfasst Fr 09.04.2010 11:55
Titel

Antworten mit Zitat Zum Seitenanfang

Wie folgt würde ich an die Sache dran gehen (ist nicht allgemeingültig)


Du hast ja nicht das Problem das leere Variablen dir dein Layout zerhaun sondern,
das du ein allgemeines Layout, unabhängig von den Variablen, per echo Ausgibst.

Das Layout soll aber sich je nach Variable verändern

Also logisch;

Wenn variable nicht leer dann gib mir eine formatierung mit Variable aus.

Als einfachstes Beispiel.

Code:
if ($row['Abschnitt2'] != "")
{ $abschnitt2 = "<td>" . $row['Abschnitt2'] . "<td>"; }

echo $abschnitt2;


Ausgabe wäre dann fall Variable Inhalt hat
: Zelle mit Inhalt der Variable
falls nicht wird garnichts ausgegeben.

Das nur mal als kleinen Denkanstoss.


Zuletzt bearbeitet von escaPe am Fr 09.04.2010 12:11, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Sulak10
Threadersteller

Dabei seit: 08.04.2010
Ort: -
Alter: 33
Geschlecht: Männlich
Verfasst Fr 09.04.2010 12:56
Titel

Antworten mit Zitat Zum Seitenanfang

Ich stell mich glaub ich grade ein bisschen zu dumm an Grins
Tut mir leid.

Kannst du mir das vllt mal in meinen Quellcode einbauen?
Ich weiß nicht wirklich, wie und wo ich das einbauen soll *Schnief*

Ich bekomm dann die ganze Zeit nen Fehler angezeigt.
  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) übergabe von formulardaten und abfrage m. mysql
[PHP / MySQL] MySQL-Funktion gesucht: letzteÄnderungTabelle
[php / mysql] Mysql Daten in php als Link ausgeben
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
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.