php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.02.2009, 11:56  
Neuer Benutzer
 
Registriert seit: 04.02.2009
Beiträge: 3
proto befindet sich auf einem aufstrebenden Ast
Standard Help! Felder dürfen nicht gleich sein

Ich habe ein tell a friend Script womit ein Seite gleichzeitig an 3 verschiedene Freunde weiterempfehlen kann, es hat schon eine gute Validierung aber die 3 emails an den man weiterempfiehlt dürfen nicht gleich sein:

PHP-Code:
// ------------------------------------- //
// field validation functions start here //
// ------------------------------------- //

// form validation
function form_validate (
  ){
  global 
$m_fields;
  global 
$m_params;
  
  
// proceed
  
$l_status TRUE;
  
  if (!
validate_field_1($_POST['firstname'], $m_fields['firstname'], ''TRUE)) $l_status FALSE;
  if (!
validate_field_1($_POST['lastname'], $m_fields['lastname'], ''TRUE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_address'], $m_fields['email_address'], ''TRUE)) $l_status FALSE;
  if (!
validate_checkbox($_POST['send_me'], $m_fields['send_me'])) $l_status FALSE;
                 
  if (!
validate_email_address($_POST['email_01'], $m_fields['email_01'], ''FALSE)) $l_status FALSE;                 
  if (!
validate_email_address($_POST['email_01'], $m_fields['email_01'], ''FALSE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_02'], $m_fields['email_02'], ''FALSE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_03'], $m_fields['email_03'], ''FALSE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_04'], $m_fields['email_04'], ''FALSE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_05'], $m_fields['email_05'], ''FALSE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_06'], $m_fields['email_06'], ''FALSE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_07'], $m_fields['email_07'], ''FALSE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_08'], $m_fields['email_08'], ''FALSE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_09'], $m_fields['email_09'], ''FALSE)) $l_status FALSE;
  if (!
validate_email_address($_POST['email_10'], $m_fields['email_10'], ''FALSE)) $l_status FALSE;
  if (!
validate_field_1($_POST['message'], $m_fields['message'], ''FALSE)) $l_status FALSE;
  if (!
validate_field_2($_SERVER['REMOTE_ADDR'], $_POST['ip_address'], $m_fields['ip_address'], 'unknown'FALSE)) $l_status FALSE;

  
// loop on subscribed newsletters
  
$l_count count($m_params['newsletters']);
  for (
$l_cnt 0$l_cnt $l_count$l_cnt++) {
    
$l_name "news_" $l_cnt
    if (!
validate_checkbox($_POST[$l_name], $m_fields[$l_name])) $l_status FALSE;
    }
  
  
// check that at least one target email address has been provided
  
if (


    
$m_fields['email_03'][FIELD_VALUE] == '' &&
    
$m_fields['email_04'][FIELD_VALUE] == '' &&
    
$m_fields['email_05'][FIELD_VALUE] == '' &&
    
$m_fields['email_06'][FIELD_VALUE] == '' &&
    
$m_fields['email_07'][FIELD_VALUE] == '' &&
    
$m_fields['email_08'][FIELD_VALUE] == '' &&
    
$m_fields['email_09'][FIELD_VALUE] == '' &&
    
$m_fields['email_10'][FIELD_VALUE] == '' 
    
){
    
$m_fields['email_01'][FIELD_STATUS] = FALSE;
    
$m_fields['email_01'][FIELD_CLASS] = $m_fields['email_01'][FIELD_ERRORCLASS];
    
$l_status FALSE;
    }


  
// exit
  
return $l_status;
  }

// validate field
function validate_field_1 (
  &
$p_param,
  &
$p_field,
  
$p_default,
  
$p_mandatory
  
){
  
$p_field[FIELD_VALUE] = $p_param == '' $p_default $p_param;
  
  
$p_field[FIELD_STATUS] = TRUE;
  if (
$p_mandatory == TRUE) {
    
$p_field[FIELD_STATUS] = ($p_field[FIELD_VALUE] != "");
    if (!
$p_field[FIELD_STATUS]) $p_field[FIELD_CLASS] = $p_field[FIELD_ERRORCLASS];
    }
  
  
// exit
  
return $p_field[FIELD_STATUS];
  }

