# Notice: Undefined index: id



## Scriptschreiber (27. August 2007)

Ich erhalte die Fehlermeldung "Undefined index: id". Was mache ich falsch?

```
<?php
error_reporting(E_ALL);
require("inc/wmaconfig.inc.php");
require("inc/wmafunc1.php");

$sql = "SELECT * FROM $tab WHERE id = '".( $_GET['id'] )."'";
$res = @mysql_query( $sql ) or die( "Fehler: " . mysql_error() );
$data = mysql_fetch_assoc( $res );

 ?>
```
Ich wäre dankbar für jeden Tip.


----------



## Michael Engel (27. August 2007)

Ist in der URL denn denn der Parameter id auf etwas gesetzt?


----------



## Danielku15 (27. August 2007)

Klar. Wenn du das error-reporting auf E_ALL setzt wirst du auch die Notizen angezeigt bekommen. Und sofern du die URL mit datei.php?id=3 aufrufst ist der Arrayindex id vom Array $_GET nicht definiert. In php ist das kein Problem, aber löst eine Warnung aus. E_ALL ^ E_NOTICE wäre dann Alle Meldungen ohne Notizen. Einfach mal in der PHP-Manual unter der Funktion error_reporting lesen. 

Gruß Danile


----------



## Scriptschreiber (27. August 2007)

Hallo,

auch wenn ich die Zeile error_reporting(E_ALL); weglasse bekomme ich diese Meldung.

Ich bin dabei eine Adressverwaltung mit Php und Mysql zu realisieren. Ich bin in Sachen Phpprogrammierung eben noch ein Neuling.

Das eintragen mit php in die Datenbank funktioniert soweit. Auch das ausgeben der Daten funktioniert. Diese werden anklickbar ausgegeben. Wenn ich nun auf einer der eingetragenen Daten klicke, erhalte ich das Formular mit den Daten der jeweils zugeordneten id (edit.php?id=1). Jetzt möchte ich diese editieren (also ändern) und anschließend wieder in der Datenbank speichern. Klicke ich auf absenden erhalte ich eben die von mir beschriebene Fehlermeldung.

Vielen Dank für die superschnelle Antwort.

Gruß
Freddy


----------



## Timo_B (27. August 2007)

was kommt wenn du dein SQL Befehl in das tauschst:


```
$sql = "SELECT * FROM `$tab` WHERE `id` = '".( $_GET['id'] )."'";
```


----------



## Danielku15 (27. August 2007)

Dann scheint die Standard-Konfiguration in der PHP.ini E_ALL zu sein. wenn du E_ALL ^ E_NOTICE einfügst werden keine Notizen ausgegeben.

Das mit der Meldung ist klar. Gehen wir das Szenario mal durch. Du holst die Daten aus der DB und gibst sie verlinkt aus (edit.php?id=1). Jetzt kommst du auf eine Seite wo du die neuen Daten eingeben kannst (mit einem Formular). Wenn du nun das Formular absendest, werden die bisherigen GET-Daten (id in der URL) nicht übermittelt. Du musst diese bspw. extra in dein Formular mit einbauen. Bspw. mit einem <input type="hidden"..> . Ich hoffe dieses Skript ist nur zur Übung. Weil Sicherheit bietet dieses noch keine (Thema: Sql-Injections).

[EDIT] Wenn du die Zeile der Fehlermeldung ansiehst wird dir auffallen dass es nicht die Zeile des SELECT-Sqls ist welche die Meldung ausspuckt, sondern eher die Zeile des UPDATE-SQL. Denn er findet wie gesagt nach dem Submit die Variable id nicht mehr. Wenn du dann noch beim Formular method="POST" angegeben hast werden die Formulardaten in die Variable $_POST gespeichert.


----------



## Scriptschreiber (27. August 2007)

Timo_B hat gesagt.:


> was kommt wenn du dein SQL Befehl in das tauschst:
> 
> 
> ```
> ...



Da bekomme ich die selbe Fehlermeldung .


----------



## Timo_B (27. August 2007)

Was ist wenn du den SQL Befehl mit die() ausgibst, und das was rauskommt, in phpMyAdmin eingibst?

Welche Fehlermeldung kommt dann?


----------



## Scriptschreiber (27. August 2007)

danielku hat gesagt.:


> Dann scheint die Standard-Konfiguration in der PHP.ini E_ALL zu sein. wenn du E_ALL ^ E_NOTICE einfügst werden keine Notizen ausgegeben.
> 
> Das mit der Meldung ist klar. Gehen wir das Szenario mal durch. Du holst die Daten aus der DB und gibst sie verlinkt aus (edit.php?id=1). Jetzt kommst du auf eine Seite wo du die neuen Daten eingeben kannst (mit einem Formular). Wenn du nun das Formular absendest, werden die bisherigen GET-Daten (id in der URL) nicht übermittelt. Du musst diese bspw. extra in dein Formular mit einbauen. Bspw. mit einem <input type="hidden"..> . Ich hoffe dieses Skript ist nur zur Übung. Weil Sicherheit bietet dieses noch keine (Thema: Sql-Injections).
> 
> [EDIT] Wenn du die Zeile der Fehlermeldung ansiehst wird dir auffallen dass es nicht die Zeile des SELECT-Sqls ist welche die Meldung ausspuckt, sondern eher die Zeile des UPDATE-SQL. Denn er findet wie gesagt nach dem Submit die Variable id nicht mehr. Wenn du dann noch beim Formular method="POST" angegeben hast werden die Formulardaten in die Variable $_POST gespeichert.



Das Formular sieht so aus:

```
<?php
error_reporting(E_ALL);
require("inc/wmaconfig.inc.php");
require("inc/wmafunc1.php");

$sql = "SELECT * FROM `$tab` WHERE `id` = '".( $_GET['id'] )."'";
$res = @mysql_query( $sql ) or die( "Fehler: " . mysql_error() );
$data = mysql_fetch_assoc( $res );

 ?>


<html><body>
<table align='center' cellspacing='0' callpadding='0'>
<tr>
<form action="update.php" method="post" name="edit">

      <td>Vorname:</td>
      <td><input type="text" name="vorname" size="35" value="<?= $data['vorname'] ?>"></td></tr>
      <tr>
      <td>Nachname:</td>
      <td><input type="text" name="nachname" size="35" value="<?= $data['nachname'] ?>"></td></tr>
      <tr>
      <td>Strasse Hsnr:</td>
      <td><input type="text" name="strasse" size="27" value="<?= $data['strasse'] ?>"> <input name="hsnr" type="text" size="3" value="<?= $data['hsnr'] ?>"></td></tr>
      <td>PLZ/Ort:</td>
      <td><input type="text" name="plz" size="3" value="<?= $data['plz'] ?>"> <input name="ort" type="text" size="27" value="<?= $data['ort'] ?>"></td></tr>
      <tr>
      <td>Telefon:</td>
      <td><input type="text" name="telnr" size="35" value="<?= $data['telnr'] ?>"></td></tr>
      <tr>
      <td>Homepage:</td>
      <td><input type="text" name="homepage" size="35" value="<?= $data['homepage'] ?>"></td></tr>
      <tr>
      <td>Emailadresse:<br>
      <td><input type="text" name="email" size="35" value="<?= $data['email'] ?>"></td></tr>
      <tr>
      <tr><td></td><td></td></tr>
      <tr><td></td><td><button type="submit" name="senden">Aktualisieren</button></td></tr>

</form></table>
</body></html>
```

und so die update.php:


```
<?php
require("inc/wmaconfig.inc.php");
require("inc/wmafunc1.php");

$sql = "UPDATE SET vorname, nachname, strasse, hsnr, plz, ort, telnr, homepage, email FROM $tab WHERE id = '".$_GET["id"]."'";
$res = mysql_query( $sql ) or die( "Fehler: " . mysql_error() );
$data = mysql_fetch_assoc( $res );

if ($res)
	{
		echo "Erfolgreich";
	}
	else
	{
		echo "Fehler";
	}



