php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.01.2006, 02:55  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard bedingung nicht erfüllt trotzdem true ?

gucktmal, mein skript:
PHP-Code:
<?
print_r
($_POST);
if(isset(
$studio_suremode_off)) {
### studio_sure(variable) /start ###
$errormsg 'fatal error in function.php could not stay with sure mode';
foreach(
$_POST as $k => $v) { $_POST[$v] = htmlentities($_POST[$k]) or die("$errormsg"); }
foreach(
$_GET as $k => $v) { $_GET[$v] = htmlentities($_GET[$k]) or die("$errormsg"); }
### studio_sure(variable) /end ###
}

function 
studio_errormsg($id) {
### studio_errormsg(id) /start ###
### studio_errormsg(end) /start ###
}

function 
studio_kontakt($parameter) {
if(
$parameter == "formular") {
    
### studio_kontakt(formular) /start###
    
echo '<form method="POST" action="';
    echo 
$_SERVER['PHP_SELF'];
    echo 
' ">

Kontakt aufnehmen mit: <select size="1" name="empfaenger">
    <option value="freak131@gmx.de">Coder</option>
    <option selected value="notyyy6@hotmail.com">Designer</option>
  </select>

  

  Passender Titel: <input type="text" name="titel" size="20">
  </p>
   

Ihre E-Mail: <input type="text" name="email" size="20">

  </p>
  

Ihre Nachricht:

  <textarea rows="8" name="inhalt" cols="33"></textarea></p>
  

<font size="2">*mit dem Abschicken geben Sie und automatisch die Rechte
  Ihre IP zu loggen.</font></p>
  

<input type="submit" value="abschicken" name="request">
  <input type="reset" value="alles leeren" name="B2"></p>
</form> '
;
### studio_kontakt(formular) /end###
}


if(
$parameter == "senden") {
        if(
$_POST['request'] == "abschicken") {
    
### studio_kontakt(senden) /start ###
            
if($_POST['empfaenger'] =! "" && $_POST['sender'] =! "" && $_POST['inhalt'] =! "" && $_POST['email'] =! "" && $_POST['titel'] != "") {
        
                if(
$_POST['empfaenger'] == 'freak131@gmx.de' OR $_POST['empfaenger'] == 'notyyy6@hotmail.com')
                
mail($_POST['empfaenger'], $_POST['titel'], $_POST['inhalt'],"From: $_POST[mail]");  
                echo 
"Ihre Anfrage wurde erfolgreich verschickt";
                } else {
                echo 
'error - falsche sender addy'
                }
        
            } else {
            echo 
'error - nich alle felder gesetzt';
            }  
        } else {
        
studio_kontakt("formular");
        }
}

    
### studio_kontakt(senden) /end###
studio_kontakt("senden");
echo 
$_POST['request'];
?>
gibt beim aufruf folgendes aus:
Code:
Array ( ) error - nich alle felder gesetzt
die kann er überhaupt zu diesem ergebniss kommen, die bedingung (POST) kann doch garnicht erfüllt sein.

ich hab alles probiert, != und =! ^^ if != "" mit isset u.s.w.
notyyy ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 15.01.2006, 03:36  
Gast
 
Beiträge: n/a
Standard

Welche Bedingung (POST) denn?
Geh nochmal die Aufrufe und Bedingungen durch. Du kommst direkt bei echo 'error - nich alle felder gesetzt'; an
 
Alt 15.01.2006, 12:00  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

if($_POST['request'] == "abschicken") { ist doch schon garnicht true also müsste er studio_kontakt("formular"); aufrufen ?
notyyy ist offline  
Alt 15.01.2006, 12:05  
Gast
 
Beiträge: n/a
Standard

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Gruß
phpfan
 
Alt 15.01.2006, 12:11  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von notyyy
if($_POST['request'] == "abschicken") { ist doch schon garnicht true also müsste er studio_kontakt("formular"); aufrufen ?
Wenn Du konsequent einrücken und formatieren würdest, wüsstest Du, dass das nicht die relevante Bedingung ist.
Zu welchem if gehört
Code:
} else {
	studio_kontakt("formular");
}
?
 
Alt 15.01.2006, 14:10  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard Re: bedingung nicht erfüllt trotzdem true ?

Zitat:
Zitat von notyyy
gucktmal, mein skript:
PHP-Code:
<?php
if(isset($studio_suremode_off)) {
### studio_sure(variable) /start ###
$errormsg 'fatal error in function.php could not stay with sure mode';
foreach(
$_POST as $k => $v) { $_POST[$v] = htmlentities($_POST[$k]) or die("$errormsg"); }
foreach(
$_GET as $k => $v) { $_GET[$v] = htmlentities($_GET[$k]) or die("$errormsg"); }
### studio_sure(variable) /end ###
}
?>
Was soll denn dieser Teil des Codes machen?
Wenn ich jetzt nicht grad nen Knoten im Hirn hab, wird da aus den Inhalten der Elemente jeweils ein neuer Schlüssel gebaut.

Also wenn ich das Script wie folgt aufrufe
http://xy.z/meinscript.php?abc=1&bcd=1
dann wird foreach mit $k=''abc' und 'bcd' aufgerufen, während $v die Werte '1' und '1' hat.

$_GET[$k] bzw. $_POST[$k] könnten natürlich auch einfach durch $v ersetzt werden.

Du machst also das hier:
$_GET['1'] = htmlentities($_GET['abc']);
und danach
$_GET['1'] = htmlentities($_GET['bcd']);

Das kann doch nicht wirklich beabsichtigt sein, oder?
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard 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
[Erledigt] true ausgeben Frush PHP Tipps 2008 9 30.07.2008 19:42
Where Bedingung mit Session datei incubo PHP Tipps 2008 11 28.04.2008 14:26
MySQL und Boolean: Werte nur auslesen, wenn TRUE schmidtsmikey PHP Tipps 2008 10 25.03.2008 13:00
URL - bedingung nixdorf PHP Tipps 2007 3 03.01.2007 01:14
if(empty($_POST)) { -> true auch wenn Daten vorhanden.... ssm PHP-Fortgeschrittene 9 06.09.2006 18:26
[Erledigt] WHERE Bedingung Datenbanken 1 11.08.2006 08:29
SELECT um eine Bedingung erweitern ?! Datenbanken 2 22.10.2005 10:09
Where Bedingung phpbeginner Datenbanken 4 24.06.2005 11:49
if bedingung PHP Tipps 2005-2 4 14.06.2005 10:13
Alternative zu Acronis True Image 8.0? Off-Topic Diskussionen 6 01.04.2005 22:55
[Erledigt] left outer join mit bedingung Datenbanken 2 04.03.2005 00:52
mail() Funktion - Liefert TRUE jedoch .... PHP Tipps 2005 21 23.02.2005 11:54
(AUSDRUCK) ? TRUE : FALSE; PHP Tipps 2004-2 4 31.12.2004 13:10
Return true, false suter PHP Tipps 2004-2 9 03.12.2004 09:28
ignorieren von bedingung PHP Tipps 2004 5 10.08.2004 17:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
wenn bedingung nicht erfüllt ist nicht senden, if(isset ($_get[\'frusch\']) && ($_get[\'frusch\'] != \'\'), wenn bedingung nicht erfüllt trotzdem, htmlentities bedingung

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:16 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.