Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Formular - Eingabedaten beibehalten
Antwort
 
Themen-Optionen
Alt 04.07.2005, 11:15   Nach oben    #1
cengiz
Gast
 
Beiträge: n/a
Standard Formular - Eingabedaten beibehalten

Hallo,

ich möchte das erreichen was man in diesem tut sieht
Eingabeüberprüfung eines Formulars

hab es mal kopiert und noch ein echo hinzugefügt aber nichts passiert
formular.php
PHP-Code:
<?php

   
// Session starten
   
session_start();

   
// Definition der Schriftfarbe bei inkorrekter Eingabe
   
$cssErrorVorne  '<span style="color:#ff0000;">';
   
$cssErrorHinten '</span>';

   
// Array, welches die anzuzeigenden Fehler enthält
   
$_error = array();

   foreach( 
$_SESSION['error'] as $key ) {
        
$_error[$key]['vorne']  = $cssErrorVorne;
        
$_error[$key]['hinten'] = $cssErrorHinten;
   }

   
printf'<form action="ueberpruefung.php" method="post">

               %sName:%s <input type="text" name="vorname" value="%s">
               %sVorname:%s  <input type="text" name="email" value="%s">

               <input type="hidden" name="sent" value="1">
               <input type="submit" name="submit" value="Abschicken">

            </form>'
,
           
$_error['name']['vorne'],
           
$_error['name']['hinten'],
           
$_SESSION['name'],
           
$_error['email']['vorne'],
           
$_error['email']['hinten'],
           
$_SESSION['email'] );
?>

PHP-Code:
<?php

   
// Session starten
   
session_start();

   
$_SESSION['error']  = array();

   
// Absicherung, dass die Datei auch über das Formular aufgerufen wurde
   
if( isset($_POST['gesendet']) ) {
     foreach( 
$_POST as $key => $value ) {
             
// Ist überhaupt etwas geschrieben worden?
             
if( strcmp(trim($value),'') == ) {
                 
$_SESSION['error'][] = $key;
                 echo 
'was eingeben';
             }
             else {
                 if( 
strcmp($key,'email') {
                       
ueberpruefeMail($value);
                 }
                 else {
                       
$_SESSION[$key] = $value;
                 }
             }
        }
   }
   else {
       
header'Location: http://xxx/neu/reservierung/session/formular.php' );
       exit();
    }


   if( 
$count($_SESSION['error']) > ) {
             
header'Location: [url]http://xxx/neu/reservierung/session/formular.php[/url] ' );
             exit();
        }
        else {
             
// Hier kann z.B. eine Mail abgeschickt und der User danach zu einer
             // Bestätigungsseite weitergeleitet werden.
             
header'Location: http://xxx/neu/reservierung/session/index.php' );
             exit();
        }

?>
und ist die fkt. 'ueberpruefeMail' eine selbst geschriebene fkt?

Geändert von Jann Hendrik (27.06.2007 um 11:01 Uhr). Grund: intern-tag-Fehler manuell angepasst
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2005, 16:03   Nach oben    #2
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard Formular - Eingabedaten beibehalten

Zitat:
Zitat von cengiz
hab es mal kopiert und noch ein echo hinzugefügt aber nichts passiert

[...]

und ist die fkt. 'ueberpruefeMail' eine selbst geschriebene fkt?
Hi!
Was genau passiert denn nicht?

Ja, die angesprochene Funktion ist eine eigene, die - wenn ich das gerade richtig gelesen habe - nur angedeutet ist. Also kannst du dort an der Stelle noch eine entspr. Funktion einbringen.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.07.2005, 22:02   Nach oben    #3
cengiz
Gast
 
Beiträge: n/a
Standard Formular - Eingabedaten beibehalten

danke für die hilfe

hat sich schon erledigt

MfG
cengiz
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 08:33   Nach oben    #4
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard Formular - Eingabedaten beibehalten

ok!
Woran lag es denn?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 13:48   Nach oben    #5
cengiz
Gast
 
Beiträge: n/a
Standard Formular - Eingabedaten beibehalten

also ich hab es ganz primitiv gemacht und gebe das Formular immer neu aus mit den entsprechenden value-werten.