// validate field
function validate_field_2 (
  &
$p_param_1,
  &
$p_param_2,  
  &
$p_field,
  
$p_default,
  
$p_mandatory
  
){
  if (isset(
$p_param_1)) $p_field[FIELD_VALUE] = $p_param_1;
  if (isset(
$p_param_2) && $p_field[FIELD_VALUE] == ''$p_field[FIELD_VALUE] = $p_param_2;
  if (
$p_field[FIELD_VALUE] == ''$p_field[FIELD_VALUE] = $p_default;
  
  
$p_field[FIELD_STATUS] = TRUE;
  if (
$p_mandatory == TRUE) {
    
$p_field[FIELD_STATUS] = ($p_field[FIELD_VALUE] != "");
    if (!
$p_field[FIELD_STATUS]) $p_field[FIELD_CLASS] = $p_field[FIELD_ERRORCLASS];
    }
  
  
// exit
  
return $p_field[FIELD_STATUS];
  }

// validate field
function validate_field_3 (
  &
$p_param_1,
  &
$p_param_2,  
  &
$p_param_3,  
  &
$p_field,
  
$p_default,
  
$p_mandatory
  
){
  if (isset(
$p_param_1)) $p_field[FIELD_VALUE] = $p_param_1;
  if (isset(
$p_param_2) && $p_field[FIELD_VALUE] == ''$p_field[FIELD_VALUE] = $p_param_2;
  if (isset(
$p_param_3) && $p_field[FIELD_VALUE] == ''$p_field[FIELD_VALUE] = $p_param_3;
  if (
$p_field[FIELD_VALUE] == ''$p_field[FIELD_VALUE] = $p_default;

  
$p_field[FIELD_STATUS] = TRUE;
  if (
$p_mandatory == TRUE) {
    
$p_field[FIELD_STATUS] = ($p_field[FIELD_VALUE] != "");
    if (!
$p_field[FIELD_STATUS]) $p_field[FIELD_CLASS] = $p_field[FIELD_ERRORCLASS];
    }
  
  
// exit
  
return $p_field[FIELD_STATUS];
  }

// validate checkbox
function validate_checkbox (
  &
$p_param,
  &
$p_field
  
){
  
$p_field[FIELD_STATUS] = TRUE;
  
$p_value '0';
  if (isset(
$p_param)) $p_field[FIELD_VALUE] = $p_param == '' '0' '1';

  
// exit
  
return $p_field[FIELD_STATUS];
  }

// validate email address
function validate_email_address (
  &
$p_param,
  &
$p_field,
  
$p_default,
  
$p_mandatory
  
){
  
$p_field[FIELD_STATUS] = TRUE;
  
$p_field[FIELD_VALUE] = $p_param == '' $p_default $p_param;
  
  
// check if optional address is ok

  
if ($p_field[FIELD_VALUE] != "") {
    if (
preg_match("/^email_01.value $/ix"$p_field[FIELD_VALUE]) == 0) {
      
$p_field[FIELD_STATUS] = FALSE;
      
$p_field[FIELD_CLASS] = $p_field[FIELD_ERRORCLASS];
                 
      }
    }
  else {
      if (
$p_mandatory == TRUE) {
      
$p_field[FIELD_STATUS] = FALSE;
      
$p_field[FIELD_CLASS] = $p_field[FIELD_ERRORCLASS];
        }
      }
  

  
    
// check if optional address is ok

  
if ($p_field[FIELD_VALUE] != "") {
    if (
preg_match("/^[^@\s]+@([-a-z0-9]+\.)+([a-z]{2}|com|de|at|ch|net|edu|org|gov|mil|int|biz|pro|info|arpa|aero|coop|name|museum)$/ix"$p_field[FIELD_VALUE]) == 0) {
      
$p_field[FIELD_STATUS] = FALSE;
      
$p_field[FIELD_CLASS] = $p_field[FIELD_ERRORCLASS];
                 
      }
    }
  else {
      if (
$p_mandatory == TRUE) {
      
$p_field[FIELD_STATUS] = FALSE;
      
$p_field[FIELD_CLASS] = $p_field[FIELD_ERRORCLASS];
        }
      }
  
  
// exit
  
return $p_field[FIELD_STATUS];
  }

// ----------------------------------------- //
// html code generation functions start here //
// ----------------------------------------- //

// build error message
function html_build_error_message (
  &
$p_fields,
  &
$p_params
  
){
  
  
$l_error '';
  
  if (
$p_fields['firstname'][FIELD_STATUS] == FALSE$l_error .= $p_fields['firstname'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['lastname'][FIELD_STATUS] == FALSE$l_error .= $p_fields['lastname'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_address'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_address'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['send_me'][FIELD_STATUS] == FALSE$l_error .= $p_fields['send_me'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_01'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_01'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_02'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_02'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_03'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_03'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_04'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_04'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_05'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_05'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_06'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_06'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_07'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_07'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_08'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_08'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_09'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_09'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['email_10'][FIELD_STATUS] == FALSE$l_error .= $p_fields['email_10'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['message'][FIELD_STATUS] == FALSE$l_error .= $p_fields['message'][FIELD_ERRORTEXT] . "<br>";
  if (
$p_fields['link'][FIELD_STATUS] == FALSE$l_error .= $p_fields['link'][FIELD_ERRORTEXT] . "<br>";
  
  
// loop on subscribed newsletters
  
$l_count count($p_params['newsletters']);
  for (
$l_cnt 0$l_cnt $l_count$l_cnt++) {
    
$l_name "news_" $l_cnt;
    if (
$p_fields[$l_name][FIELD_STATUS] == FALSE$l_error .= $p_fields[$l_name][FIELD_ERRORTEXT] . "<br>";
    }
  
  
// exit
  
return $l_error;
  } 
sowas?
if(this.email_01.value == this.email_02.value)
proto ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.02.2009, 12:08  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Ja ist doch nicht so schwer oder? Überprüfst du eben ob zwei Emailadressen gleich sind. "this.email_02.value" wird nicht funktionieren das ist keine Variable in PHP das ist eher Java Syntax.

Noch einfacher ist es wenn du die Emails eh schon in einem Array hast einfach zu prüfen ob doppelte Werte im Array vorkommen.
Zum Beispiel mit:

PHP-Code:
if (count($array) != count(array_unique($array))) echo 'es gibt doppelte Emailadressen';
else echo 
'alle verschieden'
Es sieht nur so aus dass du keine Ahnung von PHP hast, ich glaub da wird es schwer dass du dein Skript so umbiegst das es funktioniert
Flor1an ist offline  
Alt 04.02.2009, 12:15  
Neuer Benutzer
 
Registriert seit: 04.02.2009
Beiträge: 3
proto befindet sich auf einem aufstrebenden Ast
Standard

Tja weder von php noch von java eine Ahnung sonst wäre ich nicht hier!
proto ist offline  
Alt 04.02.2009, 14:21  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Dann schau mal unsere angepinnten Threads an, da findest du gute Tutorials/Bücher etc. um PHP zu lernen. Allerdings wird es sicherlich noch einige Zeit dauern bis du so fitt bist das Skript da oben so zu erweitern dass es auf deine Bedürfnisse zugeschnitten ist.
Flor1an ist offline  
Alt 06.02.2009, 11:03  
Neuer Benutzer
 
Registriert seit: 04.02.2009
Beiträge: 3
proto befindet sich auf einem aufstrebenden Ast
Standard

Danke Flor1an deine Lösung ist sehr gut, ich habe mich erst schlau machen müssen:

// demail
$demail = array ( $_POST['email_01'], $_POST['email_02'], $_POST['email_03']);

if ($p_field[FIELD_VALUE] != "") {
if (count($demail) != count(array_unique($demail))) {
$p_field[FIELD_STATUS] = FALSE;
$p_field[FIELD_CLASS] = $p_field[FIELD_ERRORCLASS];
}
}
else {
if ($p_mandatory == TRUE) {
$p_field[FIELD_STATUS] = FALSE;
$p_field[FIELD_CLASS] = $p_field[FIELD_ERRORCLASS];
}
}
proto ist offline  
Alt 06.02.2009, 11:55  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Bitte verwende die [php]-Tags für PHP-Code...
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
 


Themen-Optionen
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
Felder eines Datensatzes separieren aniga_de Datenbanken 10 26.01.2010 21:29
Excel Spreadsheet Writer -> Import Outlook -> Felder definieren... taurus PHP Tipps 2008 0 16.12.2008 12:10
Schwierige (?) Sortierung über 2 Felder Anotherone Datenbanken 8 31.12.2006 02:48
mysql mehrere felder aus 2 tabellen bei vorhandensein eines cytrobic Datenbanken 9 30.06.2006 13:27
suche tutorial: FORMULAR FELDER AUF INHALT PRÜFEN PHP Tipps 2006 7 25.01.2006 19:14
[Erledigt] Große Felder wie TEXT auslagern? Datenbanken 9 26.10.2005 20:22
Formularauswertung: Leere Felder anzeigen maeck PHP Tipps 2005-2 1 18.09.2005 21:42
[Erledigt] 2 Felder schließen sich aus Datenbanken 3 11.08.2005 13:39
Suche MySQL Funktion zum Verbinden 2er Felder R4v3r Datenbanken 2 12.07.2005 23:49
Zugriff auf Felder bei Inner Join Datenbanken 2 27.04.2005 14:40
Dynamisch Formular Felder erstellen Simon9990 PHP Tipps 2005 2 29.01.2005 22:00
leere felder entfernen PHP Tipps 2007 14 04.01.2005 10:59
felder mqs PHP Tipps 2004-2 1 08.12.2004 17:03
felder gegebenen falls überprüfen und sonst mail schicken. lindner PHP Tipps 2004-2 1 14.11.2004 15:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
excel felder dürfen nicht identisch sein, onreturn validatefield

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum