php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.02.2006, 01:07  
Gast
 
Beiträge: n/a
Standard Bei If den Rest vom Case "ausblenden"?

Hallo,

ist es möglich, dass ich unten bei den if-echos das so anstellen kann, dass eben nur diese einen echos ausgegeben werden und der Rest vom Case, also das Formular, dann ignoriert wird?

Hier mal der Code des cases:
PHP-Code:
case "contact":
        echo 
"contact</u>[/b]</div>";
        
$ip getenv('REMOTE_ADDR');
        
$date date('d.m.Y');
        
$time date('H:i:s');
        if(isset(
$_POST['send'])) {
            if(empty(
$name) || empty($mail) || empty($message) || empty($subject)) {
                echo 
"<font color=\"#550000\">[b]Fehler:[/b]</font>
Du musst die Felder \"Name\", \"E-Mail\", \"Betreff\" und \"Nachricht\" ausfüllen!"
;
                } else {
                
mail("sim-mg@gmx.de""Nachricht von $name ($subject)""Name: $name\nE-Mail: $mail\nWebsite: $website\nIP: $ip\nDatum: $date - $time\nBetreff: $subject\n\n$message""From: $mail");
                echo 
"Deine Nachricht wurde erfolgreich versandt. Vielen Dank!";
                }
            }
        echo 
"<form name=\"send\" method=\"post\" action=\"index.php?show=contact&action=send\"><table border=\"0\">
                  <tr><td>Name: [b]<font color=\"#880000\">*</font>[/b]</td><td><input name=\"name\" type=\"text\" size=\"40\"></td></tr>
                <tr><td>E-Mail: [b]<font color=\"#880000\">*</font>[/b]</td><td><input name=\"mail\" type=\"text\" size=\"40\"></td></tr>
                <tr><td>Website:</td><td><input name=\"website\" type=\"text\" size=\"40\"></td></tr>
                <tr><td>Betreff: [b]<font color=\"#880000\">*</font>[/b]</td><td><input name=\"subject\" type=\"text\" size=\"40\"></td></tr>
                <tr><td valign=\"top\">Nachricht: [b]<font color=\"#880000\">*</font>[/b]</td><td><textarea name=\"message\" cols=\"40\" rows=\"5\"></textarea></td></tr>
                <tr><td></td><td><input type=\"submit\" name=\"send\" value=\"Abschicken\"></td></tr>
                <tr><td></td><td></td></tr>
                <tr><td colspan=\"2\"><font color=\"#880000\">*</font> Erforderliche Angabe</td></tr>
            </table></form>"
;
        break; 
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.02.2006, 01:13  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

bau's um, so wirst du eh nicht glücklich.

die lösung heißt zwar break(2), aber es sei dir geraten, alles, was in dem case-statement steht, in eine eigene function zu packen und woanders hin zu stellen.

beispiel:
http://www.php-faq.de/q/q-stil-normalform.html

grüße
axo
axo ist offline  
Alt 24.02.2006, 01:14  
XLB
Erfahrener Benutzer
 
Registriert seit: 31.07.2005
Beiträge: 1.126
PHP-Kenntnisse:
Fortgeschritten
XLB
Standard

Ähhh ...

... durch ein "else" vielleicht ...?

edit: nur zur Info : break
XLB ist offline  
Alt 24.02.2006, 01:54  
Gast
 
Beiträge: n/a
Standard

@ axo:
Der Übersicht etc. halber jetzt, oder wie?! o.O In dem Beispiel kann ich aber nicht erkennen, wie das dann woanders steht und wie ich das "einfügbereit" mache.
break(2) habe ich auch nicht wirklich finden können!
Habe nun jedenfalls etwas "umgebaut"... Aber selbst das mit dem $_SERVER['PHP_SELF'] will nichts nützen, dass wenigstens die Daten dann drin bleiben, wenn man was vergessen hat.

Sieht jetzt so aus:
[php]<?php case "contact": ?>
contact</u>[/b]</div>
<?php $ip = getenv('REMOTE_ADDR');
$date = date('d.m.Y');
$time = date('H:i:s');
if(isset($_POST['send'])) {
if(empty($name) || empty($mail) || empty($message) || empty($subject)) {
echo "<font color=\"#550000\">Fehler:</font>
Du musst die Felder \"Name\", \"E-Mail\", \"Betreff\" und \"Nachricht\" ausfüllen!";
} else {
mail("sim-mg@gmx.de", "Nachricht von $name ($subject)", "Name: $name\nE-Mail: $mail\nWebsite: $website\nIP: $ip\nDatum: $date - $time\nBetreff: $subject\n\n$message", "From: $mail");
echo "Deine Nachricht wurde erfolgreich versandt. Vielen Dank!";
}
} ?>
<form name="send" method="post" action="<?php $_SERVER['PHP_SELF']; ?>"><table border="0">
<tr><td>Name: <font color="#880000">*</font></td><td><input name="name" type="text" size="40"></td></tr>
<tr><td>E-Mail: <font color="#880000">*</font></td><td><input name="mail" type="text" size="40"></td></tr>
<tr><td>Website:</td><td><input name="website" type="text" size="40"></td></tr>
<tr><td>Betreff: <font color="#880000">*</font></td><td><input name="subject" type="text" size="40"></td></tr>
<tr><td valign="top">Nachricht: <font color="#880000">*</font></td><td><textarea name="message" cols="40" rows="5"></textarea></td></tr>
<tr><td></td><td><input type="submit" name="send" value="Abschicken"></td></tr>
<tr><td></td><td></td></tr>
<tr><td colspan="2"><font color="#880000">*</font> Erforderliche Angabe</td></tr>
</table></form>
<?php break;
PHP-Code:
 ?> 
