variablen & leere strings in funktionen

Bomber

Erfahrenes Mitglied
Hi
ganz kurz es geht um die über prüfung mehrerer variablen aus einem gästebuch.

damit habe ich folgendes problem.
also als values sind jeweils name email und page bei den $kon_ vars die vom gästebuch formular( siehe // 4 ) übergeben werden sollen also müssen die, falls sie vom user einfach so stehen gelassen werden in //1 in einen leeren string umgewandelt werden. soo dann wird in //2 ausgewertet ob keine der vars nen leeren string enthält. falls doch gibt es eine fehlermeldung. falls alles gesetzt ist soll der eintrag halt eingefügt werden. doch das passiert halt nicht, auch wenn ich alle vars richtig eingebe wird die else schleife ausgeführt und schwubs: "alles eingeben bitte"

sieht da jemand nen fehler, bzw habe ich da ne syntax benutzt die man in ner funktion net benutzen darf?
ich weiss das es was komplizierter ist aber einige von euch cracks können mir doch sicher helfen oder?

mfg.bomber
PHP:
<?php

//connection

   $sql_host     = '';
   $sql_user     = '';
   $sql_pass     = '';
   $sql_database = '';
   $sql_prefix   = '';

                   mysql_connect($sql_host, $sql_user, $sql_pass) or die(mysql_error());
                   mysql_select_db($sql_database) or die(mysql_error());
                   
                   
//VARIABLES/////////////////////////////////////////////////////////////

   if(!isset($go)){$go = "main";}
   if(!isset($posted)){$posted = false;}else{$posted = true;}
   if(!isset($post)){$post=false;}else{$post=true;}
   
   if(!isset($kon_name) or $kon_name = 'name'){ $kon_name = '';}     //1
   if(!isset($kon_mail) or $kon_name = 'email'){ $kon_mail = '';}
   if(!isset($kon_page) or $kon_name = 'page'){ $kon_page = '';}
   if(!isset($kon_text) { $kon_text = '';}
   
   echo $kon_name;

//CONTENT/////////////////////////////////////////////////////////////

         function gettemplate($template,$endung="htm")
         {
             return str_replace("\"","\\\"",implode("",file($template.".".$endung)));
         }
         
         function dooutput($template)
         {
              echo $template;
         }
         
//RIGHT BAR/////////////////////////////////////////////////////////////

   function getrightbar($go, $posted, $self, $post, $kon_name, $kon_page, $kon_mail, $kon_text)
         {
            if($go == "gbook")
            {
                   // content abfrage
                   if($posted == true)
                      {
                      $rightbar = '<b>// error</b><br><br>Du hast bereits eine Nachricht geschrieben, bitte gedulde dich 5 Minuten, dann kannst du wieder posten.<br><br>Danke für dein Verständnis.';
                      }
                   elseif($post == true )
                      {
                                   if($kon_name != '' AND $kon_mail != '' AND $kon_text != '')    //2
                                   {
                                       $rightbar = 'super alles eingegeben';      
                                   }
                                   else
                                   {
                                       $rightbar = 'alles eingeben bitte'; //3

                                   }
                                   
                                   return $rightbar;
                      }
                   else
                       {
                       $rightbar = '
                       <form name="gbook" method="post" action="'.$self.'?go=gbook&post=true">
                       <input type="text" name="kon_name" value="name" onFocus="if(this.value==\'name\')this.value=\'\';" onBlur="if(this.value==\'\') this.value=\'name\';">
                       <input type="text" name="kon_mail" value="email" onFocus="if(this.value==\'email\')this.value=\'\';" onBlur="if(this.value==\'\') this.value=\'email\';"><br>
                       <input type="text" name="kon_page" value="page" onFocus="if(this.value==\'page\')this.value=\'\';" onBlur="if(this.value==\'\') this.value=\'page\';"><br>
	                   <textarea name="kon_text" cols="19" rows="10"></textarea><br> //4
                       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                       <input type="image" name="Submit" value="Submit" src="images/SEND.gif" style="border : 4px transparent;"></form>';
                       }
           }
           elseif($go == "main")
           {
            $rightbar = '<a href="'.$self.'?go=gbook">gaestebuch</a>';
           }
           return $rightbar;
         }
         
         
//CONTENT/////////////////////////////////////////////////////////////

   function getcontent($go) //content
                {
                     if($go == "gbuch") // gaestebuch
                     {
                     $ausgabe = 'gaestebuch';
                     return $ausgabe;
                     }
                     elseif($go == "main")// the main stuff
                     {
                     $ausgabe = 'hauptseite';
                     return $ausgabe;
                     }
                }
                
   function getimage($go) // headimage
            {
            $image = '<img src=images/'.$go.'.gif>';
            return $image;
            }
            

         
   function getdropdown($go)
            {
                if(!isset($go) or $go == "main")
                {
                    $dropdown = 'icons';

                }
                else
                {
                    $dropdown = '<form name="form">
                              <select name="dropdownmenu" onChange="goToURL(this.form)">
                              <option selected>// navigation</option>
                              <option value="main.php">. main</option>
                              <option value="potfolio.php">. portfolio</option>
                              <option value="aboutme.php">. aboutme</option>
                              </select></form>';
                }
            return $dropdown;
            }
         
// HTML UND INHALT

   $getrightbar = getrightbar($go, $posted, $PHP_SELF, $post, $kon_name, $kon_page, $kon_mail, $kon_text);
   $getcontent = getcontent($go);
   $getimage = getimage($go);
   $dropdown = getdropdown($go);

             eval("dooutput(\"".gettemplate("template")."\");");

         
?>
 
wenn ich dein problem richtig verstehe, würde ich das einfach so machen:

PHP:
if (empty($name)) {
echo "Du musst einen Namen angeben";
echo "<button type=\"button\" onClick=\"history.back()\">zurück</button>";
}

oder

PHP:
if (!isset($name)) {
echo "Du musst einen Namen angeben";
echo "<button type=\"button\" onClick=\"history.back()\">zurück</button>";
}

hoffe das war was du gemeint hast! :confused:

mfg redback

ps. hab noch eine "zurück" button eingebaut, der die vorherige seite nicht neu läd-> ist meist ziemlich hilfreich für denjenigen, der das formular ausfüllt! :-)
 
hab den beitrag nochmals "besser" durchgelesen. Die else schleife wird IMMER ausgeführt!

versuchs also mit folgender struktur:

PHP:
if (!empty($var1)){

  if (!empty($var2)){

    if (!empty($var3)){

hier der code zum eintragen der daten in die tabelle!
echo "Daten wurden erfolgreich in die Datenbank geschrieben!";

    }
     else { 
     echo "Fehlermeldung falls var3 nicht ausgefüllt!";
     }
  
  }
   else { 
   echo "Fehlermeldung falls var2 nicht ausgefüllt!";
   }

}
else { 
echo "Fehlermeldung falls var1 nicht ausgefüllt!";
}

-> vielleicht hab ich jetzt dein problem besser getroffen! :-)

mfg redback
 
Original geschrieben von redback79
hab den beitrag nochmals "besser" durchgelesen. Die else schleife wird IMMER ausgeführt!

kannst du mir denn auch sagen wieso?

ist das wegen dem or? also ist
PHP:
isset($var1) OR isset($var2) OR isset($var2)

nur dann true wenn nur eines und nicht mehrere true sind?
oder ist das wegen was anderem?


gruss.bomber
 
PHP:
   if(!isset($kon_name) or $kon_name == 'name'){ $kon_name= '';}     
   if(!isset($kon_mail) or $kon_name = 'email'){ $kon_mail == '';}
   if(!isset($kon_page) or $kon_name = 'page'){ $kon_page == '';}
   if(!isset($kon_text) { $kon_text = '';}


das wars.. zwei leerzeichen nach dem or :| da hätt ich auch gleich drauf kommen können.
 
Zurück