mit sessiond kenne ich mich nicht aus deswegen...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 14:01   Nach oben    #6
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.225
Standard Formular - Eingabedaten beibehalten

das mit den session ist gar nicht so schwer!
das solltest du mal versuchen zu lernen!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.07.2005, 14:44   Nach oben    #7
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard Formular - Eingabedaten beibehalten

Hallo,
Zitat:
Zitat von cengiz
mit sessiond kenne ich mich nicht aus
schau einfach mal hier rein:
Daten per Session weiterleiten

Grüße Ben.

Geändert von Jann Hendrik (27.06.2007 um 11:02 Uhr). Grund: intern-tag-Fehler manuell angepasst
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.07.2005, 07:24   Nach oben    #8
cengiz
Gast
 
Beiträge: n/a
Standard Formular - Eingabedaten beibehalten

ok danke

ich werd mein Glück herausfordern
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 13:36   Nach oben    #9
Erfahrener Benutzer
 
Benutzerbild von Doggi
 
Registriert seit: 26.10.2005
Ort: Basel
Beiträge: 115
Standard Frust!!!

session.php (gleichzusetzen mit überprüfung.php)
PHP-Code:
<?php 

   
// Session starten 
   
session_start(); 

   
$_SESSION['error']  = array();

   
// Absicherung, dass die Datei auch über das Formular aufgerufen wurde 
   
if( isset($_POST['submit']) ) { 
     foreach( 
$_POST as $key => $value ) { 
             
// Ist überhaupt etwas geschrieben worden? 
             
if( strcmp(trim($value),'') == ) { 
                 
$_SESSION['error'][] = $key;
                 echo 
'was eingeben'
             } 
             else { echo 
"test";
                 if( 
strcmp($key,'email') { 
                       echo 
'mail';     //ueberpruefeMail($value); 
                 

                 else { 
                       
$_SESSION[$key] = $value
                 }              } 
        }     
   }    
   else { 
       
header'Location: http://localhost/xampp/backshop-beims/verlosung/index.php' ); 
       exit(); 
    }
   

 
if( 
$count($_SESSION['error']) > ) {     //Zeile 32  
             
header'Location: [url]http://http://localhost/xampp/backshop-beims/verlosung/index.php[/url] ' ); 
             exit();    
        } 
        else {         
             
// Hier kann z.B. eine Mail abgeschickt und der User danach zu einer 
             // Bestätigungsseite weitergeleitet werden. 
             
header'Location: http://localhost/xampp/backshop-beims/verlosung/index.php' ); 
             exit();                
        } 
 
?>
und das formular (hier index.php)

PHP-Code:
<?php 

   
// Session starten 
   
session_start(); 

   
$_SESSION['error']  = array();

   
// Absicherung, dass die Datei auch über das Formular aufgerufen wurde 
   
if( isset($_POST['submit']) ) { 
     foreach( 
$_POST as $key => $value ) { 
             
// Ist überhaupt etwas geschrieben worden? 
             
if( strcmp(trim($value),'') == ) { 
                 
$_SESSION['error'][] = $key;
                 echo 
'was eingeben'
             } 
             else { echo 
"test";
                 
/*if( strcmp($key,'email') { 
                       ueberpruefeMail($value); 
                 } 
                 else { 
                       $_SESSION[$key] = $value; 
                 } */
             

        }     
   }    
   else { 
       
header'Location: http://localhost/xampp/backshop-beims/verlosung/index.php' ); 
       exit(); 
    }
   

   if( 
$count($_SESSION['error']) > ) {     
             
header'Location: [url]http://http://localhost/xampp/backshop-beims/verlosung/index.php[/url] ' ); 
             exit();    
        } 
        else {         
             
// Hier kann z.B. eine Mail abgeschickt und der User danach zu einer 
             // Bestätigungsseite weitergeleitet werden. 
             
header'Location: http://localhost/xampp/backshop-beims/verlosung/index.php' ); 
             exit();                
        } 
 
?>
fehlermeldung:

parse erro in line 17

wenn ich im browser zurück gehe, ist name und email gehighlightet, allerdings muss ich manuell zurück.

anzumerken ist hier das alle *.html seiten bei mir *.php seiten sind ist ein bug des forums. daran liegt es also nicht.

