Mailto: Problem

nordi

Erfahrenes Mitglied
Ich hab mal wieder ein Problem für euch,
dass ich nicht gelöst bekommen habe.
Also, ich hab ein kleines Gästebuch geschrieben und
ich habe das so geregelt, dass der Name, der angegeben wird,
direkt mit der angegeben E-Mail Adresse hinterlegt wird,
so dass man auf den Namen klicken kann und sofort das Outlook Emailfenster erscheint. Ist jetzt relativ kompliziert erklärt.
Okay - jetzt kommt das Problem. Wenn nur der
Name angegeben wird und nicht die Emailadresse,
wird der Name nur mit dem htmltag "mailto:" hinterlegt.
Wie kann ich das machen, wenn keine Emailadresse angegeben wird,
dass der Name garnicht hinterlegt wird.

Kleines Problem - große Fragestellung

Hier der Code :

PHP:
<?php

 } else { //wenn action nicht gesetzt ist, wie beim betreten der seite werden die einträge ausgegeben

  $query = "select * from $table order by datum desc LIMIT 0,50"; //hier kann die anzahl der ausgegebenen einträge festgelegt werden
  //begonnen wird hier bei eins und mit 50 endet es
   $result = mysql_query($query);

  if (mysql_num_rows($result)) {
           while($row=mysql_fetch_array($result)) {

      $name = $row['name'];
       $email = $row['email'];
        $hp = $row['hp'];
                 $inhalt = $row['inhalt'];
          $datum = date("d.m.Y H:i:s",$row['datum']); //das datum wird formatiert

      echo "<table width='50%' valign='top' align='center'><tr><td width='75%' align='left'><font face='Verdana' size='1'><b>Name:</font></b> <a href=mailto:".$email.">".$name."</a>&nbsp;&nbsp;<font face='Verdana' size='1'><b>Homepage:</b></font>&nbsp;<a href='http://".$hp."' target='new'>".$hp."</a></b></td><td align='right'>".$datum."</td></tr></table>"; //die ausgabe der daten
        $inhalt = nl2br($inhalt);
                echo "<table width='50%' align='center'><tr><td colspan='2'><font face='Verdana' size='1'><b>Kommentar: </font></b>".$inhalt;
                  echo "</td></tr></table>";
                  if($hp==""){
                 echo "<tr><td></td></tr></table><br>";
				    echo "<center><img src='black.gif'></center><br>";
                 }else{
                 echo "<table width='50%' align='center'><tr><td width='95%'></a></td><td align=center><a href='#top'><img src='pfeil.gif' width='6' height='5' border='0'></a></td></tr></table><p>";
			
                 }
        flush();

    }
  } else {
     echo "<center>Es sind noch keine Eiträge vorhanden!</center>"; //text der angezeigt wird, falls keine einträge vorhanden
  }
 }


 if ($action==neu){
   echo "";
   
}

?>
 
ich denk mal mit hilfe einer einfachen if abfrage
PHP:
if ($email == ""){
 echo $name;
}else {
 echo "<a href='mailto:".$email."'>".$name."</a>";
}

damit es weniger arbeit ist würd ich jetzt bei dir das so machen
PHP:
if ($email == ""){
 $name_mail = $name;
} else {
 $name_mail = "<a href='mailto:".$email."'>".$name."</a>";
}
und dann einfach des <a href ...></a> durch ".$name_mail." ersetzen
die if abfrage gehoert dann natürlich vor die ganze ausgabe :)
 
Zuletzt bearbeitet:
ihr solltet euch mal für if else in solch einem format sowas angewöhnen
if ($email == ""){
$name_mail = $name;
} else {
$name_mail = "<a href='mailto:".$email."'>".$name."</a>";
}
->
PHP:
$name_mail = $email==""?$name:"<a href='mailto:$email'>$name</a>";
 
hä ?

Sorry SonicBeam, falls ich jetzt hier etwas blöd von der Seite komme, aber was für eine Art Syntax soll das bitte sein, die du da verwendest ? Bitte um Erläuterung.
 
Oh Sorry *g*
das hatte ich eigentlich gestern noch vor *vergessenhab*.
Das ist total einfach!
Das ist nichts anderes als ein if else allerdings in einer Zeile,

if($test == "hallo"){
$ausgabe = $test;
}
else {
$ausgabe = "Ciao";
}

in einer zeile müsste man es so schreiben! das ? ist das if und der : das else
also sagen wir nun einfach

/* das ist nun unser if(...) */
$ausgabe = $test == "hallo" ?$test

/* falls das nun true ist dann wird $ausgabe der wert $test zugewiesen! */
$ausgabe = $test == "hallo" ? $test

/* falls es false ist dann wird ihr Ciao zugewiesen */
$ausgabe = $test == "hallo" ? $test : "Ciao";

also ein simples xxx = if(...) == (?)true
(:)false
 
Zuletzt bearbeitet:
sonicbe@m, wie kommst du eigentlich auf die idee auf so en alten thread zu antworten? :D

achja danke für die beschreibung von dem if/else in einer zeile, denn genau das hatte ich mal vor ner weile gesucht und nich gefunden :)
 
Zurück