php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-09-2009, 12:30
kleiner57990
 Registrierter Benutzer
Links : Onlinestatus : kleiner57990 ist offline
Registriert seit: Sep 2009
Beiträge: 16
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard echo erst dann ausgeben wenn mehre typen den wert von var entsprechen


Hallo an alle hab mal eine frage wie bekomme ich es in das wenn KNRANR und telefon falsch sind anstatt das jeweilige echo nur eins raus bekomme: (also mit nur eins meine ich dann letzteres also "BITTE ALLE ROT MARKIERTEN FELDER AUSFÜLLEN!"


<?php
if(isset($_POST["Senden"])){
if(isset($_POST["KNRANR"]) && $_POST["KNRANR"] =="") {
echo "Bitte Kunden bzw Abonummer angeben!";
$fehlerknranr =17;
$var = 99;
}}
?>
<?php
if(isset($_POST["Senden"])){
if(isset($_POST["telefon"])&& $_POST["telefon"] ==""){
echo "Bitte Telefon Nummer eingeben!";
$fehlertelefon =18;
$var = 99;
}}?>

<?php
if(isset($_POST["Senden"])){if((empty ($_POST)== ($var == 99))==""){
echo "Bitte alle rot markiete Felder ausfüllen";
}}
?>

Geändert von kleiner57990 (16-09-2009 um 12:36 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 16-09-2009, 12:53
Caine Luveno
 Registrierter Benutzer
Links : Onlinestatus : Caine Luveno ist offline
Registriert seit: May 2004
Beiträge: 40
Caine Luveno ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Da hast du dir was zusammengebaut... Code Tags und Einrücken erleichtert das Lesen übrigens erheblich.

PHP-Code:
$errors = array();
if (isset(
$_POST['Senden']) {
      
$errors['knrank'] = !isset($_POST["KNRANR"]);
      
$errors['telefon'] = !isset($_POST["telefon"]);
}

if (
count($errors) == 2) {
      echo 
'Bitte alle rot amrkierten Felder ausfüllen';
} else {
    if (
$errors['knrank'])
       echo 
'Bitte Kunden bzw Abonummer angeben!';

    if (
$errors['telefon'])
       echo 
'Bitte Telefon Nummer eingeben!';

Da du eher wie ein Neuling wirkst noch eine Erläuterung dazu:
Als erstes wird ein Array definiert welches alle Fehlerfelder beinhalten soll, denn count(isset()) kann man schlecht abfragen und count($_Post) ist auch unschön da Formulare manipulierbar sind.

Danach wird im Array gespeichert welche Felder undefiniert sind. Per count() kann man nun die Länge des Arrays und somit die Anzahl Fehler ermitteln und Abfragen oder ggf. individuelle Fehlermeldungen ausgeben.
Mit Zitat antworten
  #3 (permalink)  
Alt 16-09-2009, 13:12
kleiner57990
 Registrierter Benutzer
Links : Onlinestatus : kleiner57990 ist offline
Registriert seit: Sep 2009
Beiträge: 16
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

Ja bin ganz neu dabei ist jetzt die erste woche die ich damit arbeite:
ich habe nun folgendes eingegeben:


<?php
if
(isset($_POST["Senden"])){
$errors['knrank'] = !isset($_POST["KNRANR"]);
$errors['telefon'] = !isset($_POST["telefon"]);
}
if (count(
$errors) == 2) {
echo
'Bitte alle rot amrkierten Felder ausfüllen';
} else {
if (
$errors['knrank'])
echo
'Bitte Kunden bzw Abonummer angeben!';
if (
$errors['telefon'])
echo
'Bitte Telefon Nummer eingeben!';
}
$fehlertelefon =18;
$fehlerknranr =17;
?>


Doch jetzt zeigt er mir telefon und KNRANR in meinem formular ob ausgefüllt oder nicht immer als rot (also falsch an)

PS: Da das formular länger ist habe ich ganz oben eine extra zeiele für die array angelegt.


<?php $errors = array() ?>


........(beginne des formular)
Mit Zitat antworten
  #4 (permalink)  
Alt 16-09-2009, 14:57
kleiner57990
 Registrierter Benutzer
Links : Onlinestatus : kleiner57990 ist offline
Registriert seit: Sep 2009
Beiträge: 16
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

Kann man das vlt nicht anders machen ohne diese array den damit komme ich nicht zurecht!
Mit Zitat antworten
  #5 (permalink)  
Alt 16-09-2009, 15:08
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

mit dem Array hat das vermutlich wenig zu tun. Ich denke, dass es an diesen beiden Variablen liegt:

Zitat:
Zitat von kleiner57990 Beitrag anzeigen
$fehlertelefon =18;
$fehlerknranr =17;
Vorher wurden die im entsprechenden if-Block gesetzt, jetzt außerhalb. Daher werden die also immer belegt und sorgen vermutlich daher für die rote Kennzeichnung der Felder.

Ist es so besser?
PHP-Code:
if (isset($_POST["Senden"])) {
    
$errors['knranr'] = !isset($_POST["KNRANR"]);
    
$errors['telefon'] = !isset($_POST["telefon"]);
}
if (
count($errors) == 2) {
    echo 
'Bitte alle rot markierten Felder ausfüllen';
    
$fehlerknranr =17;
    
$fehlertelefon =18;
}
else if (
$errors['knranr']) {
    echo 
'Bitte Kunden bzw Abonummer angeben!';
    
$fehlerknranr =17;
}
else if (
$errors['telefon']) {
    echo 
'Bitte Telefon Nummer eingeben!';
    
$fehlertelefon =18;

Gruß,

Amica
Mit Zitat antworten
  #6 (permalink)  
Alt 16-09-2009, 16:49
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

@kleiner57990: Bitte nutze die [php]-Tags zur Formatierung von PHP-Code.
Und deine eigenen Aussagen brauchst du nicht in Fett und Rot schreiben - keine Angst, du wirst auch wenn du "normal" schreibst, nicht überlesen.
Bitte passe deine bisherigen Beiträge vor deiner nächsten Antwort entsprechend an.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 16-09-2009, 16:50
kleiner57990
 Registrierter Benutzer
Links : Onlinestatus : kleiner57990 ist offline
Registriert seit: Sep 2009
Beiträge: 16
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

Hab es jetzt so eingetippt wie du gesagt hast Amica.

Und ja es geht schon viel besser den jetzt erkennt er die fehler auch erst dann wenn ich auf Senden drücke was vorher nicht der fall war.

Jedenfalls Sind egal ob ich die felder ausfülle oder nicht er sieht sie nach dem klick auf Senden trotzdem als falsch an?

hast du vielleicht einen rat dazu?

PS: die zwei variabeln $fehler...dienen eigentlich nur dazu das später die namen auch in der passende farbe sind ihr mal mein eingegebener code vielleicht fällt dir ja da ein fehler auf:

<input name="telefon" type="text"
value="<?php
if (isset($_POST["telefon"])) {
echo $_POST["telefon"];
}
?>
">
<?if($fehlertelefon ==18){?><font color="red"><?}?>
<br>
Telefon</p>
<?if($fehlertelefon ==18){?></font><?}?>
Mit Zitat antworten
  #8 (permalink)  
Alt 16-09-2009, 16:53
kleiner57990
 Registrierter Benutzer
Links : Onlinestatus : kleiner57990 ist offline
Registriert seit: Sep 2009
Beiträge: 16
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von wahsaga Beitrag anzeigen
@kleiner57990: Bitte nutze die [php]-Tags zur Formatierung von PHP-Code.
Und deine eigenen Aussagen brauchst du nicht in Fett und Rot schreiben - keine Angst, du wirst auch wenn du "normal" schreibst, nicht überlesen.
Bitte passe deine bisherigen Beiträge vor deiner nächsten Antwort entsprechend an.
Ja mache ich kein thema.

PS:Sorry wegen rot und dicke buchstaben ich kopiere die quellecode einfach aus PHPEDIT raus und schreibe dann weiter dann zeigt er es von allein so an war keine absicht.
Mit Zitat antworten
  #9 (permalink)  
Alt 16-09-2009, 17:16
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von kleiner57990 Beitrag anzeigen
Hab es jetzt so eingetippt wie du gesagt hast Amica.

er sieht sie nach dem klick auf Senden trotzdem als falsch an?
Sorry, hatte den oberen Teil von Caine übernommen, ohne drüber nachzudenken. Der ergibt aber keinen Sinn bzw. kann nicht so funktionieren, wie er wahrscheinlich soll.

Hier nochmal überarbeitet:
PHP-Code:
$errors = array("count" => 0);
if (isset(
$_POST["Senden"])) {
    if (!isset(
$_POST["KNRANR"]) || !trim($_POST["KNRANR"])) {
        
$errors["count"]++;
        
$errors["knranr"] = true;
    }
    if (!isset(
$_POST["telefon"]) || !trim($_POST["telefon"])) {
        
$errors["count"]++;
        
$errors["telefon"] = true;
    }
}
if (
$errors["count"] == 2) {
    echo 
'Bitte alle rot markierten Felder ausfüllen';
    
$fehlerknranr =17;
    
$fehlertelefon =18;
}
else if (isset(
$errors['knranr'])) {
    echo 
'Bitte Kunden bzw Abonummer angeben!';
    
$fehlerknranr =17;
}
else if (isset(
$errors['telefon'])) {
    echo 
'Bitte Telefon Nummer eingeben!';
    
$fehlertelefon =18;

Mit Zitat antworten
  #10 (permalink)  
Alt 16-09-2009, 17:21
kleiner57990
 Registrierter Benutzer
Links : Onlinestatus : kleiner57990 ist offline
Registriert seit: Sep 2009
Beiträge: 16
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

Vielen vielen Danke Amica jetzt funktioniert es.

Kleine frage ist das jetzt ein großer aufwand mir grob zu erklären warum das jetzt funktioniert und der vorher nicht?

Den reinkopieren wie ich es gemacht habe damit es funktioniert ist ja schon möchte aber schon gerne kapieren was ich da überhaupt gemacht habe.
Mit Zitat antworten
  #11 (permalink)  
Alt 16-09-2009, 17:31
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Das count($errors) hat immer 2 ergeben, weil der Code von Caine so funktioniert, dass er die beiden Einträge im Array immer anlegt, und dabei nur mit Wahrheitswerten unterscheidet, ob der Fehler aufgetreten ist oder nicht.

Ich hab es jetzt so gemacht, dass ich das in ein if gepackt habe und dadurch wird nur was ins Array eingetragen, wenn wirklich der Fehler aufgetreten ist. Außerdem reicht es nicht, nur auf Anwesenheit des Feldes zu prüfen (isset), sondern man muss auch prüfen, ob der Wert leer ist oder nur Leerzeichen enthält, daher das trim.

Gruß,

Amica
Mit Zitat antworten
  #12 (permalink)  
Alt 16-09-2009, 17:40
kleiner57990
 Registrierter Benutzer
Links : Onlinestatus : kleiner57990 ist offline
Registriert seit: Sep 2009
Beiträge: 16
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

Okey hab es ungefähr kapiert. Nochmals vielen Dank.
Mit Zitat antworten
  #13 (permalink)  
Alt 16-09-2009, 17:43
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Privaten E-Mail-Support leiste ich nur, wenn ich es selbst und ausdrücklich anbiete.

Zitat:
Der fehler wird jetzt zwar echt dann angezeigt wenn ich auf Senden drück doch ob ich die felder ausfülle oder nicht am ende steht immer "Bitte füllen sie alle Felder aus!".

Hast du vielleicht eine idee wo das problem liegen könnte?
Du hast immer nur einen Teil des Codes gepostet. Eventuell ist da woanders noch eine Stelle, die das verursacht.
Mit Zitat antworten
  #14 (permalink)  
Alt 17-09-2009, 19:52
Caine Luveno
 Registrierter Benutzer
Links : Onlinestatus : Caine Luveno ist offline
Registriert seit: May 2004
Beiträge: 40
Caine Luveno ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Das count($errors) hat immer 2 ergeben, weil der Code von Caine so funktioniert, dass er die beiden Einträge im Array immer anlegt, und dabei nur mit Wahrheitswerten unterscheidet, ob der Fehler aufgetreten ist oder nicht.

Ich hab es jetzt so gemacht, dass ich das in ein if gepackt habe und dadurch wird nur was ins Array eingetragen, wenn wirklich der Fehler aufgetreten ist. Außerdem reicht es nicht, nur auf Anwesenheit des Feldes zu prüfen (isset), sondern man muss auch prüfen, ob der Wert leer ist oder nur Leerzeichen enthält, daher das trim.

Gruß,

Amica
Jap... da hab ich gepennt... x). Da hab ich zwei mögliche Lösungsansätze in meinem Kopf miteinander vermischt.... denn eigentlich wollte ich auf $errors['wert'] true/false prüfen... oder halt alternativ nach seperaten if-abfragen nach count($errors) und das lief beides ineinander.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Erst Wert bestimmen, dann function aufrufen sonny83 PHP Developer Forum 11 10-11-2006 19:54
Daten erst dann in DB speichern, wenn Felder OK sind m-werk PHP Developer Forum 12 11-04-2006 13:04
Erst Limit, dann Order PHPbeginner SQL / Datenbanken 7 28-02-2005 16:30
UserName ausgeben wenn session_id=Wert in Tab. ist konSumi Tutorials 28 05-07-2004 08:39
if wert im link dann ausgeben s.roettger PHP Developer Forum 7 16-12-2003 17:26

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:53 Uhr.