phpbuddy.eu
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 24.08.2008, 19:45   #1
TP-Supporter
 
Benutzerbild von Sascha79
 
Registriert seit: Jul 2008
Ort: Tübingen
Sascha79 macht sich hier sehr viel Mühe

//Validation


Hallo Leute,

ich habe ein Form mit verschiedenen Textfeldern erstellt. Nun möchte ich erreichen das wenn ein Textfeld vom User nicht ausgefüllt wird, das er darauf hingewiesen wird dieses doch auszufüllen. Habe ich auch soweit erreicht...

...und zwar so
PHP-Code:
//Validation
if(!ereg('[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+',$nome))
{
die(
"<p align='center'><font face='Arial' size='3' color='#FF0000'>Por favor coloque seu nome!</font></p>");

allerdings gefällt mir das "die" nicht. Hier hätte ich geren das mir das Html-document in dem das Formular drin ist von neuem angezeigt wird allerdings mit dem Hinweis das entsprechende Textfeld auszufüllen.

Kann mir jemand ein Tip geben? Für Hilfe bedanke ich mich jetzt schon.
__________________
Das Leben ist schön -
Lehren ist die schönste Methode zu lernen.
Sascha79 ist offline   Mit Zitat antworten


Alt 24.08.2008, 20:02   #2
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Sammel doch alle Fehlermeldungen in einem Array und gib dieses dann halt da aus, wo die Fehler dann stehen sollen (z.B. über dem Formular).
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist gerade online   Mit Zitat antworten
Alt 24.08.2008, 20:04   #3
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
Hallo Sascha79,

in so einem Fall arbeitet man mit einem Flag. Hier mal ein Beispiel, dass eigentlich selbsterklärend sein sollte:

PHP-Code:
<?php

// Flag setzen
$fehlerfrei true;

// Formular wurde abgeschickt
if (isset( $_POST['submit'] ))
{
    
// Feld prüfen
    
if (!ereg'[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+'$nome ))
    {
        
// Falls das Feld fehlerhaft ausgefüllt wurde, Flag auf falsch setzen
        
$fehlerfrei false;
    }
    
    
// Falls das Flag true ist wurde das Feld korrekt ausgefüllt
    
if ($fehlerfrei === true)
    {
        
// Code um in DB zu schreiben oder Email senden
    
}    
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kleines beispiel</title>
</head>

<body>

<?php

if ($fehlerfrei === false)
{
    echo 
'Bitte überprüfen sie das Eingabefeld.';
}

?>

<form>
.
.
.
</form>

</body>
</html>
Bei mehreren Feldern arbeitet man mit einem Array.
Rizzo ist offline   Mit Zitat antworten
Alt 24.08.2008, 21:29   #4
TP-Supporter
 
Benutzerbild von Sascha79
 
Registriert seit: Jul 2008
Ort: Tübingen
Sascha79 macht sich hier sehr viel Mühe
Vielen Dank,

ich denke das hilft mir mal weiter. Hab zwar noch nie mit einem Array gearbeitet, aber ich werd mal ein bischen im Forum suchen und etwas googeln.
__________________
Das Leben ist schön -
Lehren ist die schönste Methode zu lernen.
Sascha79 ist offline   Mit Zitat antworten
Alt 25.08.2008, 00:00   #5
TP-Supporter
 
Benutzerbild von Sascha79
 
Registriert seit: Jul 2008
Ort: Tübingen
Sascha79 macht sich hier sehr viel Mühe
Hi nochmal,

wie bringe ich den diese Flags sauber in einem Array unter???
__________________
Das Leben ist schön -
Lehren ist die schönste Methode zu lernen.
Sascha79 ist offline   Mit Zitat antworten
Alt 25.08.2008, 00:04   #6
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Nein, nicht die Flags - die Fehlermeldungen.

if(dies == soundso) $fehlermeldungen[]='Das und das ist falsch';
if(jenes == bla) $fehlermeldungen[]='Das ist auch ganz ist falsch';

Ausgabe dann so:

if(isset($fehlermeldungen)){
foreach($fehlermeldungen AS $wert) echo $wert;
}
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist gerade online   Mit Zitat antworten
Alt 11.10.2008, 09:59   #7
TP-Supporter
 
Benutzerbild von Sascha79
 
Registriert seit: Jul 2008
Ort: Tübingen
Sascha79 macht sich hier sehr viel Mühe
Hallo Jungs,

da mir das zu dieser Zeit noch alles etwas zu hoch war (ich weiss, wollte wierder mal mit dem Kopf durch die Wand) und ich mich jetzt schon etwas mehr mit PHP beschäftigt habe, wollte ich das hier nochmal ausprobieren.

So, das hat auch soweit geklappt. Wenn ein Feld nicht ausgefüllt wird, werden die Daten nicht übertragen und eine Meldung wird angezeigt.

Nun habe ich aber das Problem, wenn alle Felder ausgefüllt wurden, werden die Daten leider auch nicht an die Datenbank weitergegeben. Mit print_r habe ich überprüft ob die Daten an PHP übergeben werden. Das passt soweit.

Hier mal mein Code:
PHP-Code:
//Flag setzen
$fehlerfrei true;


if  (isset (
$_POST['submitbutton'] ))

{
 
//Textfelder auf Inhalt überprüfen
 
if ($name == false)$fehlermeldung[]='Sie haben keinen Namen angegeben';
{
$fehlerfrei false;
}                 
if (
$fehlerfrei === true)
{                                          
//Verbindung zu Datenbank

//Inhalte sammeln der an die Dantenbank gesendet werden soll

//Inhalte an Dantenbank senden

//Prüfen ob Datensatz hinzugefügt wurde

und in der Ausgabe:
PHP-Code:
if (isset($fehlermeldungen))
{
foreach(
$fehlermeldungen AS $wert) echo $wert;

So hab ich mir das mal zusammen getüftelt. Über ein paar Tips würde ich mich freuen
__________________
Das Leben ist schön -
Lehren ist die schönste Methode zu lernen.
Sascha79 ist offline   Mit Zitat antworten
Alt 11.10.2008, 10:10   #8
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Zitat:
werden die Daten leider auch nicht an die Datenbank weitergegeben.
Naja ... da das dein Problem ist, solltest du uns genau diesen Code eigentlich nicht vorenthalten
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist gerade online   Mit Zitat antworten
Alt 11.10.2008, 10:15   #9
TP-Supporter
 
Benutzerbild von Sascha79
 
Registriert seit: Jul 2008
Ort: Tübingen
Sascha79 macht sich hier sehr viel Mühe
Hier ist der Code
PHP-Code:
 ///Flag setzen
$fehlerfrei true;


if  (isset (
$_POST['registrar'] ))

{

  
//Maskierende Slashes aus POST entfernen
    
$_POST get_magic_quotes_gpc() ? array_map'stripslashes'$_POST ) : $_POST;
    
    
  
//Inhalte der Textfeldern    aus POST holen
  
$nome $_POST['Name'];
  
$sobrenome $_POST['Nachname'];
  
$tel $_POST['Telefon'];
  
$email $_POST['E_mail'];
  
$servico $_POST['Dienst'];
 
 
 
 
//Textfelder auf Inhalt überprüfen
 
if ($nome == false)$fehlermeldung[]='<div id=statusmeldung><h2>Sie haben keinen Namen angegeben</h2></div>';
 if (
$sobrenome == false)$fehlermeldung[]='<div id=statusmeldung><h2>Sie haben keinen Nachnamen angegeben</h2></div>';
 if (
$tel == false)$fehlermeldung[]='<div id=statusmeldung><h2>Sie haben keine Telefonnummer angegeben</h2></div>';
 if (
$email == false)$fehlermeldung[]='<div id=statusmeldung><h2>Sie haben keine E-mail angegeben</h2></div>';
 if (
$servico == false)$fehlermeldung[]='<div id=statusmeldung><h2>Sie haben keinen Dienst angegeben</h2></div>';
                                        {
                                        
$fehlerfrei false;
                                        }
                                     if (
$fehlerfrei === true)
                                        {    
  
//Verbindung zu Datenbank
$conID mysql_connect $db_host$db_user$db_pass ) or die("Die Datenbank konnte nicht erreicht werden!");

if (
$conID)
{
  
mysql_select_db $db_name$conID );
}

//Inhalte sammeln der an die Dantenbank gesendet werden soll
$sql "INSERT INTO `form`
          (`Name`,`Nachname`,`Telefon`,`E_mail`,`Dienst`)
       
       VALUES(
       '" 
.mysql_real_escape_string ($nome)."',
       '" 
.mysql_real_escape_string ($sobrenome)."',
       '" 
.mysql_real_escape_string ($tel)."',
       '" 
.mysql_real_escape_string ($email)."',
       '" 
.mysql_real_escape_string ($servico)."'
       )"
;
       
//Inhalte an Dantenbank senden
mysql_query $sql );


//Prüfen ob Datensatz hinzugefügt wurde
 
if (mysql_affected_rows() == 1)
  {
   
$statusmeldung "<h2>Obrigado, seu registro foi bem sucedido!</h2><br>
                     <p>Você recebeu um Email da Listabarra.</p>"
;
  }
 else
  {
   
$statusmeldung "<h2 class='rot'>ERRO: Infelizmente seu registro foi mal sucedido!</h2>
                     <p>Para maiores informações escreve um Email para Listabarra!<p>
                     <a href='mailto:barradesaojoao@ymail.com'>Escrever Email</a></p>"
;
   } 

  }   
 } 
Bevor ich den Teil um die Textfelder zu prüfen eingebaut habe, wurden alle Daten hervoragend (Dank Rizzo´s Tutorial) an die DB übergeben.
__________________
Das Leben ist schön -
Lehren ist die schönste Methode zu lernen.

Geändert von Sascha79 (11.10.2008 um 11:02 Uhr).
Sascha79 ist offline   Mit Zitat antworten
Alt 11.10.2008, 12:00   #10
TP-Supporter
 
Benutzerbild von Sascha79
 
Registriert seit: Jul 2008
Ort: Tübingen
Sascha79 macht sich hier sehr viel Mühe
Hey Boris,

ich hab´s gelöst und zwar hab ich
PHP-Code:
if ($fehlerfrei === true
durch das

PHP-Code:
if ($nome == true)
if (
$sobrenome == true)
if (
$tel == true)
if (
$email == true)
if (
$servico == true
ersetzt. Damit hat´s geklappt.

Nur noch eine kleine Frage zum Verständnis. Sind das Booleans??? Ich weiss das es eine If-Anweisung ist, aber dadurch das ich mit true und false arbeite sollten es doch auch Booleans sein, oder???
__________________
Das Leben ist schön -
Lehren ist die schönste Methode zu lernen.
Sascha79 ist offline   Mit Zitat antworten
Alt 11.10.2008, 12:23   #11
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
== vergleicht nur Werte ... === vergleicht auch, ob es die gleiche Art ist (int === int, string === string).

'1' == 1 wäre war
'1' === 1 wäre falsch (string gegen int)

Allerdings seh ich jetzt spontan den Fehler nicht, mir brummt aber auch der Kopf
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist gerade online   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
//Validation [PHP] //Validation
« Sonderzeichen (Leerzeichen) entfernen | Checkbox wird nicht überprüft »

Stichworte
formulare, php, validation

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Validation von CSS Datei [jacky] Traum-Dynamik 5 29.03.2006 08:11
CSS-Validation (Jigsaw) 321 CSS 4 31.01.2006 17:00
frage zu W3C validation paris HTML Puristen 14 15.01.2006 20:02
w3c Validation Dittboy HTML Puristen 2 28.12.2004 20:49
.NEt Form Validation & Non-IE AnnaStesia Traum-Dynamik 3 04.05.2004 08:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:47 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.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28