?>
```

und so das Eintragsformular:

```
<?php
error_reporting(E_ALL);
echo"<body>
<table align='center' cellspacing='0' callpadding='0'>
<tr>
<form action='check.php'  method='post'>
  <td><font class='font'>Vorname:</td>
  <td><input name='vorname' type='text' size='35'></td>
  </tr>
  <tr>
  <td><font class='font'>Nachname:</td><td><input name='nachname' type='text' size='35'></td>
  </tr>
  <tr>
  <td><font class='font'>Strasse Hsnr:</td><td><input name='strasse' type='text' size='27'>&nbsp;<input name='hsnr' type='text' size='3'></td>
  </tr>
  <tr>
  </tr>
  <tr>
  <td><font class='font'>PLZ/Ort:</td><td><input name='plz' type='text' size='3'>&nbsp;<input name='ort' type='text' size='27'></td>
  </tr>
  <tr>
  <td><font class='font'>Telefon</td><td><input name='telnr' type='text' size='35'></td>
  </tr>
  <tr>
  <td><font class='font'>Homepage:</td><td><input name='homepage' value='http://' type='text' size='35'></td>
  </tr>
  <tr>
  <td><font class='font'>Emailadresse:</td><td><input name='email' type='text' size='35'></td>
  </tr>
  <tr><td></td><td></td></tr>
<tr><td></td><td><font class='font'><input  type='submit' name='senden' value='Absenden'> <font class='font'><input  type='reset' value='Reset'></td></tr>

</form></table>
";

?>
```

Sicher sind da noch Fehler. Natürlich ist das alles noch zu Übungszwecken.


----------



## Scriptschreiber (27. August 2007)

Ich hab da sowieso noch eine Frage an die Profis:

Welches Php 5 / Mysql Buch würdet Ihr empfehlen was wirklich gut verständlich ist. 

Ich habe derzeit 3 Bücher hier:
PHP 5 "Das bhv Taschenbuch
PHP 4/5 Befehlsreferenz von Franzis
PHP 5 / Mysql 5 von Kannengieser 2. überarbeitete Ausgabe Februar 2007

Gibt es ein besseres. Ich wäre für jeden Tip dankbar.

Gruß
Freddy


----------



## Timo_B (27. August 2007)

Also wenn du schon Ahnung von PHP (und Zeit) hast. Würde ich dir vielleicht auch zu Viedo2Brain - PHP 5 (Das ist eine DVD kein Buch) raten.

Viele Beispiele
Gut Verständlich


----------



## Danielku15 (27. August 2007)

Also. Wenn das ganze für Übungszwecke ist will ich dir mal bisschen genauer alles Erklären. Alle Codes sind kommentiert. 

Für die Aufbereitung von sicheren Variablen kann ich dir diese Funktion empfehlen.
Sie sorgt dafür dass keine Ungültigen Inhalte geschrieben werden die Den SQL Code manipulieren.

Wenn sonst jemand in der URL "id='; DROP TABLE `users`; #"aufruft wird der SQL Query zu:

SELECT * FROM `$tab` WHERE `id`=''; DROP TABLE `users`; #'

Kann eine kritische Sicherheitslücke sein. Diese Funktion sorgt
dafür dass solche Eingaben unterbunden werden.


```
function mysql_prepare_string($Param, $resource=null)
{
	// String holen
	$string = $Param;
	
	// Je nach aktivierten Modulen Quotes und Slashes entfernen
    if(get_magic_quotes_gpc()) 
	{
        if(ini_get('magic_quotes_sybase')) 
		{
            $string =  str_replace("''", "'", $string);
        } 
		else 
		{
            $string = stripslashes($string);
        }
    } 
    // Wenn keine Resource angegeben wurde
    if(is_null($resource))
    {
		// Mysql-Escape Funktion ohne Resource ausführen
		return mysql_real_escape_string($string);	
    }
    else
    {
		// Mysql-Escape Funktion mit Resource ausführen
		return mysql_real_escape_string($string, $resource);	
    }
}
```

Der PHP-Teil für das Formular könntest du so machen. Ich hab mal ne vollständige Version gemacht
damit du draus lernen kannst. 


```
<?php
error_reporting(E_ALL);
require("inc/wmaconfig.inc.php");
require("inc/wmafunc1.php");

// Daten speichern
if($_SERVER['REQUEST_METHOD'] == 'POST') // Beim Senden vom Formular
{
	$error = ''; // Fehlervariable
	
	// Variablen holen und Vorbereiten
	// (trim löscht unnötige Leerzeichen)
	$vorname = mysql_prepare_string(trim($_POST['vorname']);
	$nachname = mysql_prepare_string(trim($_POST['nachname']);
	$strasse = mysql_prepare_string(trim($_POST['strasse']);
	$plz = mysql_prepare_string(trim($_POST['plz']);
	$telnr = mysql_prepare_string(trim($_POST['telnr']);
	$homepage = mysql_prepare_string(trim($_POST['homepage']);
	$email = mysql_prepare_string(trim($_POST['email']);
	
	// Daten checken
	// Wenn die Eingabe Leer ist
	// Dann wird die Fehlermeldung angehängt. 
	// Zum Schluss wissen wir welche Daten falsch waren.
	$error .= (empty($vorname)) ? 'Kein Vorname angegeben!<br>' : '';
	$error .= (empty($nachname)) ? 'Kein Nachname angegeben!<br>' : '';
	$error .= (empty($strasse)) ? 'Keine Strasse angegeben!<br>' : '';
	$error .= (empty($plz)) ? 'Keine Plz angegeben!<br>' : '';
	$error .= (empty($telnr)) ? 'Keine Telnr. angegeben!<br>' : '';
	$error .= (empty($homepage)) ? 'Keine Hp angegeben!<br>' : '';
	$error .= (empty($email)) ? 'Keine EMail angegeben!<br>' : '';
	
	// Wenn $error leer ist 
	// war kein Fehler also können wir speichern
	if(empty($error))
	{
		// Query generieren
		$sql = sprintf("UPDATE `%s` SET vorname='%s', nachname='%s', strasse='%s', hsnr='%s', plz='%s', ort='%s', telnr='%s', homepage='%s', email='%s' WHERE id = '%u'",
						$tab, $vorname, $nachname, $strasse, $plz, $telnr, $homepage, $email, $_POST['id']);
		// Ausführen und evt. Fehler anhängen
		$res = @mysql_query($sql) or $error .=  "Fehler: " . mysql_error();
		
		if ($res) // Bei Erfolg
		{
			// Erfolgsmeldung setzen oder umleiten
			$error .= "Erfolgreich";
			// header("Location: url");
		}
	}
}

// Daten laden
$sql = sprintf("SELECT * FROM `$tab` WHERE `id` = '%u'", $_GET['id']);
$res = @mysql_query( $sql ) or die( "Fehler: " . mysql_error() );
$data = mysql_fetch_assoc( $res );
?>
```

Im Formular musst du dann noch diese Zeile hinzufügen:
<input type="hidden" name="id" value="<?= $_GET['id'] ?>">
Dann wird beim Absenden in $_POST die aktuelle ID gespeichert.

Die $error Variable kannst du dann Weiter unten über dem Formular ausgeben um eine Schöne
Fehlermeldung anzuzeigen.

[EDIT]
Hab noch was wichtiges Vergessen. Die Form-Zeile so abändern:
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post" name="edit">
Somit wird beim Absenden das eigene Script aufrufen und die Abfrage ob die Daten abgesendet wurden siehst du oben im PHP-Skript.


Ich kann dir nur auch noch mal empfehlen im PHP-Handbuch nachzulesen und nochmal zu googeln. 



Gruß Daniel


----------



## Scriptschreiber (27. August 2007)

@Timo_B
und wo bekommt man die?


----------



## Scriptschreiber (27. August 2007)

danielku hat gesagt.:


> Also. Wenn das ganze für Übungszwecke ist will ich dir mal bisschen genauer alles Erklären. Alle Codes sind kommentiert.
> 
> Für die Aufbereitung von sicheren Variablen kann ich dir diese Funktion empfehlen.
> Sie sorgt dafür dass keine Ungültigen Inhalte geschrieben werden die Den SQL Code manipulieren.
> ...



Oh, das sich hier jemand soviel Mühe macht habe ich nicht mit gerechnet. Vielen vielen Dank, das hilft sicher weiter. Muß erstmal durchblicken.


----------



## Danielku15 (27. August 2007)

Immer wieder gern. Jeder hat mal klein angefangen. Ich bin auch immer über jede Hilfe dankbar also soll man es ja nicht anderst machen 

Die Videos gibts auf:
http://www.video2brain.com


----------



## Timo_B (27. August 2007)

danielku hat gesagt.:


> Die Videos gibts auf:
> http://www.video2brain.com



.. Genau =)


----------



## Scriptschreiber (27. August 2007)

danielku hat gesagt.:


> Immer wieder gern. Jeder hat mal klein angefangen. Ich bin auch immer über jede Hilfe dankbar also soll man es ja nicht anderst machen
> 
> Die Videos gibts auf:
> http://www.video2brain.com



Ok, dann habe ich da noch eine Frage:

aus dem Php code den du vorgeschlagen hast erhalte ich aus dieser Zeile:

```
$vorname = mysql_prepare_string(trim($_POST['vorname']);
```

bei aufrufen diese Fehlermeldung;
Parse error: syntax error, unexpected ';' 

Die Syntax wird nicht akzeptiert. Ich kann den Fehler aber nicht nachvollziehen. Woran liegt es?


----------



## Danielku15 (27. August 2007)

Oh. Entschludigung. War wohl weil ichs so auf die Schnelle gemacht habe. Am Schluss vor dem ; fehlt eine geschlossene Klammer.

```
$vorname = mysql_prepare_string(trim($_POST['vorname']));
```

Wird wohl bei denen drunter auch Fehlen da ich den Code kopiert habe.


----------



## Scriptschreiber (27. August 2007)

Danke.

Ich habe die anderen Zeilen darunter auch korregiert. Das sieht dann so aus:

```
// Variablen holen und Vorbereiten
    // (trim löscht unnötige Leerzeichen)
    $vorname = mysql_prepare_string(trim($_POST['vorname']));
    $nachname = mysql_prepare_string(trim($_POST['nachname']));
    $strasse = mysql_prepare_string(trim($_POST['strasse']));
    $hsnr = mysql_prepare_string(trim($_POST['hsnr']));
    $plz = mysql_prepare_string(trim($_POST['plz']));
    $ort = mysql_prepare_string(trim($_POST['ort']));
    $telnr = mysql_prepare_string(trim($_POST['telnr']));
    $homepage = mysql_prepare_string(trim($_POST['homepage']));
    $email = mysql_prepare_string(trim($_POST['email']));
```

Jetzt erhalte ich allerdings eine andere Fehlermeldung aus dieser Zeile:

```
// Daten laden
$sql = sprintf("SELECT * FROM `$tab` WHERE `id` = '%u'", $_GET['id']);
```

Fehlermeldung:
Undefined index: id


----------



## Danielku15 (27. August 2007)

Klar. Liegt immer noch am selben: Error-Reporting umstellen. Denn Notizen werden auch ausgegeben. Aber etwas ist mir noch aufgefallen. Mit den IDs. Wenn du das Formular abgeschickt hast kannst du ja logischerweise keine ID von der URL holen. Da ist es in der POST Variable gespeichert. Also in die IF-Else Abfrage noch eine Variable einbauen welche dafür sorgt dass die richtige ID gesetzt ist. 
Hier nochmals der überarbeitete Code mit umgestelltem Error-Reporting

```
<?php
error_reporting(E_ALL ^ E_NOTICE);
require("inc/wmaconfig.inc.php");
require("inc/wmafunc1.php");

// Daten speichern
if($_SERVER['REQUEST_METHOD'] == 'POST') // Beim Senden vom Formular
{
	$error = ''; // Fehlervariable
	
	// Variablen holen und Vorbereiten
	$id= $_POST['id']; // ID festlegen bei POST
	$vorname = mysql_prepare_string(trim($_POST['vorname']));
	$nachname = mysql_prepare_string(trim($_POST['nachname']));
	$strasse = mysql_prepare_string(trim($_POST['strasse']));
	$plz = mysql_prepare_string(trim($_POST['plz']));
	$telnr = mysql_prepare_string(trim($_POST['telnr']));
	$homepage = mysql_prepare_string(trim($_POST['homepage']));
	$email = mysql_prepare_string(trim($_POST['email']));
	
	// Daten checken
	// Wenn die Eingabe Leer ist (trim löscht unnötige Leerzeichen)
	// Dann wird die Fehlermeldung angehängt. 
	// Zum Schluss wissen wir welche Daten falsch waren.
	$error .= (empty($vorname)) ? 'Kein Vorname angegeben!<br>' : '';
	$error .= (empty($nachname)) ? 'Kein Nachname angegeben!<br>' : '';
	$error .= (empty($strasse)) ? 'Keine Strasse angegeben!<br>' : '';
	$error .= (empty($plz)) ? 'Keine Plz angegeben!<br>' : '';
	$error .= (empty($telnr)) ? 'Keine Telnr. angegeben!<br>' : '';
	$error .= (empty($homepage)) ? 'Keine Hp angegeben!<br>' : '';
	$error .= (empty($email)) ? 'Keine EMail angegeben!<br>' : '';
	
	// Wenn $error leer ist 
	// war kein Fehler also können wir speichern
	if(empty($error))
	{
		//Updaten
		$sql = sprintf("UPDATE `%s` SET vorname='%s', nachname='%s', strasse='%s', hsnr='%s', plz='%s', ort='%s', telnr='%s', homepage='%s', email='%s' WHERE id = '%u'",
						$tab, $vorname, $nachname, $strasse, $plz, $telnr, $homepage, $email, $id);
		// Fehler anhängen
		$res = @mysql_query($sql) or $error .=  "Fehler: " . mysql_error();
		
		if ($res)
		{
			// Erfolgsmeldung setzen oder umleiten
			$error .= "Erfolgreich";
			// header("Location: url");
		}
	}
}
else // Wenn nicht das Formular abgeschickt wurde
{
	// Probieren die ID von der URL zu holen
	$id = $_GET['id'];
}

// Daten laden
$sql = sprintf("SELECT * FROM `$tab` WHERE `id` = '%u'", $id);
$res = @mysql_query( $sql ) or $error .= "Fehler: " . mysql_error(); // Fehler bei Falscher ID
$data = mysql_fetch_assoc( $res );
?>
```

Wenn jetzt noch eine Warnung kommt stimmt was komplett mit der Server-Config nicht. Tut mir Leid wegen der falschen Version aber ich weiß nicht was du in den inkludierten Dateien machst und deine DB-Aussieht darum kann ich nichts testen.

Gruß Daniel


----------



## Scriptschreiber (27. August 2007)

danielku hat gesagt.:


> Klar. Liegt immer noch am selben: Error-Reporting umstellen. Denn Notizen werden auch ausgegeben. Aber etwas ist mir noch aufgefallen. Mit den IDs. Wenn du das Formular abgeschickt hast kannst du ja logischerweise keine ID von der URL holen. Da ist es in der POST Variable gespeichert. Also in die IF-Else Abfrage noch eine Variable einbauen welche dafür sorgt dass die richtige ID gesetzt ist.
> Hier nochmals der überarbeitete Code mit umgestelltem Error-Reporting
> 
> ```
> ...



Hallo Daniel,

habe mit deiner neuen Vorgabe getestet. 
Fehler: $res = @mysql_query( $sql ) or $error .= "Fehler: " . mysql_error() ); // Fehler bei Falscher ID

Eine ) zuviel. Die habe ich entfernt und bekomme nach wie vor den undefined index: id.

Kann es sein das es vielleicht an php Version 5.23 oder Mysql 5.0.45 liegt? Ich teste das ganze mit xampp 1.6.3a.

Was ich noch gerne wisen würde ist, wo ich denn diesen Code einsetzen muß?

```
function mysql_prepare_string($Param, $resource=null)
{
    // String holen
    $string = $Param;

    // Je nach aktivierten Modulen Quotes und Slashes entfernen
    if(get_magic_quotes_gpc())
    {
        if(ini_get('magic_quotes_sybase'))
        {
            $string =  str_replace("''", "'", $string);
        }
        else
        {
            $string = stripslashes($string);
        }
    }
    // Wenn keine Resource angegeben wurde
    if(is_null($resource))
    {
        // Mysql-Escape Funktion ohne Resource ausführen
        return mysql_real_escape_string($string);
    }
    else
    {
        // Mysql-Escape Funktion mit Resource ausführen
        return mysql_real_escape_string($string, $resource);
    }
}
```

Ich werde dann diese Tage mal xampp neu installieren und mal schauen ob es daran gelegen hat.

Erst nochmal vielen Dank für deine Mühe.


----------



## Danielku15 (27. August 2007)

Sorry, scheint heute nicht mein Tag zu sein. 
Xampp. Okay. Geh mal in die Datei: c:\Programme\Xampp\apache\bin\php.ini
Dann such nach der Zeile (kann auch sein dass die Zeile ein bisschen anders aussieht): 
error_reporting  =  E_ALL
und änder sie zu:
error_reporting  =  E_ALL & ~E_NOTICE

Das sollte das Problem fix beheben.


----------



## Scriptschreiber (27. August 2007)

Steht so eingestellt:

```
- Show all errors, except for notices and coding standards warnings
;
;error_reporting = E_ALL & ~E_NOTICE
;
;   - Show all errors, except for notices
;
;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
;
;   - Show only errors
;
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
;
;   - Show all errors except for notices and coding standards warnings
;
error_reporting  =  E_ALL & ~E_NOTICE
```


----------



## Danielku15 (27. August 2007)

Du muss natürlich darauf auch noch die error_reporting Zeile aus dem Coding nehmen sonst konfigurierst du natürlich alles wieder um.


----------



## Scriptschreiber (28. August 2007)

Du meinst die Codezeile in den Phpdateien. Die sind ja schon nicht mehr drin.

Wie war das doch noch gleich in der php.ini?

Mit *;* davorstehend sind deaktiviert ohne sind aktiviert ?


----------



## Danielku15 (29. August 2007)

Der ; leitet einen Kommentar ein, sind also nicht aktiviert. So wie es in deiner Angabe weiter oben war, wäre es schon richtig. Und wenn dann die Zeile vom error_reporting im PHP Code weg ist dürfte die Fehlermeldung nicht mehr erscheinen. Stellst du vielleicht in deinen inkludierten Dateien auch das error-reporting um? 
Wenn nicht kann ich dir nur zu einer Neuinstallation von Xampp raten weil da stimmt sonst was mit der PHP Config nicht wenn du gar nicht ausstellen kannst dass Notizen angezeigt werden.


----------



## Scriptschreiber (29. August 2007)

Ja, mensch stimmt. Ich hatte den error_ ... auch noch in  einer der includierten Dateien drin. Jetzt kommt diese Fehlermeldung nicht mehr, aber aus dieser Zeile erhalte ich jetzt eine Fehlermeldung:

```
$sql = sprintf("UPDATE `%s` SET vorname='%s', nachname='%s', strasse='%s', hsnr='%s', plz='%s', ort='%s', telnr='%s', homepage='%s', email='%s' WHERE id = '%u'",
                        $tab, $vorname, $nachname, $strasse, $plz, $telnr, $homepage, $email, $id);
```

Fehlermeldung:
Warning: sprintf() [function.sprintf]: Too few arguments

Frage:
Gehört das $tab da mit rein?
In der includierten Datei habe ich $tab="adressen"; Also $tab ist Name der Tabelle, in diesem Fall adressen.

Danke für die tolle Hilfe.


----------



## Scriptschreiber (29. August 2007)

Hallo,

das mit der Fehlermeldung hat sich gerade erledigt. Ich habe die Ursache gerade gefunden.


----------

