Anzeige:
Ergebnis 1 bis 11 von 11

Thema: leeres Feld abfrage

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.06.2001
    Ort
    zu Hause
    Beiträge
    8

    leeres Feld abfrage

    Hi,

    wie muss ich es machen das wenn ich in eine Eingabe Maske was eingeben kann und dort nichts eingegeben wurde das dann eine Meldung kommt z.B. Sie müssen etwas eintragen, also das keine leeren Eingaben erlaubt sind

    hier mal der Quelltext:

    <HTML>
    <HEAD>
    <TITLE></TITLE>
    <META name="description" content="">
    <META name="keywords" content="">
    <META name="generator" content="CuteHTML">
    </HEAD>
    <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080">
    <p>Bitte Emailadresse eintragen die ausgefiltert werden soll:</p>
    <form action='email.php' method=post>
    <input name='von' type='' >
    <input type=submit>
    </form>
    zurueck zur <a href="index.htm">Startseite</a>
    </BODY>
    </HTML>
    Geändert von bluesky666 (19-02-2003 um 18:53 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    In deinem PHP Script fragst du dann ab:

    PHP-Code:

    if (!isset($_POST["von"]) || empty($_POST["von"]) {
    /* Variable ist leer oder nicht vorhanden */ 

    $_POST musst du dabei durch $_GET ersetzen, wenn deine Variablen per GET übermittelt werden und das "von" musst du durch den Namen des Feldes ersetzen.
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.06.2001
    Ort
    zu Hause
    Beiträge
    8
    Hi,

    ich bekomme immer einen parse error, hier mal meine php Datei:
    an welche Stelle genau muss ich es einfügen?

    <?PHP
    /* Datenbankserver - In der Regel die IP */ $db_server = "localhost";
    /* Datenbankname */
    $db_name = "procmail";
    /* Datenbankuser */
    $db_user = "root";
    /* Datenbankpasswort */
    $db_passwort = "";

    /* Erstellt Connect zu Datenbank her */
    $db = mysql_connect($db_server,$db_user,$db_passwort);
    $query = "INSERT INTO von (von) VALUES ('*@$von');";
    mysql_select_db($db_name);
    mysql_query($query);
    echo "Von: $von<br><br>";
    $result = mysql_query("SELECT * from von;");
    for ($i =0; $i < mysql_num_rows($result); $i++)
    { $row = mysql_fetch_row($result); echo "Value #$i : $row[0]<bR>"; }
    mysql_close();
    echo "zurueck zur <a href=\"index.htm\">Startseite</a>"
    ?>

    Gruß Helge

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.01.2003
    Ort
    Wien
    Beiträge
    65
    blick ich nicht ganz durch. schau in welcher zeile der fehler ist (parse error in ....)

    wenn du erst in die datenbank schreiben willst, musst du vorher prüfen ob die werte nicht leer sind .

    zb:

    PHP-Code:

    If (strlen($_POST['von'])=="0) {

    // die variable ist leer ...
    exit; // oder was auch immer .. 

    }
    ELSE {

    // die Variable hat zumindest ein Zeichen ..

    // schreib in die datenbank ...


    Open Source, Open Mind

    MTS-FORUM

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Kleiner Tipp noch zu deiner Datenbankabfrage (bzw der Ausgabe) - du machst es so:

    PHP-Code:
    for ($i =0$i mysql_num_rows($result); $i++) 
    $row mysql_fetch_row($result); echo "Value #$i : $row[0]<bR>"; } 
    Besser lesbar wird es mit:

    PHP-Code:
    while ($row mysql_fetch_row($result)) echo "Value #$i:".$row[0]."<br />"
    Noch ein kleiner Tipp ersetz 0 durch den Namen des Feldes, das macht das einfacher. Einsetzten musst du es so:

    PHP-Code:
    if (!isset($_POST["von"]) || empty($_POST["von"])) {
        
    $db mysql_connect($db_server,$db_user,$db_passwort); 
        
    $query "INSERT INTO von (von) VALUES ('*@$von');"
        
    mysql_select_db($db_name); 
        
    mysql_query($query); 
        echo 
    "Von: $von<br><br>"
        
    $result mysql_query("SELECT * from von;"); 
        for (
    $i =0$i mysql_num_rows($result); $i++) 
        { 
    $row mysql_fetch_row($result); echo "Value #$i : $row[0]<bR>"; }  
        
    mysql_close(); 
    } else 
        echo 
    "Bitte geben sie eine Email Adresse ein!"
    PS: Um Quelltext zu posten, ist es übersichtlicher wenn du die PHP Tags benutzt.
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  6. #6
    Registrierter Benutzer
    Registriert seit
    26.06.2001
    Ort
    zu Hause
    Beiträge
    8
    also muss das in die Seite rein in der ich die Daten eingebe oder?

  7. #7
    Registrierter Benutzer
    Registriert seit
    26.06.2001
    Ort
    zu Hause
    Beiträge
    8
    ich habe es jetzt so, bekomme aber einen Fehler in der Zeile:

    Parse error: parse error, unexpected T_STRING in /srv/www/htdocs/.hb/spam/email.php on line 11


    if_(!isset($_POST["$von"]) || empty($_POST["$von"])) {

    $db_=_mysql_connect($db_server,$db_user,$db_passwo rt);
    $query = "INSERT_INTO von (von) VALUES_('$von');";
    mysql_select_db($db_name);
    mysql_query($query);
    echo "Von: $von<br><br>";
    $result = mysql_query("SELECT * from von;");
    while ($row_= mysql_fetch_row($result)) echo "Value #$i:".$row[0]."<br />";
    mysql_close();
    } else
    echo "Bitte geben sie eine Email Adresse ein!";
    Geändert von bluesky666 (20-02-2003 um 13:23 Uhr)

  8. #8
    Registrierter Benutzer
    Registriert seit
    26.06.2001
    Ort
    zu Hause
    Beiträge
    8
    ich kann auch einen Zugang per ftp freigeben, falls mir jemand helfen kann
    Geändert von bluesky666 (21-02-2003 um 00:38 Uhr)

  9. #9
    Registrierter Benutzer
    Registriert seit
    20.01.2003
    Ort
    Wien
    Beiträge
    65
    "if_" ist falsch .. beachte das _ nach dem if .. das gehör weg
    Open Source, Open Mind

    MTS-FORUM

  10. #10
    Registrierter Benutzer
    Registriert seit
    26.06.2001
    Ort
    zu Hause
    Beiträge
    8
    Hi, das "_" kam nur durchs reinkopieren hier ins forum rein, weiß nicht warum, aber wenn ich den Quelltext oben nehme von mehlvogel geht es auch nicht

  11. #11
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Hab so etwas neulich programmiert:

    Ist aber mit pear geschrieben.
    http://pear.php.net
    Du mußt das DB Paket runterladen.

    Zuerst der header.php
    Code:
    <html>
    <head>
    <title>Test</title>
    <link rel="STYLESHEET" href="style.css" type="text/css" media="screen">
    </head>
    
    <body bgcolor="white"    background="pics/back.png" >
    
    <div id="lay2" class="lay2">   
        <a href ="index.html">Home</a><br>
        <a href ="test.html">Testmenu</a><img src="pics/leer.gif" border=0 height="17" width=10><br>
    </div>
    Dies ist die erste aufzurufende Seite:index.php
    Eingabefeld:
    PHP-Code:
    <?php // Dateien einbinden 
      
    require("./header.php");   
    ?>

    <div id="lay100" class="lay100">

     <form action="anmeldung_check.html" method="post">

      <table align="top" border="0" cellpadding="0" cellspacing="0">

       <tr>
        <td>
         * Anrede
        </td>
        <td>
         <input type="radio" name="form[Anrede]" value="Herr" checked> Herr&nbsp;&nbsp;
         <input type="radio" name="form[Anrede]" value="Frau"> Frau
        </td>
       </tr>

       <tr>
        <td><img src="pics/leer.gif" height="5" width="1"></td>
        <td><img src="pics/leer.gif" height="5" width="1"></td>
       </tr>

       <tr>
        <td>
         * Vorname
        </td>
        <td>
         <input type="text" name="form[Vorname]" size="30" maxlength="30">
        </td>
       </tr>

       <tr>
        <td>
         * Nachname
        </td>
        <td>
         <input type="text" name="form[Nachname]" size="30" maxlength="30">
        </td>
       </tr>


       <tr>
        <td>
         * E-Mail
        </td>
        <td>
         <input type="text" name="form[Email]" size="30" maxlength="60">
        </td>
       </tr>

    <tr>
        <td>
          &nbsp;
        </td>
        <td>
         
      <textarea name="form[Sonstiges]" cols="70" rows="12"></textarea><br><br>
      <input type="submit" value="&nbsp;&nbsp;&nbsp;weiter&nbsp;&nbsp;&nbsp;">
        </td>
       </tr>
        </table>

     </form>
    </div>  

    </body>
    </html>
    Jetzt die Überprügung, ob Felder leer sind:

    Datei: anmeldung_fields.php
    Code:
    <?
    
      $fields = array(
        Email     => 'E-Mail',  
        sontiges=> 'Sonstige Angaben'
      ); 
    
     $fillfields = array('Anrede', 'Vorname', 'Nachname', 'Email');
    ?>
    Datei: anmeldung_check.html
    PHP-Code:
    <?php
      
    require("./header.php");   
      require(
    "anmeldung_fields.php");   

      
    $failedfields = array();
      foreach (
    $fillfields as $fillfield) {
        if (!
    $form[$fillfield]) {
          if (
    $fields[$fillfield]) {
            
    array_push($failedfields$fields[$fillfield]);
          } else {
            
    array_push($failedfields$fillfield);
          }
        }
      }

    ?>


    <div id="lay100" class="lay100">

    <?php 
      
    if (count($failedfields) > 0) {
        print 
    "Folgende Angaben fehlen:<br><br>\n";
        foreach (
    $failedfields as $f) {
          print 
    "* " $f "<br>\n";
        }
        print 
    "<br>Bitte gehen Sie zurück und füllen Sie das Formular vollständig aus.<br>\n";
      } 
      else {
        
        print 
    "<form action=\"anmeldung_send.html\" method=\"post\">\n";
        
        print 
    "<table width=\"100%\" align=\"top\" border=\"0\">\n";

        foreach (
    $form as $field => $value) {
          print 
    "   <tr>\n";
          print 
    "    <td class=\"lay100a\" width=\"35%\">\n";
          if (
    $fields[$field]) {
            print 
    "     <b>" $fields[$field] . "</b>\n"
          } 
          else {
            print 
    "     <b>" $field "</b>\n"
          }
          print 
    "    </td>\n";
          print 
    "    <td class=\"lay100b\">\n";
          print 
    "     " $value "\n";
          print 
    "     <input type=\"hidden\" name=\"form[" $field "]\" value=\"" $value "\">\n";
          print 
    "    </td>\n";
          print 
    "   </tr>\n";
        }
        print 
    "</table><br>\n";
        print 
    "<input type=\"submit\" value=\"Anmeldung versenden\">\n";
        print 
    "</form>\n";
      }
    ?>

    <br><br><br><br>
    </div> 

     
    </body>
    </html>
    Und ab in die Datenbank
    Datei: anmeldung_send.html
    PHP-Code:
    <?php
      
    require("./header.php");   
      require(
    "DB.php");
      require(
    "connect.php");
     
      
    $db DB::connect($dsn);
      if (
    DB::isError($db)) { die ($db->getMessage()); }

    print 
    "<div id=\"lay100\" class=\"lay100\">";
      if (!isset(
    $form)) { die("Keine Eingaben"); }

     

      
    $query "insert into test (";
      foreach (
    $form as $field => $value) {
        
    $query .= $field ", ";
      }
      
    $query substr($query,0,-2);

      
    $query .= ") values (";
      foreach (
    $form as $field => $value) {   
        
    $query .= "'" $value "', ";
      }
      
    $query substr($query,0,-2);   
      
    $query .= ")";

     
      
    $result $db->query($query);  

      print 
    "$query <br><br>\n";
      if (
    DB::isError($result)) { die("DB-Error"); }
    print 
    "<br><br><br><br>";

      print 
    "</div>";
      
    ?>

     
    </body>
    </html>
    Ich habe noch eine connect.php definiert, damit ich schnell die Datenbanken wechseln kann.
    Code:
    <?php 
      $dsn = "mysql://user:meinpasswort@localhost/Datenbank"; 
    ?>

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •