kostenloser Webspace werbefrei: lima-city


Fehler "undefined index:..."

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    james

    james hat kostenlosen Webspace.

    Das ErrorLog zeigt folgendes:

    [04-Oct-2005 08:57:04] PHP Notice: Undefined index: plength in /Applications/MAMP/htdocs/lscn/galerie/eintragen2.php on line 26
    [04-Oct-2005 08:57:04] PHP Notice: Undefined index: leistung in /Applications/MAMP/htdocs/lscn/galerie/eintragen2.php on line 50

    Achtung ich habe aus dem Code einige Kommentare gel?scht, so dass die Fehleremeldungen jeweils auf die Zeile fallen, in der die entsprechende Variable definiert wird.
    Hier der Code:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <?php
    include("connect.php.inc");
    ?>
    <html>

    <head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    <meta name="generator" content="Adobe GoLive">
    <title>Unbenannte Seite</title>
    <link href="style.css" rel="stylesheet" type="text/css" media="all">
    </head>

    <body background="images/wolkenback.jpg" bgproperties="fixed">
    <h1 align="center">Galerieeintrag</h1>
    <?php
    $last_name = $_POST["nachname"];

    $first_name = $_POST["vorname"];

    $modell_name = $_POST["modellname"];

    $plength = $_POST["plength"];

    $pwidth = $_POST["pwidth"];

    $art = $_POST["art"];

    $motor_art = $_POST["motor_art"];

    $motor = $_POST["motor"];

    $hubraum = $_POST["hubraum"];

    $leistung = $_POST["leistung"];

    $gewicht = $_POST["gewicht"];

    $features = $_POST["features"];

    ?>
    <table border="0" cellpadding="5" width="100%" align="center">
    <tr>
    <td align="left"><nobr><h2>Dateiname</h2></nobr></td>
    <td align="right"><nobr><h2>Dateigr&ouml;&szlig;e</h2></nobr></td>
    </tr>
    <?
    $save_path="/Volumes/Mac_HD/Applications/MAMP/htdocs/lscn/galerie/upload/";
    $file = $_FILES['userfile'];
    $k = count($file['name']);
    for($i=0 ; $i < $k ; $i++)
    {
    $filenamex = $file['name'][$i];
    if (!file_exists("uploads/$filenamex"))
    {
    if($i %2)
    {
    echo '<tr bgcolor="#FFFF99"> ';
    }
    else
    {
    echo '<tr>';
    }

    echo '<td align="left">' . $file['name'][$i] ."</td>\n";
    echo '<td align="right">' . $file['size'][$i] ."</td></tr>\n";

    if(isset($save_path) && $save_path!="")
    {
    $name = split('/',$file['name'][$i]);
    move_uploaded_file($file['tmp_name'][$i], $save_path . $name[count($name)-1]);
    }
    }
    else
    {
    echo '<td align="left">' . $file['name'][$i] ."</td>\n";
    echo "<td align=\"right\">Der Dateiname existiert bereits. Bitte w&auml;hlen Sie eine anderen.</td>";
    }
    }

    //echo "<tr style='color: #0066cc'><td>SSL</td><td>". (($_SERVER[HTTPS] != 'on') ? 'Off' : 'On') ."</td></tr>";
    ?>
    </table>
    <?php
    $eintrag = "INSERT INTO galerie
    (imgurl, last_name, first_name, modell_name, plength, pwidth, art, motor_art, motor, hubraum, leistung, gewicht, features)

    VALUES
    ('$filenamex', '$last_name', '$first_name', '$modell_name', '$plength', '$pwidth', '$art', '$motor_art', '$motor', '$hubraum', '$leistung', '$gewicht', '$features')";
    $eintragen = mysql_query($eintrag);
    if($eintragen == "true")
    {
    echo "Der Eintrag war erfolgreich.";
    }
    else
    {
    echo "Der Eintrag ist leider fehlgeschlagen.";
    }
    ?>
    </body>

    </html>

    Ich hatte das ganze auch schon mit der GET-Methode, dann habe ich im internet mal gesucht und gefunden, dass das ganze mit POST nicht mehr auftreten sollte. Tut es aber :mad:

    Ich hoffe ihr habt ne Idee zu der ganzen Sache.

    Danke, james

    Beitrag ge?ndert am 4.10.2005 09:20 von james
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Denk doch erst mal nach!

    Was sagt dir die Fehlermeldung denn?
    Sie sagt, dass ein undefinierter Index verwendet wird.
    Damit ist der Index des Arrays "$_POST" gemeint.

    Warum k?nnte der denn nicht definiert sein?
    Genau - weil gar kein Formular abgeschickt wurde.

    Was machen?
    Am besten vorher abfragen, ob es den Index bereits gibt.

    Wie?
    Mit "if" nat?rlich:
    if ( isset ( $_POST['index'] ) ) {
      $index = $_POST['index'];
    } else {
      $index = '';
    }


    Geht das nicht einfacher?
    Ja, geht es.
    Aber das ist dann ein wenig komplizierter.
    Hier kann man es nachlesen ->
    http://alopex.pyrokar.lima-city.de/index.php/PHP/Konditionaloperator.html

    Beitrag ge?ndert am 4.10.2005 10:52 von lucas9991

    Beitrag ge?ndert am 4.10.2005 10:54 von lucas9991
  4. Ich w?rde f?r die Verarbeitung von Formulardaten besser $_REQUEST statt $_POST oder $_GET nehmen. Dann kannst du in der Test- oder Entwicklungsphase das "method"-Attribut im Formular auf "GET" stellen, und wenn du fertig bist, auf "POST" -- ohne dass du deinen Programmcode sonst weiter ?ndern musst.

    Und die Abfrage, ob ein Formular-Element gesetzt wurde, kann man auch ohne Terti?r-/Konditional-Operator vereinfachen:

    if( !isset($_REQUEST['element']) ) $_REQUEST['element'] = '';

    In deinem Fall k?nnte man sogar eine Schleife f?r alle Array-Elemente benutzen:

    foreach($_REQUEST as $key => $val) {
    if( !isset($_REQUEST[$key]) ) $_REQUEST[$key] = '';
    }

    MfG
    alopex
  5. Autor dieses Themas

    james

    james hat kostenlosen Webspace.

    Erstens habe ich sehr wohl ein Formular gesendet und die Fehlermeldung erscheint weiterhin. Zweitens habe ich es auch schon mit einer if-Funktion versucht, die f?r jeden wert isset abfragt un diesen wenn er leer ist, auf null setzt. Das war das, was ich auskommentiert, und dann hier gel?scht habe.
  6. c*******a

    versuch es doch mal mit "$HTTP_POST_VARS['...']" damit m?sste es klappen, denn bei mir funktioniert es auch

  7. versuch es doch mal mit "$HTTP_POST_VARS['...']" damit m?sste es klappen, denn bei mir funktioniert es auch

    Das ist hier auf lima egal.
    Du kannst "$_GET/POST", "$_REQUEST" oder auch $HTTP_GET/POST_VARS" nehmen.
    Es liegt halt einfach an dir.
    ?berpr?fe am besten nochmal alles!

    MfG Lucas
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!