Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Hilfe bei: Pflichtfelder mit php realisieren für Datenb.

Pflichtfelder im Formular mit php realisieren für Datenbankeintrag:

Hallo, Ich benötige Hilfe eines Könners.


Ich habe ein Formular mit Hilfe eines Bekannten gebastelt, (der jetzt leider lange im Urlaub ist)
Im Formular gebe ich die Kundendaten ein, die in einer zweiten php-Datei verarbeitet, geprüft und an die Datenbank übermittelt werden. Wir haben vergessen Pflichtfelder anzulegen, was denke ich in der zweiten php-Datei gemacht wird.

______datei1 (spricht datei2 an)__________________formular.php
[color="orange"]
<form action="kontakte_einfuegen.php" method="post"> ...usw.[/color]

// Formulardaten sind: Name, Vorname, email, telefonnummer ...etc.



______datei2 (prüft und schickt an datenbank)_________kontakte_einfuegen.php
// Hier der wichtige Auszug der php.Datei

[color="orangered"]..............
// überprueft ob der nachname, vorname etc. schon vorhanden ist.
$query1 = "SELECT nachname FROM kontakte WHERE nachname LIKE '$nachname' and vorname LIKE '$vorname' and plz LIKE '$plz'";
$result = mysql_query($query1);

// Fehlermeldung ausgeben, oder Kunden einfuegen
$num=mysql_NumRows($result);
if ($num) {
echo "Kontakt schon vorhanden!";
}
else
{
$query2="INSERT INTO kontakte ...............[/color]



// Da "action" im Form (action="kontakte_einfuegen.php") der Formulardatei schon verwendet wird war es mir nicht möglich Pflichtfelder selber zu programmieren. Ich lese mich schon seit 3 Tagen durch Foren etc.....


Wie lässt sich nun eine Formular-Feldabfrage mit meiner Datenbankanbindung realisieren und wo muss ich die Zeilen reinschreiben?


Über Verständliche und Hilfreiche Antworten bin ich sehr Dankbar.

Viele Grüße

der PhPStRoLcH

Hier gehts zum Orginal Eintrag "Hilfe bei: Pflichtfelder mit php realisieren für Datenb." im Forum

Antworten

Code:                   In Zwischenablage kopieren (nur IE)
1">

*** Nobody ***


2.

Bau doch einfach Bedingungen in der php ein. Wenn feld 2 und 3 nicht ausgefüllt sind -> Fehlermeldung und zurück zum Formular.

Edit:

Da war ich wohl zu spät. Und nicht so ausführlich.


3.

Vielen Dank für die schnelle Antwort,

Ich habe es jetzt mal testweise nur für email und vornamen, so probiert:

<[color="orange"]?
$errText = "";
$name = "";
$email = "";

if (isset($_POST["eintragen"]))
{
$name = $_POST["vorname"];
$email = $_POST["email"];

if (! strlen ($vorname) || ! strlen ($email))
{
$errText = "Nicht alle erforderlichen Felder ausgefüllt";
}
else
{
echo "Alles Paletti";
}
}

if (strlen ($errText) || ! isset ($_POST["eintragen"]))
{
?>

<html>
<head>
<title>Formular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="460" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="460">
<form action="kontakte_einfuegen.php" method="post">
<table width="460" height="566" border="0" align="center" cellpadding="3" cellspacing="1" class="table">
<?
if (strlen ($errText))
{
echo" <tr>\n";
echo" <td colspan='2'><font color='#FF0000'>$errText</font></td>\n";
echo" </tr>\n";
}
?>

<tr>
<td colspan="2" class="head" height="17" align="left">Stammdaten Studio-Kontakte </td>
</tr>
<tr>
<td class="main" colspan="2" height="16">Bitte f&uuml;llen Sie alle mit * markierten Felder aus. (Pflichtfelder)</td>
</tr><tr><td class="main" width="126"><p class="align">Anrede*</p></td>
<td width="319" class="main">
<input type="radio" name="geschlecht" id="mw_0" value="m">
<label for="mw_0">Herr</label>
<input type="radio" name="geschlecht" id="mw_1" value="w">
<label for="mw_1">Frau</label></td>
</tr>
<tr><td class="main" width="126"><p class="align">Ihr Vorname*</p></td>
<td class="main">
<input name="vorname" type="text" value="" size="20"></td></tr>
<tr>
<td class="main"><p class="align">Nachname*</p></td>
<td class="main">
<input name="nachname" type="text" id="nachname" size="20"></td>
</tr>
<tr><td class="main" width="126"><p class="align">Stra&szlig;e*</p></td>
<td class="main">
<input name="strasse" type="text" id="strasse" size="20"></td></tr>
<tr><td class="main" width="126"><p class="align">PLZ*</p></td>
<td class="main">
<input name="plz" type="text" id="plz" size="20"></td></tr>
<tr><td class="main"><p class="align">Ort*</p></td>
<td class="main">
<input name="ort" type="text" id="ort" size="20"></td></tr>
<tr><td class="main"><p class="align">Ihr Geburtsdatum*</p></td> und zum schluss die php endung
<?
}
?>......................usw.[/color]



funktioniert leider immernoch nicht.
Mein Submit button hat den Namen "eintragen" ich habe also "send" in "eintragen" unbenannt.


Funktioniert leider immernoch nicht.

Liegt es an der Anbindung mit der Zweiten Datei? Vielleicht muss ich den Pflichtfeld-Script doch, in der zweiten Datei realisieren.

Viele Grüße


4.

Sorry, hab noch einiges vergessen. obigen Beitrag bitte ignorieren.


5.

Zitat:
PhPStRoLcH postete
Sorry, hab noch einiges vergessen. obigen Beitrag bitte ignorieren.
vor allen Dingen, hast du vergessen, deinen Quelltext mit dem PHP Button
zu formatieren..

Schau dir mal an, wie schön bunt Nobodys Code ist,
dein Senf farbendes Zeugs, liest sich bestimmt keiner durch...


6.

Muss ich meinen Submit-button "send" nennen? Momentan ist value=eintragen und name=eintragen. Es tut sich nichts.
Habe den Code so angepasst:
[color="red"]1.
<?
$errText = "";
$vorname = "";
$email = "";

if (isset($_POST["send"]))
{
$vorname = $_POST["vorname"];
$email = $_POST["email"];

if (! strlen ($vorname) || ! strlen ($email))
{
$errText = "Nicht alle erforderlichen Felder ausgefüllt";
}
else
{
echo "Alles Paletti";
}
}

if (strlen ($errText) || ! isset ($_POST["send"]))
{
?>[/color]


[color="darkred"]2.
<?
if (strlen ($errText))
{
echo" <tr>\n";
echo" <td colspan='2'><font color='#FF0000'>$errText</font></td>\n";
echo" </tr>\n";
}
?>[/color]

[color="orangered"]

3.
<input name="vorname" type="text" value="<? echo $vorname; ?>" size="20"></td></tr>[/color]


[color="blue"]
4. Mein Submitbutton:


</tr>
<tr><td class="foot" colspan="2" align="center" height="25">
<input name="eintragen" type="submit" style="width:150px" value="eintragen">[/color]


7.

if (isset($_POST["send"])) und name="eintragen" passt nicht zueinander!
Entweder send oder eintragen, entscheide dich...

Und nutze bitte den PHP Buton!!!


8.

Zitat:
Und nutze bitte den PHP Buton!!!
Oder formatier den PHP Code mit Farben wenn du magst, bloss mach es richtig.
Funktionen blau, Strings rot, Kommentare gelb, usw :D


9.

Sind die PHP buttons die phpeingaben hier:

<td width="80%"><input type="text" name="name" size="20" value="[color="red"]<? [/color] [color="green"][color="blue"]echo[/color] [/color] $name; [color="red"]?>[/color] "></td>

?

Das habe ich dann gemacht. Werde es testen.

Vielen Dank


10.

na, was ist denn da pssiert:

den meine ich: [color="orangered"]<? echo $name; ?>[/color]


11.

Code:                   In Zwischenablage kopieren (nur IE)
2">

So und jetzt klicke mal auf zitatantwort

Der PHP Button findet sich direkt unter dem Farbauswähler
und den hast du doch auch schon gefunden.....


12.

[quote]combie postete
Code:                   In Zwischenablage kopieren (nur IE)
3">

So und jetzt klicke mal auf zitatantwort

Der PHP Button findet sich direkt unter dem Farbauswähler
und den hast du doch auch schon gefunden.....[/quote] das geht leider immernoch nicht. habe alle hier stehenden fehlerhinweise ausgeführt und [color="orangered"]<?php[/color] für beide felder, namen und email hinzugefügt. Habe es auch probiert indem ich[color="orangered"]"php"[/color] an die anderen [color="orangered"]"<?"[/color] anfangszeichen gesetzt habe. Klappt leider nicht. Die daten werden immernoch auch mit leerem formular übermittelt.

Mein Submitbutton stimmt mit den scriptdaten jetzt überein.


13.

Das Problem ist ganz klar hier (rot markiert):

<form method="POST" [color="orangered"]action="kontakte_einfuegen.php"[/color] >

Wenn ich [color="red"]action=""[/color] schreibe klappt es.

Also nocheinmal auf meine Frage von ganz oben zurück. Wie schaffe ich es dass es auch mit Dateianbindung zu einer Pflichteingabe kommt.

Vielen Dank für die Unterstützung bisher.


14.

Warum um alles in der Welt willst du da noch ein Script dazwischen schieben?

Dort, wo "Alles Paletti" steht, fügst du deinen Kontakt ein und leitest danach auf eine andere Seite weiter.

*** Nobody ***


15.

Ich probiers jetzt mal. Scheint logisch was du sagst...... wäre ich nicht drauf gekommen. Danke!
ich schreib obs geklappt hat. mom


16.

Zitat:
PhPStRoLcH postete
Ich probiers jetzt mal. Scheint logisch was du sagst...... wäre ich nicht drauf gekommen. Danke!
ich schreib obs geklappt hat. mom
nee das geht nicht, wenn ich den vollständigen "script" der zweiten phpdatei zwischen die anführungszeichen von
[color="orangered"]echo "Alles Paletti";[/color] kopiere. Die Zweite datei benötige ich um die daten vom Formular auf die Datenbank zu übertragen. Dazu brauche ich diese zwei dateien.
[color="purple"]datenübertragen.php[/color] ist mit[color="purple"] formular.php[/color] verknüpft über [color="red"]action="datenübertragen.php"[/color] .
welche möglichkeit gibt es. Kann ich eventl in [color="orangered"]echo "Alles Paletti";[/color] eine verknüpfung zu "datenübertragen.php" schreiben, die wie action="datenübertragen.php" in der Forumaldatei fungiert?


17.

Zweite Datei z.B. "datenübergeben.php" auf die die formular.php datei zeigt sieht so aus:

...........
[color="orange"]// Variablen aus dem Forumlar übernehmen[/color]
[color="darkred"]$vorname=$_POST["vorname"];
$nachname=$_POST["nachname"];[/color]

[color="orange"]// Überpruefen ob der Kunde schon vorhanden ist[/color]
[color="darkred"]$query1 = "SELECT nachname FROM kontakte WHERE nachname LIKE '$nachname' and vorname LIKE '$vorname' "; [/color]
[color="red"]$result = mysql_query($query1);[/color]

[color="orange"]// Fehlermeldung ausgeben, bzw. Kunden einfuegen[/color]
[color="blue"]$num=mysql_NumRows($result);
if ($num) {
echo "Kontakt schon vorhanden!";
}
else
{ [/color]
[color="deeppink"]$query2="INSERT INTO kontakte
SET geschlecht='$geschlecht',
vorname='$vorname',
nachname='$nachname', ..... [/color]



Kann ich hier vielleicht nach dem script:
[color="orange"]// Variablen aus dem Forumlar übernehmen[/color]
[color="darkred"]$vorname=$_POST["vorname"];
$nachname=$_POST["nachname"];[/color]


...einen Script einbauen, der leere values der [color="crimson"]$vorname, %nachname,[/color] erkennt und ggf. wieder auf die formular.php zurücklinkt?

Das wär des rätsels Lösung....


18.

Ich zeige dir das nochmal mit der PHP formatierung:

Code:                   In Zwischenablage kopieren (nur IE)
4">




19.

Leider haben mich alle Versuche nicht weitergebracht, da ich im "action-Feld" immer auf die zweite .php verlinken muss, in der die datenbankübertragung der $Formularfelder stattfindet. Ich muss also die Zweite Datei mit der Valueüberprüfung ergänzen. Weiss du vielleicht, was ich in die zweite datei (siehe über dieser Antwort) reinschreiben muss damit er die $vornamen, $nachnamen auf einen eingegebenen VALUE-Wert überprüft? If value = leer sollte er auf die formulardatei zurückverweisen uns eine fehlermeldung oben angeben.

Viele Grüße

PhPStRoLcH


20.

Wenn du unbedingt mit zwei Scripten arbeiten willst/musst, ist das etwas aufwändiger.

In dem zweiten Script prüfst du mit empty, ob etwas eingegeben wurde. Falls nicht, musst du eine Weiterleitung zum Formular einbauen. Man könnte vor dieser Weiterleitung die Werte von $_POST in eine Session schreiben. Damit ließe sich dann das Formular mit eventuell eingegebenem Vor- oder Nachnamen vorbelegen. Sind diese Session-Variablen gesetzt, kann man auch eine Fehlermeldung ausgeben.

*** Nobody ***


Hier gehts zum Orginal Eintrag "Hilfe bei: Pflichtfelder mit php realisieren für Datenb." im Forum
 
phpforum.de | Impressum | Handy Bundles