Auch nicht grad das, was ihr meintet oder?!


EDIT: Ah jetzt gerafft, das mit dem Break! =)
Aber das mit dem $_SERVER['PHP_SELF'] würde das immer noch nicht klären, wa? Danke aber!
 
Alt 24.02.2006, 02:02  
Gast
 
Beiträge: n/a
Standard

Aus "hygienischen" Gründen....
Pack alles in eine Funktion rein (und bei Mail eine Fehlerbehandlung - siehe unten), also sowas in der Art:

Code:
function machdasdusack()
{
 echo "contact</u>[/b]</div>";
 $ip = getenv('REMOTE_ADDR');
 $date = date('d.m.Y');
 $time = date('H:i:s');
 if(isset($_POST['send']))
 {
  if(empty($name) || empty($mail) || empty($message) || empty($subject)) {
  echo "<font color=\"#550000\">Fehler:</font>
Du musst die Felder \"Name\", \"E-Mail\", \"Betreff\" und \"Nachricht\" ausfüllen!";
 } else {
  #-------- HIER ERSTMAL FEHLER-BEHANDLUNG
  if (mail("sim-mg@gmx.de", "Nachricht von $name ($subject)", "Name: $name\nE-Mail: $mail\nWebsite: $website\nIP: $ip\nDatum: $date - $time\nBetreff: $subject\n\n$message", "From: $mail"))
   echo "Deine Nachricht wurde erfolgreich versandt. Vielen Dank!";
  else
   echo 'Deine Nachricht wurde NICHT versandt! Entweder taugt der Mailer hier nix, oder ich mag Dich nich!'; 
 }
 else #-------- DAS ISSES !!!!!
 { #-------- UND DAS !!!!!
  echo "<form name=\"send\" method=\"post\" action=\"index.php?show=contact&action=send\"><table border=\"0\">
      <tr><td>Name: <font color=\"#880000\">*</font></td><td><input name=\"name\" type=\"text\" size=\"40\"></td></tr>
    <tr><td>E-Mail: <font color=\"#880000\">*</font></td><td><input name=\"mail\" type=\"text\" size=\"40\"></td></tr>
    <tr><td>Website:</td><td><input name=\"website\" type=\"text\" size=\"40\"></td></tr>
    <tr><td>Betreff: <font color=\"#880000\">*</font></td><td><input name=\"subject\" type=\"text\" size=\"40\"></td></tr>
    <tr><td valign=\"top\">Nachricht: <font color=\"#880000\">*</font></td><td><textarea name=\"message\" cols=\"40\" rows=\"5\"></textarea></td></tr>
    <tr><td></td><td><input type=\"submit\" name=\"send\" value=\"Abschicken\"></td></tr>
    <tr><td></td><td></td></tr>
    <tr><td colspan=\"2\"><font color=\"#880000\">*</font> Erforderliche Angabe</td></tr>
      </table></form>";
 } #-------- UND DAS HIER AUCH !!!!!
} # EOFunction machdasdusack()

case "contact":
  machdasdusack();
  break;
...
Übrigens ist $ip nicht unbedingt belegt - kann auch ein Nullstring sein - in diesem Fall sieht es blöd aus, wenn Du das mit in die Mail packst.
Vorschlag:

Code:
if ($ip != "") $ip = "IP: ". $ip ."\n";
und dann nur $ip einfügen. Ist diese leer, fällt automatisch auch der "IP:"- Teil raus und Die Mail ist 'sauberer'.
 
Alt 24.02.2006, 02:20  
Gast
 
Beiträge: n/a
Standard

Ah das mit dem if ungleich leer mach ich dann auch bei so Sachen wie Homepage und so am besten, gelle?

Aber auf jeden Fall schonmal danke für die "Generalüberholung"... Werde gucken, was ich davon einbringe! Weil soweit sieht's jetzt schonmal so aus, wie ich es haben wollte.

Könnt ihr euch ja mal angucken: http://simmes.cwsurf.de/index.php?show=contact

(Design noch nicht ganz fertig... Finde kein originelles, tolles Bild für'n Header! )
 
Alt 24.02.2006, 02:23  
Gast
 
Beiträge: n/a
Standard

Bild fürn Header - www.shutterstock.com (kost' Geld, aber Profi-Pics!)

was das Formular angeht: Arbeite mit CSS, damit die Felder gleich breit sind - ungefähr so:
Code:
<style type="text/css">
.contactfled { width:250px;}
</style>

<input class="contactfeld" ...
<textarea class="contactfeld" ...
Sieht einfach sauberer aus.
 
Alt 24.02.2006, 02:33  
Gast
 
Beiträge: n/a
Standard

Danke für den Link, sind auch faszinierende Bilder dabei, doch ist das gut Schotter für so 'nen Schüler!

Das mit dem CSS hab ich natürlich direkt mal angewendet!
Hm, soll ich für die Eingabefelder so leichte Scanlines als Hintergrund nehmen oder ist das zu viel des Guten?

EDIT: Wie mach ich das mit diesem <?php if ($ip != "") $ip = "IP: ". $ip ."\n"; ?>, dass ich direkt danach was anfügen kann, und kein Leerzeichen dazwischen dann halt in der E-Mail erscheint. Sonst fängt dann bei mir eine Zeile in der E-Mail mit dem Leerzeichen an, und dann kommt erst der Text.
<?php Name: $name\nE-Mail: $mail\n$website$ipDatum: $date - $time\nBetreff: $subject\n\n$message", "From: $mail" ?>
 
Alt 24.02.2006, 02:46  
Gast
 
Beiträge: n/a
Standard

kommt auf Dein Design an - ich mag ganz gerne die Schatten (zum Beispiel www.hausboot.com)

oder feine Linien (www.wohnartikel.com)

aber das kann jeder halten wie der Dachdecker seine Ziegel.

Was die Bilder angeht - hab ich ja gesagt - klar fürn Schüler iss das massig Monete.
Es gibt auch andere, freie Bild-Download-Seiten, musste mal googlen gehen, ich hab die nich mehr im Kopp.
 
Alt 24.02.2006, 02:57  
Gast
 
Beiträge: n/a
Standard

Wie mach ich das mit diesem <?php if ($ip != "") $ip = "IP: ". $ip ."\n"; ?>, dass ich direkt danach was anfügen kann, und kein Leerzeichen dazwischen dann halt in der E-Mail erscheint. Sonst fängt dann bei mir eine Zeile in der E-Mail mit dem Leerzeichen an, und dann kommt erst der Text.
<?php Name: $name\nE-Mail: $mail\n$website$ipDatum: $date - $time\nBetreff: $subject\n\n$message", "From: $mail" ?>

So, habe ein Foto gefunden! =)
Morgen noch ein Schriftzug in einer tollen Font drüber, dann würde das Design stehen.

Das mit dem Hintergrund für die inputs lass ich einfach so. Sieht auch gut aus! =)

Jetzt wohl mal ab ins Bettchen!

Danke schonmal für die Hilfe bis hierhin.
Werde mich sicher noch einmal hier melden! War bis jetzt ja nur der erste Teil meiner HP in Sachen PHP!

Gute Nacht zusammen!
 
 


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] Transparente Runde Ecken bei Thumbnial realisieren tomtaz PHP Tipps 2008 3 08.07.2008 01:20
REST parsen bzw. Header fetchen cyberholic PHP-Fortgeschrittene 4 22.04.2008 16:21
switch case frage skaterboy PHP Tipps 2006 8 11.04.2006 14:30
Case optimieren? c-f-g PHP Tipps 2005-2 9 11.10.2005 12:33
Switch / Case + while krummzahn PHP Tipps 2005-2 16 05.06.2005 10:46
Switch - Case krummzahn PHP Tipps 2005 12 03.06.2005 13:28
Case mit mehreren THENs Datenbanken 2 04.05.2005 11:54
Case - mehrere Lösungen in einer Tabelle. PHP Tipps 2005 4 28.04.2005 10:24
switch case und inlcude problem PHP Tipps 2005 12 01.03.2005 09:55
PHP Case Sensitiv -> Was zum Henker soll das jetzt? Ypsillon PHP Tipps 2005 5 26.02.2005 16:16
case... stefan-miti PHP Tipps 2005 14 09.02.2005 09:21
Abstatz mit MultiCell Fpdf PHP Tipps 2005 4 12.01.2005 14:09
Switch case mit Vergleichsoperatoren PHP Tipps 2004 15 03.11.2004 16:31
Switch / Case Problem PHP Tipps 2004 9 28.10.2004 11:18
Den Rest anzeigen lassen von 100:30 nilsfeld PHP Tipps 2004 3 10.06.2004 22:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php if else rest nicht anzeigen, if rest php

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