//EDIT 1 es muss in der session.php nicht
PHP-Code:
if( isset($_POST['gesendet']) ) { 
sondern
PHP-Code:
if( isset($_POST['submit']) ) { 
da ja im formular name=submit ist und nicht gesendet.
nun mach ich mich mal an die anderen fehler.
__________________
Wer später bremst, fährt länger schnell...

Geändert von Doggi (10.11.2005 um 13:56 Uhr).
Doggi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 13:42   Nach oben    #10
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Hi,
kann es sein, dass es an dem Fehler liegt, auf den Chr!s mich aufmerksam gemacht hat?
http://forum.developers-guide.net/th....html#post4872
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 14:18   Nach oben    #11
Erfahrener Benutzer
 
Benutzerbild von Doggi
 
Registriert seit: 26.10.2005
Ort: Basel
Beiträge: 115
Standard

nein leider nicht, habe das zwar jetzt aktualisiert, aber der fehler kommt in zeile 17 der session.php (ueberprüfung.php)
bei
PHP-Code:
if( strcmp($key,'email') { 
warum auch immer. ich find den blöden fehler nicht. er geht nicht mehr zurück zur index.php (formular.php)
__________________
Wer später bremst, fährt länger schnell...
Doggi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 14:21   Nach oben    #12
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Zitat:
Parse Error: Unexpected "{", expecting ")" in session.php on line 17
Dürfte so aussehen die Fehlermeldung, denk ich mal.
Mach das hier draus, es fehlt eine schließende Klammer.
PHP-Code:
if( strcmp($key,'email') ) { 
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 14:40   Nach oben    #13
Erfahrener Benutzer
 
Benutzerbild von Doggi
 
Registriert seit: 26.10.2005
Ort: Basel
Beiträge: 115
Standard

blind wie ein maulwurf bin ich

danke. ich denke jetzt sind die gröbsten fehler beseitigt. nun mach ich mich mal an den rest

diese fehler sollten jedoch aus dem tutorial beseitigt werden
ich finde tutorials mit fehlern sehr frustrierend
mal schaun ob sessions wirklcih so einfach sind, wie ihr behauptet.
__________________
Wer später bremst, fährt länger schnell...
Doggi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 14:42   Nach oben    #14
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Zitat:
Zitat von Doggi
ich finde tutorials mit fehlern sehr frustrierend
Ehrlich gesagt ist das eigentlich ziemlich lernintensiv, weil man sich einfach mehr damit befassen muss, was da eigentlich passiert .. das Tutorial wird aber aktualisiert.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 15:05   Nach oben    #15
Erfahrener Benutzer
 
Benutzerbild von Doggi
 
Registriert seit: 26.10.2005
Ort: Basel
Beiträge: 115
Standard

da hast du recht! sollte keine böse kritik sein. frust ist, wie du schon richtig sagtest, nicht immer schlecht.

kommen wir zum nächsten fehler, den ich nicht nachvollziehen kann.

öffnet man den browser neu und öffnet die formular.php bekomm ich einen fehler:

Warning: Invalid argument supplied for foreach() in E:\htdocs\xampp\name\verlosung\index.php on line 11
Name: email:


soweit so gut.

geb ich daten ein: name: ingolf email: test@mail.de

geh auf abschicken, ist alles ok.

die mail wird bei einem fehler automatisch wieder eingefügt (im formular), der name leider nicht
ich kann nur leider den code dafür nicht zuordnen bzw. erkenn ich nicht, wie ich dies erweitern könnte

ich denke dies hier ist dafür zuständig.
PHP-Code:
if( strcmp($key,'email')) { 
                       echo 
'mail';     //ueberpruefeMail($value); 
                 

                 else { 
                       
$_SESSION[$key] = $value
                 } 
leider fehlt mir die logik bzw. erfahrung um diesen teil zu erweitern
ich würde zu gern wissen wieso der name nicht stehen bleibt wenn nur die mail fehlt.

gebt mir einen denkanstoß, BITTE, sonst muss ich von der teppichkante hüpfen.
__________________
Wer später bremst, fährt länger schnell...

Geändert von Doggi (06.12.2005 um 13:12 Uhr).
Doggi ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 18:13   Nach oben    #16
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard