Notice: Undefined index:

Fruitgum

Erfahrenes Mitglied
Hallo,

ich suche seit stunden im netz nach einer Lösung, doch leider. Ich bin kurz davor einen vom Dach zu schuppsen.


Das Formular...

PHP:
<head>
  <title>Content ändern</title>
  
  <script type="text/javascript">
    _editor_url  = "../../xinha";  // (preferably absolute) URL (including trailing slash) where Xinha is installed
    _editor_lang = "de";      // And the language we need to use in the editor.
    _editor_skin = "silva";   // If you want use skin, add the name here
  </script>
  <script type="text/javascript" src="../../xinha/XinhaLoader.js"></script>
  <script type="text/javascript" src="XinhaConfig.js"></script>

<link href="../admin.css" rel="stylesheet" type="text/css" />
</head>
<?php
include("../../css/functions.php");
include '../../config_esu.php'; 
mysql_connect("$host", "$name", "$pass")or die("Keine Verbindung möglich!"); 
mysql_select_db("$db")or die("Kann Tabelle nicht finden!");
$id = $_GET['id'];

$sql="SELECT * FROM navigation WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);

?>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form id="form1" name="messageform" method="post" action="cont_update.php" enctype="multipart/form-data">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3" bgcolor="#E6E6E6"><strong>Content "<? echo $rows['titel']; ?>" mit der ID <? echo $rows['id']; ?> bearbeiten </strong> </td>
</tr>
<input type="hidden" name="id" id="id" value="<? echo $id; ?>">
<tr>
<td width="14%"><strong>Titel:</strong></td>
<td width="2%">:</td>
<td width="84%"><input name="titel" type="text" id="titel" size="50" value="<? echo $rows['titel']; ?>"/></td>
</tr>
<tr>
<td width="14%"><strong>Linkname:</strong></td>
<td width="2%">:</td>
<td width="84%"><input name="link" type="text" id="link" size="50" value="<? echo $rows['link']; ?>"/></td>
</tr>
<tr>
<td valign="top"><strong>Text:</strong></td>
<td valign="top">:</td>

<td><textarea id="myTextArea" name="text" rows="25" cols="80"  ><? echo $rows['text']; ?></textarea></td>
</tr>


<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
<p align="center"><a href="cont_form_chance.php"> Zurück zur Content Übersicht</a></p><BR />



Und die Datei die nach dem Senden alles verarbeitet.

PHP:
<?php
include '../../config_esu.php'; 
mysql_connect("$host", "$name", "$pass")or die("Keine Verbindung möglich!"); 
mysql_select_db("$db")or die("Kann Tabelle nicht finden!");

error_reporting(E_ALL);
	ini_set('display_errors', 1);

$id=$_POST['id'];
$titel=$_POST['titel'];
$text=$_POST['text'];
$link=$_POST['link'];
$datetime=date("d.m.y");

 
 

    $sql = "UPDATE `navigation` SET `id`='$id', `titel`='$titel', `text`='$text', `link`='$link', `datetime`='$datetime' WHERE id=$id";

    $result = mysql_query($sql);

if($result){
echo " content geändert<BR><BR>";
echo "<a href=cont_form_chance.php> Zurück zur Übersicht</a>";
}
else {
echo "Ups, hier gibt es wohl einen Fehler beim eintragen?!";
}
mysql_close();

?>
<p align="center"><a href="cont_form_chance.php"> Zurück zur Content Übersicht</a></p><BR />

Und der schöne Fehler:

Notice: Undefined index: text in C:\xampp\htdocs\esu\admin\de\content\cont_update.php on line 12


Im Formular muss unter ID "myTextArea" stehen, damit wird der Editor aktiviert. und unter name habe ich ja "text". wenn ich für myTextArea von mir aus Pisskopf schreibe wird der Editor ja nicht geladen und die Daten werden richtig verarbeitet. Sobald ich ihn wieder aktiviere kommt wieder die Fehlermeldung. Ich habe auch schon für text andere variablen ausgesucht, nichts geht nicht.

Ich habe noch ein Formular wo ich den Content anlege, auch mit dem Editor, da gehts. nur beim UPDATE gehts nicht.

HELP!
 
Hallo,

ich suche seit stunden im netz nach einer Lösung, doch leider. Ich bin kurz davor einen vom Dach zu schuppsen.

Hier steht einiges. Siehe erster Eintrag!
Das ist sogar die Seite, die ich jedem an die Hand gebe, der mit einfachen Fehlermeldungen nicht zurecht kommt.

Ansonsten hilft übersetzen:
Notice: Undefined index: text in C:\xampp\htdocs\esu\admin\de\content\cont_update.php on line 12
"Undefined Index: text" -> "Nicht definierter Index: text".

Und in Zeile 12 steht:
PHP:
$text = $_POST['text'];

Was das heißt sollte nun offensichtlich sein und es steht beim ersten Link der Google-Suche nochmal ;)
 
Zuletzt bearbeitet:
Ja neee, das ist mir schon klar was das ist... hier werden keine daten gefunden mit 'text',

ich habe doch geschrieben, wenn ich den editor deaktiviere, in dem ich den eintrag unter ID der Textarea wegnehme es geht. nur ist dann der Editor nicht geladen.

wenn ich das selbe verfahren aufrufe, Content hinzufügen, geht es auch mit editor.

also ich weiß nicht warum er das beim UPDATE nicht macht und bei INSERT INTO ja.

ich zeige dir mal noch den code für ein content neu eintragen.


PHP:
<?php
include '../../config_esu.php';
mysql_connect("$host", "$name", "$pass")or die("Keine Verbindung möglich!"); 
mysql_select_db("$db")or die("Kann Tabelle nicht finden!");

$titel=$_POST['titel'];
$text=$_POST['text'];
$link=$_POST['link'];
$datetime=date("d.m.y");

$sql="INSERT INTO navigation(titel, text, link, datetime)VALUES('$titel', '$text', '$link', '$datetime')";
$result=mysql_query($sql);
if($result){
echo " Conten hinzugefügt<BR><BR>";
echo "<a href=../admin.php> Zurück zur Übersicht</a>";
}
else {
echo "Ups, hier gibt es wohl einen Fehler beim eintragen?!";
}
mysql_close();

?>


wie du sehen kannste steht da auch $text=$_POST['text']; und da gehts.

und das was ich bei google gefunden habe ist, das mir einfach nur gesagt wird das nicht ankommt vom formular array text... brauch ja kein ifsset machen... ich brauch ja die daten und die sind net da... und ich weiß net warum...
 
Es ist schwer dir zu folgen, da ich Probleme habe den Zusammenhang in deinen Sätzen zu erkennen.

Scheinbar macht dieser Editor nachträglich Änderungen in deinem Formular, welche das Textfeld aufheben. Mache einmal ein einfaches var_dump($_POST); und schau was alles gesandt wird.

Vielleicht steht auch in dem <? echo $rows['text']; ?> etwas drin, dass das ganze invalide macht oder stört.
 
Zuletzt bearbeitet:
ja sorry ich bin oben schon etwas affig in der platte...

die ausgabe ist

Notice: Undefined index: text in C:\xampp\htdocs\esu\admin\de\content\cont_update.php on line 13
array(4) { ["id"]=> string(2) "14" ["titel"]=> string(9) "Anmeldung" ["link"]=> string(9) "Anmeldung" ["Submit"]=> string(6) "Submit" }

text kommt nicht an. das merkwürtige ist, wenn ich ein content neu anlege geht es ja nur wenn ich vorhandene daten bearbeiten will...

ich drücke mich deswegen so aus weil ich nicht weiß warum das so ist... also der text wird ja auch in das formular geladen, erst da nach geht das irgendwie krachen.
 
der code für "cont_update.php" ist:

PHP:
<head>
  <title>Content ändern</title>
  
  <script type="text/javascript">
    _editor_url  = "../../xinha";  // (preferably absolute) URL (including trailing slash) where Xinha is installed
    _editor_lang = "de";      // And the language we need to use in the editor.
    _editor_skin = "silva";   // If you want use skin, add the name here
  </script>
  <script type="text/javascript" src="../../xinha/XinhaLoader.js"></script>
  <script type="text/javascript" src="XinhaConfig.js"></script>

<link href="../admin.css" rel="stylesheet" type="text/css" />
</head>
<?php
include '../../config_esu.php'; 
mysql_connect("$host", "$name", "$pass")or die("Keine Verbindung möglich!"); 
mysql_select_db("$db")or die("Kann Tabelle nicht finden!");
$id = $_GET['id'];
$katze = "myTextArea";

$sql="SELECT * FROM navigation WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_object($result);
var_dump($_POST);
?>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form id="form1" name="messageform" method="post" action="cont_update.php" enctype="multipart/form-data">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3" bgcolor="#E6E6E6"><strong>Content "<? echo $rows->titel; ?>" mit der ID <? echo $rows->id; ?> bearbeiten </strong> </td>
</tr>
<input type="hidden" name="id" value="<? echo $id; ?>">
<tr>
<td width="14%"><strong>Titel:</strong></td>
<td width="2%">:</td>
<td width="84%"><input name="titel" type="text" size="50" value="<? echo $rows->titel; ?>"/></td>
</tr>
<tr>
<td width="14%"><strong>Linkname:</strong></td>
<td width="2%">:</td>
<td width="84%"><input name="link" type="text" size="50" value="<? echo $rows->link; ?>"/></td>
</tr>
<tr>
<td valign="top"><strong>Text:</strong></td>
<td valign="top">:</td>

<td><textarea id="myTextArea" name="text" rows="45" cols="180" /><? echo $rows->text; ?></textarea></td>
</tr>


<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
<p align="center"><a href="cont_form_chance.php"> Zurück zur Content Übersicht</a></p><BR />

:(


ich weiß auch nicht was immer gemacht werden soll.. ich bin schon froh das ich überhaupt irgendetwas schaffe in PHP

Hallo @Fruitgum

Versuch doch mal die Daten, die von $_POST kommen
mit http://www.php.net/mysql_real_escape_string zu escapen.
Sollte überhaupt gemacht werden und vielleicht ist in der Variable etwas.


Welcher Code gehört jetzt überhaupt zu "cont_update.php" ?

Grüße Simon

Wo füge ich das jetzt ein? Muss ja in Formular, oder? Da ja $_POST['text'] da ja nicht mehr ankommt?
 
Diese Maßnahme ist sinnlos, da kein Text übertragen wird den man darauf anwenden könnte. Wenn der Fehler im Aktualisierungs-Skript liegt, dann frage ich mich warum du diesen vorenthalten hast. Genau da liegt natürlich auch der Fehler!

Schau dir die folgende Zeile einmal genau an:
HTML:
<textarea id="myTextArea" name="text" rows="45" cols="180" /><? echo $rows->text; ?></textarea>

Druck sie aus und hänge sie an die Wand für den Rest des Tages und auf einmal wirst du ein einzelnes Zeichen sehen, dass dort nicht hingehört. Besonders wenn du diese Zeile mit der aus einem anderen Skript vergleichst in dem das Eintragen funktioniert.
 
MHHH?

Zeile: content erstellen...

PHP:
<td><textarea id="myTextArea" name="text" rows="45" cols="180" ></textarea></td>


Zeile: Content update...
PHP:
<td><textarea id="myTextArea" name="text" rows="45" cols="180" /><? echo $row['text']; ?></textarea></td>

mitlerweile nehem ich assoc anstatt obejct...

und wenn du meinst das oder der SLASH ".../>" dann sage ich dir das es egal ist. Egal mit oder ohne... selbiger Fehler...

Da der Xinha editor immer etwas brauch steht kurz ohne geladen editor das textfeld da schreibe ich wärend dessen schnell ein paar zeichen und schick es ab, ändert er das auch in der Datenbank. erst wenn ich den editor fertig geladen habe und dann schreibe, kommt der fehler auf.

es muss am plugin liegen. das komische ist nur. Wenn ich content erstellen gehe, legt er es ja richtig an.

MANNNNNNNN :p

Vielleicht Codierung? kann ja sein das er die daten die dann wieder aus der Datenbank kommen irgendwelche zeichen besitzen mit der irgendwie nicht richtig klar kommt?

Ich kann nicht mehr!
 
Zuletzt bearbeitet:
und wenn du meinst das oder der SLASH ".../>" dann sage ich dir das es egal ist. Egal mit oder ohne... selbiger Fehler...

Mit dem Slash gilt es als abgeschlossenes Element und nicht als Container, welcher weitere Daten enthalten könnte. Da textarea üblicherweise ein Container ist (siehe: http://www.w3.org/TR/html4/interact/forms.html#h-17.7), sollte dieser Slash verschwinden.

es muss am plugin liegen. das komische ist nur. Wenn ich content erstellen gehe, legt er es ja richtig an.

Wie gesagt:
Scheinbar macht dieser Editor nachträglich Änderungen in deinem Formular, welche das Textfeld aufheben.

Tritt der Fehler bei Content auf, der nur ein "A" enthält bzw. nur ein Wort ohne jegliche Formatierung?

Wenn ja, solltest du dir einen neuen Suchen oder den Fehler weiter verfolgen.
Wenn nicht, dann zeige mal einen Text der nicht gesandt wird.
 
Zurück