SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.05.2014, 11:48:13
Creativpur Creativpur ist offline
Anfänger
 
Registriert seit: May 2014
Alter: 65
Beiträge: 1
Mehrseitiges Formular

Hallo,

ich habe folgendes Problem..
Ich habe ein Mehrseitiges Formular. Da ich absoluter Anfänger im Bereich PHP bin, habe ich es nach einer Vorlage nachgebaut.. Dieses Formular gibt auf der letzten Seite die Werte tatsächlich aus..
Nur wie bekomme ich die angezeigten Werte in meine SQL-Datenbank ?
Seit Wochen versuche ich vergebens eine Lösung zu finden..
Die Datenbank wird gefunden, erzeugt aber nur leere Datenfelder und die automatische ID..
Vor allem wird für jede der 4 Seiten eine Spalte erzeugt, was natürlich nicht Sinn und Zweck sein soll..

Wo habe ich in meinem Script den Fehler ??
PHP-Code:
<?php
 
// Verbindung zur Datenbank aufbauen.
$db mysqli_connect("XXX""XXX""XXX""XXX");
if(!
$db)
{
  exit(
"Verbindungsfehler: ".mysqli_error());


?>

<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8"> 
<title>Bewerbungsemail - Daten und Gestaltung</title>
<title>Formulare</title>

<style>
* { font-family: Verdana;
font-size:100%;
 }
td {
font-size:80%;
}
.activeNumber
{
color: red;
background-color:#0099cc;
text-align:center;
font-size: 14pt;
}
.inactiveNumber
{
color: #cccccc;
background-color:#ddddff;
text-align:center;
font-size: 14pt;
}
.activeTable
{
display:visible;
height:100px;
width:500px;
}
.inactiveTable
{
display:none
}
input {
border:1px solid #000066;
}
.error {
font-size:90%;
color:red;
}
</style>
</head>
<body>

<?php
$Vornachname 
$_POST["Vornachname"]; 
$nachname $_POST["nachname"];
$strasse $_POST["strasse"];
$Stadt $_POST["Stadt"];

$eintrag mysqli_query($db"INSERT INTO BW_Customer_Daten (nachname, Vorname, strasse, Stadt) VALUES ('$nachname', '$Vorname', '$strasse', '$Stadt')") OR die(mysqli_error());

$fehler="&nbsp;";
function 
GetField($name$default '')
{
return empty(
$_POST['c'][$name]) ? $default $_POST['c'][$name];
}

$fldVorname GetField('Vorname');
$fldnachname GetField('nachname');
$fldstrasse GetField('strasse');
$fldStadt GetField('Stadt');

$action $_SERVER['PHP_SELF'];
$currentPage = empty($_REQUEST['currentPage']) ? : (int)
$_REQUEST['currentPage'];
$prevDisabled $nextDisabled '';
if (!empty(
$_REQUEST['prev']))
{
    
$currentPage--;
}
if (!empty(
$_POST['next']))
{

$allesok 1;
    if(empty(
$fldVorname) && $currentPage==1){
    
$allesok 0;
    
$fehler '<span class="error">bitte Vornamen einfügen</span>';
    }
    
    
    if(empty(
$fldnachname)&& $currentPage==2){
    
$allesok 0;
    
$fehler '<span class="error">bitte Nachnamen ausfüllen</span>';
    }
    
    if(
$allesok) {
    
$currentPage++;
    }
    
if (
$currentPage == 4)
{
$nextDisabled 'disabled';
}
}
if (
$currentPage == 1){$prevDisabled 'disabled';}

if (!empty(
$_POST['Send']))
{
$currentPage 0;
   
echo 
"Vielen Dank für das Ausfüllen des Formulars<hr>";
foreach(
$_POST['c'] as $value) {
    if(
$value != "") {
        
        
$eintrag mysql_query($eintrag);
        
    echo 
$value."<br>";
    }
    }

exit;
}
?>

<table width="500">
<tr>
<td class="<?= ($currentPage==1)
? 'activeNumber' : 'inactiveNumber' ?>">Vorname</td>
<td class="<?= ($currentPage==2)
? 'activeNumber' : 'inactiveNumber' ?>">Nachname</td>
<td class="<?= ($currentPage==3)
? 'activeNumber' : 'inactiveNumber' ?>">Strasse</td>
<td class="<?= ($currentPage==4)
? 'activeNumber' : 'inactiveNumber' ?>">Ort</td>
</tr>
</table>
<? echo $fehler ?>
<form action="<?=$action?>" method="POST">
<input type="hidden" name="currentPage"
value="<?=$currentPage?>"/>


<table width="500" class="<?= ($currentPage==1)
? 'activeTable' : 'inactiveTable' ?>">
<tr>
<td valign="top">Vorname*</td>
<td valign="top">
<input name="c[Vorname]" type="text" id="c[Vorname]" value="<?=$fldVorname?>"/>
</td>
</tr>
</table>

<table width="500" class="<?= ($currentPage==2)
? 'activeTable' : 'inactiveTable' ?>">
<tr>
  </tr>
<tr>
 <td valign="top">Nachname*</td>
  <td valign="top">
  <input name="c[nachname]" type="text" id="c[nachname]" value="<?=$fldnachname?>"/>
  </td>
</tr>
</table>

<table width="500" class="<?= ($currentPage==3)
? 'activeTable' : 'inactiveTable' ?>">
<tr>
<td valign="top">Strasse</td>
<td valign="top">
<input name="c[strasse]" type="text" id="c[strasse]" value="<?=$fldstrasse?>"/>
</td>
</tr>
</table>

<table width="500" class="<?= ($currentPage==4)
? 'activeTable' : 'inactiveTable' ?>">
<tr>
<td width="132" valign="top">Ort</td>
  <td valign="top">
  <input name="c[Stadt]" type="text" id="c[Stadt]" value="<?=$fldStadt?>"/>
  </td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td valign="top">
<input type="submit" name="Send" value="Abschicken"/>
</td>
</tr>
</table>

<table>
<tr>
<td>
<input <?=$prevDisabled?> type="submit"
name="prev" value="Zurück"/>
</td>
<td>
<input <?=$nextDisabled?> type="submit"
name="next" value="Weiter"/>
</td>
</tr>
</table>
</form>
</body>
</html>
Mit Zitat antworten
  #2  
Alt 15.05.2014, 16:32:35
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: Mehrseitiges Formular

Hi


1. Du misch mysql_query() und mysqli_query() das ist das erste, was du abstellen musst, bleib bei mysqli
2. Du sendest deine Daten mehrfach an de Datenbank, einmal am Anfang des Formulars

PHP-Code:
$Vornachname $_POST["Vornachname"]; 
$nachname $_POST["nachname"];
$strasse $_POST["strasse"];
$Stadt $_POST["Stadt"];

$eintrag mysqli_query($db"INSERT INTO BW_Customer_Daten (nachname, Vorname, strasse, Stadt) VALUES ('$nachname', '$Vorname', '$strasse', '$Stadt')") OR die(mysqli_error()); 
Dann nochmal am Ende

PHP-Code:
foreach($_POST['c'] as $value) {
    if(
$value != "") {
        
        
$eintrag mysql_query($eintrag);
        
    echo 
$value."<br>";
    }
    } 
Wobei mir beim Überfliegen des Codes, der zweite Weg plausibler ersxcheint, deine $_POST Datemnm heissen c['Vorname'] etc. ....
Wenn du Enter drückst, wird dein Formular (halb) leer abgesendet.

Auif die Schnelle sollte das wohl eher so aussehen..

PHP-Code:
// Verbindung zur Datenbank aufbauen.
$db = mysqli_connect("XXX", "XXX", "XXX", "XXX");
if(!$db)
{
  exit("Verbindungsfehler: ".mysqli_error());
}

?>

<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
<title>Bewerbungsemail - Daten und Gestaltung</title>
<title>Formulare</title>

<style>
* { font-family: Verdana;
font-size:100%;
 }
td {
font-size:80%;
}
.activeNumber
{
color: red;
background-color:#0099cc;
text-align:center;
font-size: 14pt;
}
.inactiveNumber
{
color: #cccccc;
background-color:#ddddff;
text-align:center;
font-size: 14pt;
}
.activeTable
{
display:visible;
height:100px;
width:500px;
}
.inactiveTable
{
display:none
}
input {
border:1px solid #000066;
}
.error {
font-size:90%;
color:red;
}
</style>
</head>
<body>

<?php
// $Vornachname = $_POST["Vornachname"];
// $nachname = $_POST["nachname"];
// $strasse = $_POST["strasse"];
// $Stadt = $_POST["Stadt"];

// $eintrag = mysqli_query($db, "INSERT INTO BW_Customer_Daten (nachname, Vorname, strasse, Stadt) VALUES ('$nachname', '$Vorname', '$strasse', '$Stadt')") OR die(mysqli_error());

$fehler="&nbsp;";
function 
GetField($name$default '')
{
return empty(
$_POST['c'][$name]) ? $default $_POST['c'][$name];
}

$fldVorname GetField('Vorname');
$fldnachname GetField('nachname');
$fldstrasse GetField('strasse');
$fldStadt GetField('Stadt');

$action $_SERVER['SCRIPT_NAME'];
$currentPage = empty($_REQUEST['currentPage']) ? : (int)
$_REQUEST['currentPage'];
$prevDisabled $nextDisabled '';
if (!empty(
$_REQUEST['prev']))
{
    
$currentPage--;
}
if (!empty(
$_POST['next']))
{

$allesok 1;
    if(empty(
$fldVorname) && $currentPage==1){
    
$allesok 0;
    
$fehler '<span class="error">bitte Vornamen einfügen</span>';
    }


    if(empty(
$fldnachname)&& $currentPage==2){
    
$allesok 0;
    
$fehler '<span class="error">bitte Nachnamen ausfüllen</span>';
    }

    if(
$allesok) {
    
$currentPage++;
    }

if (
$currentPage == 4)
{
$nextDisabled 'disabled';
}
}
if (
$currentPage == 1){$prevDisabled 'disabled';}

if (!empty(
$_POST['Send']))
{
$currentPage 0;

echo 
"Vielen Dank für das Ausfüllen des Formulars<hr>";
$werte = array();

$VALUES implode('\' , \'',$_POST['c']);
$eintrag "INSERT INTO `BW_Customer_Daten` (`nachname`, `Vorname`, `strasse`, `Stadt`) VALUES (".$VALUES.'\')';
echo 
$eintrag;

exit;
}
?>
$eintrag dann an die Datenbank senden.
Mein Tip, wirf weg und such dir ein anderes Formular als Vorlage.
Vor dem absenden an die Datenbank werden deine Daten weder geprüft, noch durch mysqli_real_escape_string() geschickt, das ganze Formular ist eine Einladung für eine Datenbank-Attacke.


Ach ja, vermeide $_SERVER('PHP_SELF'], nimm statt dessen $_SERVER['SCRIPT_NAME'];
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
Antwort


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

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
listbox - Je nach Auswahl anderes Formular laden AltSim PHP Grundlagen 2 25.07.2012 10:09:30
mehrseituiges Formular bei zurück nicht richtig befüllt cooky79 PHP Grundlagen 3 23.01.2009 21:18:18
Sessions Problem Mehrseitiges Formular rezeptionist PHP Grundlagen 7 02.02.2006 23:21:11
Mehrseitiges Formular Hanna PHP für Fortgeschrittene und Experten 8 04.04.2003 12:25:51
update formular problem Silencer PHP für Fortgeschrittene und Experten 1 14.10.2002 08:29:44


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:35:13 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt