beta-way-of-life
Goto Top

Wer findet den Fehler im PHP Script?

Hallo Leute,

ich hoffe jemand kann mir weiterhelfen.
Ich stehe wirklich auf der Leitung! :/

Mein Script soll die Daten auslesen und bearbeiten können.

Momentan habe ich folgender Fehler:

Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\itdb\test2.php on line 8

Ka, warum!
Ich habe seit dem letzen mal nichts nennenswertes verändert, und seit heute kommt dieser Fehler.

Letzes mal habe ich beim Drücken auf den Submit Button noch eine neue Seite mit der Meldung "Zugriff verweigert" bekommen.

Ich hoffe jemand kann mir helfen beide Fehler auszumerzen. face-smile

Danke schon mal. face-smile

lg Joe

config.php ---------------------------------

<?

//Datenbankverbindung 
$host = "localhost";   
$host_user = "root";   
$host_password = "testpw";   
$host_db = "itdb";   

$link = mysql_connect("$host", "$host_user", "$host_password")or die("Fehler beim verbinden!");  
mysql_select_db($host_db, $link)or die("Kann keine Verbindung mit der Datenbank herstellen!");  

?> 

test.php -----------------------------------

<form action="<?php echo $erfolgreich; ?>" method="post">  

<?
include("config.php");  

if(isset($_POST["submitted"])) {  
	$_sql = "UPDATE geraete';  
	$_sql .= " SET kunde='".$_POST["kunde"]."'";  
	$_sql .= " SET benutzer='".$_POST["benutzer"]."'";  
	$_sql .= " SET typ='".$_POST["typ"]."'";  
	$_sql .= " SET hostname='".$_POST["hostname"]."'";  
	$_sql .= " SET benutzer='".$_POST["benutzer"]."'";  
	$_sql .= " SET hersteller='".$_POST["hersteller"]."'";  
	$_sql .= " SET prod_bez='".$_POST["prod_bez"]."'";  
	$_sql .= " SET prod_nr='".$_POST["prod_nr"]."'";  
	$_sql .= " SET sn='".$_POST["sn"]."'";  
	$_sql .= " SET spare_nr='".$_POST["spare_nr"]."'";  
	$_sql .= " SET service_tag='".$_POST["service_tag"]."'";  
	$_sql .= " SET expr_tag='".$_POST["expr_tag"]."'";  
	$_sql .= " SET kauf_dat='".$_POST["kauf_dat"]."'";  
	$_sql .= " SET liefer_dat='".$_POST["liefer_dat"]."'";  
	$_sql .= " SET garantie='".$_POST["garantie"]."'";  
	$_sql .= " SET domain='".$_POST["domain"]."'";  
	$_sql .= " SET mac='".$_POST["mac"]."'";  
	$_sql .= " SET ip='".$_POST["ip"]."'";  
	$_sql .= " SET subnet='".$_POST["subnet"]."'";  
	$_sql .= " SET gateway='".$_POST["gateway"]."'";  
	$_sql .= " SET dns='".$_POST["dns"]."'";  
	$_sql .= " SET dns2='".$_POST["dns2"]."'";  
	$_sql .= " SET team_id='".$_POST["team_id"]."'";  
	$_sql .= " SET team_pass='".$_POST["team_pass"]."'";  
	$_sql .= " SET comments='".$_POST["comments"]."'";  
	$_sql .= " WHERE id='".$_POST["id"]."'";  
	mysql_query($_sql,$link);
} else {
	$abfrage ='SELECT * FROM geraete WHERE id=1';     
	$ergebnis = mysql_query($abfrage);  
	   
		while ($geraete= mysql_fetch_array($ergebnis))
		
		{
		
			$id = $geraete["id"];  
			$kunde = $geraete["kunde"];  
			$benutzer = $geraete["benutzer"];  
			$typ = $geraete["typ"];  
			$hostname = $geraete["hostname"];  
			$hersteller = $geraete["hersteller"];  
			$prod_bez = $geraete["prod_bez"];  
			$prod_nr = $geraete["prod_nr"];  
			$sn = $geraete["sn"];  
			$spare_nr = $geraete["spare_nr"];  
			$service_tag = $geraete["service_tag"];  
			$expr_tag = $geraete["expr_tag"];  
			$kauf_dat = $geraete["kauf_dat"];  
			$liefer_dat = $geraete["liefer_dat"];  
			$garantie = $geraete["garantie"];  
			$domain = $geraete["domain"];  
			$mac = $geraete["mac"];  
			$ip = $geraete["ip"];  
			$subnet = $geraete["subnet"];  
			$gateway = $geraete["gateway"];  
			$dns = $geraete["dns"];  
			$dns2 = $geraete["dns2"];  
			$team_id = $geraete["team_id"];  
			$team_pass = $geraete["team_pass"];  
			$comments = $geraete["comments"];  
?>

<table>
	<tr>
		<td valign="top"><input type="hidden" name="id" size="35" value="<?php echo $id; ?>"></td>  
	</tr>
	<tr>
		<td>Kunde:</td>
  		<td valign="top"><input type="text" name="kunde" size="35" value="<?php echo $kunde; ?>"></td>  
  	</tr>
  	<tr>
  		<td>Benutzer:</td>
		<td valign="top"><input type="text" name="benutzer" size="35" value="<?php echo $benutzer; ?>"></td>  
	</tr>
	<tr>
		<td>Typ:</td>
		<td>
			<select name="typ" size="1" style="width: 237px">  
				<option selected=""><?php echo $typ; ?></option>  
				<option>PC</option>
				<option>Notebook</option>
				<option>Server</option>
			</select>
		</td>
	</tr>
	<tr>
		<td>Hostname:</td>
		<td valign="top"><input type="text" name="hostname" size="35" value="<?php echo $hostname; ?>"></td>  
	</tr>
	<tr>
		<td>Hersteller:</td>
		<td valign="top"><input type="text" name="hersteller" size="35" value="<?php echo $hersteller; ?>"></td>  
	</tr>  
	<tr>
		<td>Produkt Bezeichnung:</td>
		<td valign="top"><input type="text" name="prod_bez" size="35" value="<?php echo $prod_bez; ?>"></td>  
	</tr>
	<tr>
		<td>Produkt Nummer::</td>
		<td valign="top"><input type="text" name="prod_nr" size="35" value="<?php echo $prod_nr; ?>"></td>  
	</tr> 
	<tr>
		<td>Seriennummer:</td>
		<td valign="top"><input type="text" name="sn" size="35" value="<?php echo $sn; ?>"></td>  
	</tr> 
	<tr>
		<td>Spare Nummer:</td>
		<td valign="top"><input type="text" name="spare_nr" size="35" value="<?php echo $spare_nr; ?>"></td>  
	</tr>   
	<tr>
		<td>Service Tag:</td>
		<td valign="top"><input type="text" name="service_tag" size="35" value="<?php echo $service_tag; ?>"></td>  
	</tr>   
	<tr>
		<td>Express Service Tag:</td>
		<td valign="top"><input type="text" name="expr_tag" size="35" value="<?php echo $expr_tag; ?>"></td>  
	</tr>    
	<tr>
		<td>Kauf Datum:</td>
		<td valign="top"><input type="text" name="kauf_dat" size="35" value="<?php echo $kauf_dat; ?>"></td>  
	</tr>   
	<tr>
		<td>Liefer Datum:</td>
		<td valign="top"><input type="text" name="liefer_dat" size="35" value="<?php echo $liefer_dat; ?>"></td>  
	</tr>   
	<tr>
		<td>Garantie bis:</td>
		<td valign="top"><input type="text" name="garantie" size="35" value="<?php echo $garantie; ?>"></td>  
	</tr>   
	<tr>
		<td>Domäne:</td>
		<td valign="top"><input type="text" name="domain" size="35" value="<?php echo $domain; ?>"></td>  
	</tr>    
	<tr>
		<td>MAC-Adresse:</td>
		<td valign="top"><input type="text" name="mac" size="35" value="<?php echo $mac; ?>"></td>  
	</tr>  
	<tr>
		<td>IP-Adresse:</td>
		<td valign="top"><input type="text" name="ip" size="35" value="<?php echo $ip; ?>"></td>  
	</tr>  
	<tr>
		<td>Subnet-Maske:</td>
		<td valign="top"><input type="text" name="subnet" size="35" value="<?php echo $subnet; ?>"></td>  
	</tr>  
	<tr>
		<td>Standard-Gateway:</td>
		<td valign="top"><input type="text" name="gateway" size="35" value="<?php echo $gateway; ?>"></td>  
	</tr>  
	<tr>
		<td>DNS:</td>
		<td valign="top"><input type="text" name="dns" size="35" value="<?php echo $dns; ?>"></td>  
	</tr>  
	<tr>
		<td>Alternativer DNS:</td>
		<td valign="top"><input type="text" name="dns2" size="35" value="<?php echo $dns2; ?>"></td>  
	</tr>  
	<tr>
		<td>Teamviewer ID:</td>
		<td valign="top"><input type="text" name="team_id" size="35" value="<?php echo $team_id; ?>"></td>  
	</tr> 
	<tr>
		<td>Teamviewer Passwort:</td>
		<td valign="top"><input type="text" name="team_pass" size="35" value="<?php echo $team_pass; ?>"></td>  
	</tr> 
	<tr>
		<td>Kommentare:</td>
		<td> <textarea name="comments" cols="27" rows="15"><?php echo $comments; ?></textarea> </td>  
	</tr>             
</table>

<?php
  		  }		  
mysql_close($link);   
?>

<input type="submit" name="submitted" value="&Uuml;bernehmen">  
</form>

<?

	}
	
?>

Content-Key: 171576

Url: https://administrator.de/contentid/171576

Printed on: April 23, 2024 at 09:04 o'clock

Member: thaenhusen
thaenhusen Aug 16, 2011 at 12:58:26 (UTC)
Goto Top
Moin.

$_sql = "UPDATE geraete';

in

$_sql = "UPDATE geraete";

ändern.

HTH
MK
Member: beta-way-of-life
beta-way-of-life Aug 16, 2011 at 13:02:32 (UTC)
Goto Top
Zitat von @thaenhusen:
Moin.

$_sql = "UPDATE geraete';

in

$_sql = "UPDATE geraete";

ändern.

HTH
MK


Lol, ich habs anscheinend geschafft den Wald vor lauter Bäumen nicht mehr zu sehen. lol
Ich hab die ganze Zeit eine Zeile tiefer gesucht. lol.

Und nebenbei alles seit ca. 30 Minuten durchsucht. :D

Gut, danke erstmal thaenhusen.

Jetzt bin ich wieder beim alten Problem:


Zugriff verweigert!

Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 403

localhost
16.08.2011 15:00:24
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1


Hat da auch jemand eine Idee??
Member: kaiand1
kaiand1 Aug 16, 2011 at 13:11:34 (UTC)
Goto Top
Moin
Erstmal sagt der Parse Fehler in Datei test2.php, du zeigst aber nur test.php.
Dann gibt es meist in der php error log noch Hinweise was Falsch ist.
Zumal
error_reporting(E_ALL);
echo mysql_error();
auch weitere Infos geben.
Member: beta-way-of-life
beta-way-of-life Aug 16, 2011 at 13:23:08 (UTC)
Goto Top
Zitat von @kaiand1:
Moin
Erstmal sagt der Parse Fehler in Datei test2.php, du zeigst aber nur test.php.
Dann gibt es meist in der php error log noch Hinweise was Falsch ist.
Zumal
error_reporting(E_ALL);
echo mysql_error();
auch weitere Infos geben.

Sry, hab mich nur verschrieben.
Die Datei heißt natürlich test2.php

Wobei ich eh schon am neuen Problem hänge....
Mit dem Zugriff verweigert.... wie oben beschrieben.

APACHE Error ------------------------------------

[Tue Aug 16 15:17:21 2011] [error] [client 127.0.0.1] (20024)The given path is misformatted or contained invalid characters: Cannot map POST /itdb/%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Undefined%20variable:%20erfolgreich%20in%20%3Cb%3EC:/xampp/htdocs/itdb/test2.php%3C/b%3E%20on%20line%20%3Cb%3E1%3C/b%3E%3Cbr%20/%3E HTTP/1.1 to file, referer: http://localhost/itdb/test2.php


Ich vermute mal der Fehler liegt in der ersten Zeile. Die verstehe ich nicht wirklich. :/

<form action="<?php echo $erfolgreich; ?>" method="post">

lg
Member: Arano
Arano Aug 16, 2011 at 13:57:51 (UTC)
Goto Top
Hi,

wann wird denn die Variable $erfolgreich erstellt ?
Oder mal etwas anders gefragt, was wenn es nicht "erfolgreich" war ? Existiert die Variable dann auch !?
Z.B.
<?php
$speichern = TRUE;

if(TRUE === $speichern)
    $erfolgreich = 'gespeichert !';  
else 
    echo 'Fehlermeldung !'  

echo 'Die Daten wurden '.$erfolgreich;  
?>
Wenn das speichern gut verläuft, ist alles in Ordnung, die Variabel $erfolgreich wird erstellt und kann später verwendet werden.
Wenn es einen Speicherfehler gibt, wird die Fehlermeldung ausgegeben.... ABER das Script läuft weiter und obwohl die Variabel $erfolgreich in diesem Fall nicht erstellt wurde, wird trotzdem versucht sie Auszugeben.

Könnte ähnlich bei die sein !


MySQL - Reference - UPDATE
 UPDATE `table`
    SET `field1` = 'wert1',  
        `field2` = 'wert2',  
        `field3` = 'wert3'  


~Arano
Member: ganymed
ganymed Aug 16, 2011 at 14:33:16 (UTC)
Goto Top
Prüfe mal genau was in deiner Variable $erfolgreich drin steht.
Oft kommt es vor, dass dort nicht das drin steht was man erwartet bzw. diese einen falschen Inhalt hat.

gruß ganymed
Member: beta-way-of-life
beta-way-of-life Aug 16, 2011 at 14:58:48 (UTC)
Goto Top
Zitat von @Arano:
Hi,

wann wird denn die Variable $erfolgreich erstellt ?
Oder mal etwas anders gefragt, was wenn es nicht "erfolgreich" war ? Existiert die Variable dann auch !?
Z.B.
> <?php
> $speichern = TRUE;
> 
> if(TRUE === $speichern)
>     $erfolgreich = 'gespeichert !';  
> else 
>     echo 'Fehlermeldung !'  
> 
> echo 'Die Daten wurden '.$erfolgreich;  
> ?>
> 
Wenn das speichern gut verläuft, ist alles in Ordnung, die Variabel $erfolgreich wird erstellt und kann
später verwendet werden.
Wenn es einen Speicherfehler gibt, wird die Fehlermeldung ausgegeben.... ABER das Script läuft weiter und obwohl die Variabel
$erfolgreich in diesem Fall nicht erstellt wurde, wird trotzdem versucht sie Auszugeben.

Könnte ähnlich bei die sein !


MySQL - Reference - UPDATE
 UPDATE `table`
>     SET `field1` = 'wert1',  
>         `field2` = 'wert2',  
>         `field3` = 'wert3'  


~Arano

Hi,

die Variable gibt es noch nicht.
Sollte aber soweit keinen Einfluss auf das Script haben oder?

Hab die Variable inzwischen so definiert:

<?
$erfolgreich = "Erfolgreich gespeichert!";
?>

Hat aber wie gesagt keinen Einfluss auf das Script.

Ja, die UPDATE und SET Felder passen doch so oder?

Danke.
Member: Arano
Arano Aug 16, 2011 at 15:28:20 (UTC)
Goto Top
Hi

Sollte aber soweit keinen Einfluss auf das Script haben oder?
...
Hat aber wie gesagt keinen Einfluss auf das Script.
Oh doch !
Das IST eine Fehleinschätzung !

Schau dir die Fehlermeldung aus dem Apache-Log einmal genauer an !
/itdb/%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Undefined%20variable:%20erfolgreich%20in%20%3Cb%3EC:/xampp/htdocs/itdb/test2.php%3C/b%3E%20on%20line%20%3Cb%3E1%3C/b%3E%3Cbr%20/%3E
Mit ein bisschen Augenkneifen wird das zu:
/itdb/<br /><br />Notice: Undefined variable: erfolgreich in C:/xampp/htdocs/itdb/test2.php on line 1<br />

Das ist die Warnmeldung von PHP die in einer Pfadangabe steht , somit kann der Apache mit dem "Pfad" nichts mehr anfangen weil es diesen nicht gibt !
Wie du selber schon richtig vermutet hast, kommt das aus dieser Zeile
<form action="<?php echo $erfolgreich; ?>" method="post">  

Das müsstest du auch sehen können wenn due die Seite aufrufst und dir dann von dieser den Quelltext anzeigen lässt.

Wie du siehst, hat diese undefinierte Variable enorme Auswirkungen auf die Abarbeitung face-wink

Ja, die UPDATE und SET Felder passen doch so oder?
Schau dir die Reference an, dort stehts ...und in meinem Beispiel. face-wink


~Arano
Member: beta-way-of-life
beta-way-of-life Aug 17, 2011 at 07:40:31 (UTC)
Goto Top
Also,

ich hab jetzt deinen Vorschlag mit $speichern und $erfolgreich eingebaut.

Jetzt regt er sich da auf: :/

[Wed Aug 17 09:19:20 2011] [error] [client 127.0.0.1] File does not exist: C:/xampp/htdocs/itdb/Die Daten wurden gespeichert !, referer: http://localhost/itdb/test2.php

Muss diese form action zwingend auf ein eigenes File verweißen??

Das Problem mit dem SET und UPDATE versteh ich leider auch nicht. -.-
Kannst mir vlt zeigen wie es mit dem .$_POST richtig zu schreiben ist?

Danke.
Member: ganymed
ganymed Aug 17, 2011 at 08:00:18 (UTC)
Goto Top
Hallo,

wie bereits von Arano
Das müsstest du auch sehen können wenn due die Seite aufrufst und dir dann von dieser den Quelltext anzeigen lässt.
und von mir gesagt.
Prüfe mal genau was in deiner Variable $erfolgreich drin steht.

Ich glaube ich weiß jetzt wo der Denkfehler ist.
Wenn du die Variable $erfolgreich so einsetzt <form action="<?php echo $erfolgreich; ?>" method="post"> dann muss dort zwingend eine Pfadangabe stehen.
Also so was wie http://localhost/itdb/test2.php oder ./test2.php. Oft auch gemachter Fehler ist so was C:/....
Bei dir steht dies aber nicht da drin.
Member: thaenhusen
thaenhusen Aug 17, 2011 at 08:03:06 (UTC)
Goto Top
Moin.

Unter action gibt man das skript an, dass die Daten verarbeiten soll.

Also in Deinem Fall das aufrufende Skript.:

<form action="<?php echo $erfolgreich; ?>" method="post">

<form action="test2.php" method="post">

Bei Action kannst Du etwas anstossen bzw. das Skript angeben dem die Daten gegeben werden.

$_sql = "UPDATE geraete";
$_sql .= " SET kunde='".$_POST["kunde"]."',";
$_sql .= " benutzer='".$_POST["benutzer"]."',";
$_sql .= " typ='".$_POST["typ"]."',";
$_sql .= " hostname='".$_POST["hostname"]."',";

Dann fehlen bei den sets noch die trennenden Kommata.

HTH
MK
Member: beta-way-of-life
beta-way-of-life Aug 17, 2011 at 10:42:42 (UTC)
Goto Top
So, aus verzweiflung hab ich das ganze jetzt in 2 Files gesplitet.
Funktionieren tut es leider immer noch nicht. :/

Fehler im apache error log gibts keine.

edit_test.php

<?
include("config.php");  
?>

<form action="input_test.php" method="post">  

<?
$abfrage ='SELECT * FROM geraete WHERE id=1';     
$ergebnis = mysql_query($abfrage);     
while ($geraete= mysql_fetch_array($ergebnis))
{
	$id = $geraete["id"];  
	$kunde = $geraete["kunde"];  
	$benutzer = $geraete["benutzer"];  
	$typ = $geraete["typ"];  
	$hostname = $geraete["hostname"];  
	$hersteller = $geraete["hersteller"];  
	$prod_bez = $geraete["prod_bez"];  
	$prod_nr = $geraete["prod_nr"];  
	$sn = $geraete["sn"];  
	$spare_nr = $geraete["spare_nr"];  
	$service_tag = $geraete["service_tag"];  
	$expr_tag = $geraete["expr_tag"];  
	$kauf_dat = $geraete["kauf_dat"];  
	$liefer_dat = $geraete["liefer_dat"];  
	$garantie = $geraete["garantie"];  
	$domain = $geraete["domain"];  
	$mac = $geraete["mac"];  
	$ip = $geraete["ip"];  
	$subnet = $geraete["subnet"];  
	$gateway = $geraete["gateway"];  
	$dns = $geraete["dns"];  
	$dns2 = $geraete["dns2"];  
	$team_id = $geraete["team_id"];  
	$team_pass = $geraete["team_pass"];  
	$comments = $geraete["comments"];  
?>

<table>
	<tr>
		<td>ID:</td>
		<td valign="top"><input type="text" name="id" size="35" value="<?php echo $id; ?>"></td>  
	</tr>
	<tr>
		<td>Kunde:</td>
  		<td valign="top"><input type="text" name="kunde" size="35" value="<?php echo $kunde; ?>"></td>  
  	</tr>
  	<tr>
  		<td>Benutzer:</td>
		<td valign="top"><input type="text" name="benutzer" size="35" value="<?php echo $benutzer; ?>"></td>  
	</tr>
	<tr>
		<td>Typ:</td>
		<td>
			<select name="typ" size="1" style="width: 237px">  
				<option selected=""><?php echo $typ; ?></option>  
				<option>PC</option>
				<option>Notebook</option>
				<option>Server</option>
			</select>
		</td>
	</tr>
	<tr>
		<td>Hostname:</td>
		<td valign="top"><input type="text" name="hostname" size="35" value="<?php echo $hostname; ?>"></td>  
	</tr>
	<tr>
		<td>Hersteller:</td>
		<td valign="top"><input type="text" name="hersteller" size="35" value="<?php echo $hersteller; ?>"></td>  
	</tr>  
	<tr>
		<td>Produkt Bezeichnung:</td>
		<td valign="top"><input type="text" name="prod_bez" size="35" value="<?php echo $prod_bez; ?>"></td>  
	</tr>
	<tr>
		<td>Produkt Nummer::</td>
		<td valign="top"><input type="text" name="prod_nr" size="35" value="<?php echo $prod_nr; ?>"></td>  
	</tr> 
	<tr>
		<td>Seriennummer:</td>
		<td valign="top"><input type="text" name="sn" size="35" value="<?php echo $sn; ?>"></td>  
	</tr> 
	<tr>
		<td>Spare Nummer:</td>
		<td valign="top"><input type="text" name="spare_nr" size="35" value="<?php echo $spare_nr; ?>"></td>  
	</tr>   
	<tr>
		<td>Service Tag:</td>
		<td valign="top"><input type="text" name="service_tag" size="35" value="<?php echo $service_tag; ?>"></td>  
	</tr>   
	<tr>
		<td>Express Service Tag:</td>
		<td valign="top"><input type="text" name="expr_tag" size="35" value="<?php echo $expr_tag; ?>"></td>  
	</tr>    
	<tr>
		<td>Kauf Datum:</td>
		<td valign="top"><input type="text" name="kauf_dat" size="35" value="<?php echo $kauf_dat; ?>"></td>  
	</tr>   
	<tr>
		<td>Liefer Datum:</td>
		<td valign="top"><input type="text" name="liefer_dat" size="35" value="<?php echo $liefer_dat; ?>"></td>  
	</tr>   
	<tr>
		<td>Garantie bis:</td>
		<td valign="top"><input type="text" name="garantie" size="35" value="<?php echo $garantie; ?>"></td>  
	</tr>   
	<tr>
		<td>Domäne:</td>
		<td valign="top"><input type="text" name="domain" size="35" value="<?php echo $domain; ?>"></td>  
	</tr>    
	<tr>
		<td>MAC-Adresse:</td>
		<td valign="top"><input type="text" name="mac" size="35" value="<?php echo $mac; ?>"></td>  
	</tr>  
	<tr>
		<td>IP-Adresse:</td>
		<td valign="top"><input type="text" name="ip" size="35" value="<?php echo $ip; ?>"></td>  
	</tr>  
	<tr>
		<td>Subnet-Maske:</td>
		<td valign="top"><input type="text" name="subnet" size="35" value="<?php echo $subnet; ?>"></td>  
	</tr>  
	<tr>
		<td>Standard-Gateway:</td>
		<td valign="top"><input type="text" name="gateway" size="35" value="<?php echo $gateway; ?>"></td>  
	</tr>  
	<tr>
		<td>DNS:</td>
		<td valign="top"><input type="text" name="dns" size="35" value="<?php echo $dns; ?>"></td>  
	</tr>  
	<tr>
		<td>Alternativer DNS:</td>
		<td valign="top"><input type="text" name="dns2" size="35" value="<?php echo $dns2; ?>"></td>  
	</tr>  
	<tr>
		<td>Teamviewer ID:</td>
		<td valign="top"><input type="text" name="team_id" size="35" value="<?php echo $team_id; ?>"></td>  
	</tr> 
	<tr>
		<td>Teamviewer Passwort:</td>
		<td valign="top"><input type="text" name="team_pass" size="35" value="<?php echo $team_pass; ?>"></td>  
	</tr> 
	<tr>
		<td>Kommentare:</td>
		<td> <textarea name="comments" cols="27" rows="15"><?php echo $comments; ?></textarea> </td>  
	</tr>             
</table>

<input type="submit" name="submitted" value="&Uuml;bernehmen">  

<?php
    }
mysql_close($link); 
?>

input_test.php

<?

include("config.php");  

	$abfrage = "SELECT * FROM geraete WHERE id = 1";  
	$ergebnis = mysql_query($abfrage);
	
	$_sql = "UPDATE geraete";  
	$_sql .= " SET kunde='".$_POST["kunde"]."'";  
	$_sql .= " SET benutzer='".$_POST["benutzer"]."'";  
	$_sql .= " SET typ='".$_POST["typ"]."'";  
	$_sql .= " SET hostname='".$_POST["hostname"]."'";  
	$_sql .= " SET benutzer='".$_POST["benutzer"]."'";  
	$_sql .= " SET hersteller='".$_POST["hersteller"]."'";  
	$_sql .= " SET prod_bez='".$_POST["prod_bez"]."'";  
	$_sql .= " SET prod_nr='".$_POST["prod_nr"]."'";  
	$_sql .= " SET sn='".$_POST["sn"]."'";  
	$_sql .= " SET spare_nr='".$_POST["spare_nr"]."'";  
	$_sql .= " SET service_tag='".$_POST["service_tag"]."'";  
	$_sql .= " SET expr_tag='".$_POST["expr_tag"]."'";  
	$_sql .= " SET kauf_dat='".$_POST["kauf_dat"]."'";  
	$_sql .= " SET liefer_dat='".$_POST["liefer_dat"]."'";  
	$_sql .= " SET garantie='".$_POST["garantie"]."'";  
	$_sql .= " SET domain='".$_POST["domain"]."'";  
	$_sql .= " SET mac='".$_POST["mac"]."'";  
	$_sql .= " SET ip='".$_POST["ip"]."'";  
	$_sql .= " SET subnet='".$_POST["subnet"]."'";  
	$_sql .= " SET gateway='".$_POST["gateway"]."'";  
	$_sql .= " SET dns='".$_POST["dns"]."'";  
	$_sql .= " SET dns2='".$_POST["dns2"]."'";  
	$_sql .= " SET team_id='".$_POST["team_id"]."'";  
	$_sql .= " SET team_pass='".$_POST["team_pass"]."'";  
	$_sql .= " SET comments='".$_POST["comments"]."'";  
	$_sql .= " WHERE id='".$_POST["id"]."'";  
	mysql_query($_sql,$link);
	
?>

<html>
Erfolgreich gespeichert!
</html>
Member: thaenhusen
thaenhusen Aug 17, 2011 at 11:42:09 (UTC)
Goto Top
Moin.

Wie oebn beschrieben hast Du noch zu viele SET und zu wenige Kommas...

<?php
        include("config.php");  
  
        //Was soll das hier?
	//$abfrage = "SELECT * FROM geraete WHERE id = 1"; 
	//$ergebnis = mysql_query($abfrage);
	
	$_sql = "UPDATE geraete";  
	$_sql .= " SET kunde='".$_POST["kunde"]."',";  
	$_sql .= " benutzer='".$_POST["benutzer"]."',";  
	$_sql .= " typ='".$_POST["typ"]."',";  
	$_sql .= " hostname='".$_POST["hostname"]."',";  
	$_sql .= " benutzer='".$_POST["benutzer"]."',";  
	$_sql .= " hersteller='".$_POST["hersteller"]."',";  
	$_sql .= " prod_bez='".$_POST["prod_bez"]."',";  
	$_sql .= " prod_nr='".$_POST["prod_nr"]."',";  
	$_sql .= " sn='".$_POST["sn"]."',";  
	$_sql .= " spare_nr='".$_POST["spare_nr"]."',";  
	$_sql .= " service_tag='".$_POST["service_tag"]."',";  
	$_sql .= " expr_tag='".$_POST["expr_tag"]."',";  
	$_sql .= " kauf_dat='".$_POST["kauf_dat"]."',";  
	$_sql .= " liefer_dat='".$_POST["liefer_dat"]."',";  
	$_sql .= " garantie='".$_POST["garantie"]."',";  
	$_sql .= " domain='".$_POST["domain"]."',";  
	$_sql .= " mac='".$_POST["mac"]."',";  
	$_sql .= " ip='".$_POST["ip"]."',";  
	$_sql .= " subnet='".$_POST["subnet"]."',";  
	$_sql .= " gateway='".$_POST["gateway"]."',";  
	$_sql .= " dns='".$_POST["dns"]."',";  
	$_sql .= " dns2='".$_POST["dns2"]."',";  
	$_sql .= " team_id='".$_POST["team_id"]."',";  
	$_sql .= " team_pass='".$_POST["team_pass"]."',";  
	$_sql .= " comments='".$_POST["comments"]."',";  
	$_sql .= " WHERE id='".$_POST["id"]."'";  
	mysql_query($_sql);
	
?>

<html>
Erfolgreich gespeichert!
</html>

HTH
MK
Member: beta-way-of-life
beta-way-of-life Aug 17, 2011 at 12:44:42 (UTC)
Goto Top
Zitat von @thaenhusen:
Moin.

Wie oebn beschrieben hast Du noch zu viele SET und zu wenige Kommas...

> <?php
>         include("config.php");  
>   
>         //Was soll das hier?
> 	//$abfrage = "SELECT * FROM geraete WHERE id = 1"; 
> 	//$ergebnis = mysql_query($abfrage);
> 	
> 	$_sql = "UPDATE geraete";  
> 	$_sql .= " SET kunde='".$_POST["kunde"]."',";  
> 	$_sql .= " benutzer='".$_POST["benutzer"]."',";  
> 	$_sql .= " typ='".$_POST["typ"]."',";  
> 	$_sql .= " hostname='".$_POST["hostname"]."',";  
> 	$_sql .= " benutzer='".$_POST["benutzer"]."',";  
> 	$_sql .= " hersteller='".$_POST["hersteller"]."',";  
> 	$_sql .= " prod_bez='".$_POST["prod_bez"]."',";  
> 	$_sql .= " prod_nr='".$_POST["prod_nr"]."',";  
> 	$_sql .= " sn='".$_POST["sn"]."',";  
> 	$_sql .= " spare_nr='".$_POST["spare_nr"]."',";  
> 	$_sql .= " service_tag='".$_POST["service_tag"]."',";  
> 	$_sql .= " expr_tag='".$_POST["expr_tag"]."',";  
> 	$_sql .= " kauf_dat='".$_POST["kauf_dat"]."',";  
> 	$_sql .= " liefer_dat='".$_POST["liefer_dat"]."',";  
> 	$_sql .= " garantie='".$_POST["garantie"]."',";  
> 	$_sql .= " domain='".$_POST["domain"]."',";  
> 	$_sql .= " mac='".$_POST["mac"]."',";  
> 	$_sql .= " ip='".$_POST["ip"]."',";  
> 	$_sql .= " subnet='".$_POST["subnet"]."',";  
> 	$_sql .= " gateway='".$_POST["gateway"]."',";  
> 	$_sql .= " dns='".$_POST["dns"]."',";  
> 	$_sql .= " dns2='".$_POST["dns2"]."',";  
> 	$_sql .= " team_id='".$_POST["team_id"]."',";  
> 	$_sql .= " team_pass='".$_POST["team_pass"]."',";  
> 	$_sql .= " comments='".$_POST["comments"]."',";  
> 	$_sql .= " WHERE id='".$_POST["id"]."'";  
> 	mysql_query($_sql);
> 	
> ?>
> 
> <html>
> Erfolgreich gespeichert!
> </html>
> 

HTH
MK

Hallo,

hab die komas eingefügt.
Hab leider den unterschied erst beim 1000 mal hinschauen gesehen.

Passiert aber leider immer noch nichts.....

lg
Member: ganymed
ganymed Aug 17, 2011 at 13:00:10 (UTC)
Goto Top
Vor dem WHERE darf kein Komma sein.
..., comments='...' WHERE nicht
..., comments='...', WHERE
Tip: Bei SQL Problemen mal ein echo $sql; machen, da kann man das Statement besser als ganzes sehen und findet Fehler schneller.
Member: beta-way-of-life
beta-way-of-life Aug 17, 2011 at 13:10:56 (UTC)
Goto Top
Zitat von @ganymed:
Vor dem WHERE darf kein Komma sein.
..., comments='...' WHERE nicht
..., comments='...', WHERE
Tip: Bei SQL Problemen mal ein echo $sql; machen, da kann man das Statement besser als ganzes sehen und findet Fehler schneller.

Also ich bin wirklich zu blöd dafür! ^^

Da ist doch kein Komma vor dem where?

<code type="php>
<?

include("config.php");

$abfrage = "SELECT * FROM geraete";
$ergebnis = mysql_query($abfrage);

$_sql = "UPDATE geraete";
$_sql .= " SET kunde='".$_POST["kunde"]."',";
$_sql .= " benutzer='".$_POST["benutzer"]."',";
$_sql .= " typ='".$_POST["typ"]."',";
$_sql .= " hostname='".$_POST["hostname"]."',";
$_sql .= " SET benutzer='".$_POST["benutzer"]."',";
$_sql .= " SET hersteller='".$_POST["hersteller"]."',";
$_sql .= " SET prod_bez='".$_POST["prod_bez"]."',";
$_sql .= " SET prod_nr='".$_POST["prod_nr"]."',";
$_sql .= " SET sn='".$_POST["sn"]."',";
$_sql .= " SET spare_nr='".$_POST["spare_nr"]."',";
$_sql .= " SET service_tag='".$_POST["service_tag"]."',";
$_sql .= " SET expr_tag='".$_POST["expr_tag"]."',";
$_sql .= " SET kauf_dat='".$_POST["kauf_dat"]."',";
$_sql .= " SET liefer_dat='".$_POST["liefer_dat"]."',";
$_sql .= " SET garantie='".$_POST["garantie"]."',";
$_sql .= " SET domain='".$_POST["domain"]."',";
$_sql .= " SET mac='".$_POST["mac"]."',";
$_sql .= " SET ip='".$_POST["ip"]."',";
$_sql .= " SET subnet='".$_POST["subnet"]."',";
$_sql .= " SET gateway='".$_POST["gateway"]."',";
$_sql .= " SET dns='".$_POST["dns"]."',";
$_sql .= " SET dns2='".$_POST["dns2"]."',";
$_sql .= " SET team_id='".$_POST["team_id"]."',";
$_sql .= " SET team_pass='".$_POST["team_pass"]."',";
$_sql .= " SET comments='".$_POST["comments"]."',";
$_sql .= " WHERE id='".$_POST["id"]."',";
mysql_query($_sql,$link);

?>

<html>
Erfolgreich gespeichert!
</html>
Member: ganymed
ganymed Aug 17, 2011 at 13:23:18 (UTC)
Goto Top
Doch und zwar in Zeile 33 am Ende.
..."',";   
Mach mal ab Zeile 35 folgendes.
//mysql_query($_sql,$link);
?> 
<html><?php echo $_sql; ?></html>
Dann siehst du das.
Member: beta-way-of-life
beta-way-of-life Aug 17, 2011 at 13:31:26 (UTC)
Goto Top
Zitat von @ganymed:
Doch und zwar in Zeile 33 am Ende.
> ..."',";   
> 
Mach mal ab Zeile 35 folgendes.
> //mysql_query($_sql,$link);
> ?> 
> <html><?php echo $_sql; ?></html>
> 
Dann siehst du das.

So, danke nochmal.
Ich hab das Komma entfernt:

jetzt bekomm ich beim $_sql echo folgendes:

UPDATE geraete SET kunde='xxx', benutzer='xxx', typ='PC', hostname='tech01', SET benutzer='xxx', SET hersteller='Dell', SET prod_bez='Optiplex 745', SET prod_nr='test', SET sn='', SET spare_nr='', SET service_tag='23J', SET expr_tag='214747', SET kauf_dat='2009-08-11', SET liefer_dat='2009-08-14', SET garantie='2011-08-11', SET domain='testdomain', SET mac='00-1E-4F7-C6', SET ip='138.2.1.20', SET subnet='255.255.255.0', SET gateway='138.2.254.1', SET dns='138.2.1.120', SET dns2='138.2.1.123', SET team_id='', SET team_pass='', SET comments='Technik PC der' WHERE id='1', Erfolgreich gespeichert!

Das wäre soweit richtig oder?

Leider trägt er trotzdem nichts in die DB ein.

Code is jetzt wie folgt:

	$_sql .= " SET comments='".$_POST["comments"]."'";  
	$_sql .= " WHERE id='".$_POST["id"]."',";  
	mysql_query($_sql,$link);
	
?>

EDIT: Oben haben ein paar SET's gefehlt.... hab ich ausgebessert. Ist aber selbes Ergebniss.
Member: thaenhusen
thaenhusen Aug 17, 2011 at 13:56:36 (UTC)
Goto Top
Moin.

SETs haben da nicht gefehlt. Du brauchst nur SET kunde = 'Mayer', AP = 'Herr Hans Meyer'.

Wie ist den Deine DB schon gefüllt?
Gibt es ID 1 denn schon. Ansonsten musst Du ein Insert machen.

Irgendwie fehlen Dir da so ein paar Grundlagen, z.B. welche SQL-Befehle es gibt (select, insert, update und delete) etc.


HTH
MK
Member: beta-way-of-life
beta-way-of-life Aug 17, 2011 at 14:06:09 (UTC)
Goto Top
Zitat von @thaenhusen:
Moin.

SETs haben da nicht gefehlt. Du brauchst nur SET kunde = 'Mayer', AP = 'Herr Hans Meyer'.

Wie ist den Deine DB schon gefüllt?
Gibt es ID 1 denn schon. Ansonsten musst Du ein Insert machen.

Irgendwie fehlen Dir da so ein paar Grundlagen, z.B. welche SQL-Befehle es gibt (select, insert, update und delete) etc.


HTH
MK

Hi nochmal,

ja, bei fixen Werten versteh ich das mit dem Set schon. (wie du gerade beschrieben hast)
Bei Werten aus Formularen passts so wie ich es gemacht habe oder?

Ja, die ID 1 ist gefüllt.

Die Werte werden ja in der edit_test.php ausgelesen und in einem Formular ausgegeben.
Dann ändere ich irgendetwas, drücke auf übernehmen und mit der input_test.php solls geändert werden.

Nur leider passiert da eben nichts.....

Ich weiß, mir fehlen viele Grundlagen weil ich mich nicht effektiv damit befasst habe.
Es braucht nur dieses eine Formular funktionieren. Dann bin ich wunschlos glücklich. :D

Für alles weitere hab ich eh länger Zeit und kann mich einlesen. face-smile

lg
Member: ganymed
ganymed Aug 17, 2011 at 14:08:44 (UTC)
Goto Top
Da muss ich thaenhusen zustimmen.
Beschäftige dich noch mal gründlich mit dem SQL Syntax.
Am Ende ist auch noch ein Fehler.
Am Ende eines Statements kommt kein , sondern ein ;
Wobei man dass auch weck lassen kann da es ja nur ein einziger SQL Befehl ist und laut mysql_query Beschreibung sogar soll.

gruß ganymed
Member: thaenhusen
thaenhusen Aug 17, 2011 at 14:27:52 (UTC)
Goto Top
Moin.

Was passiert denn, wenn Du

UPDATE geraete SET kunde='xxx', benutzer='xxx', typ='PC', hostname='tech01', SET benutzer='xxx', SET hersteller='Dell', SET prod_bez='Optiplex 745', SET prod_nr='test', SET sn='', SET spare_nr='', SET service_tag='23J', SET expr_tag='214747', SET kauf_dat='2009-08-11', SET liefer_dat='2009-08-14', SET garantie='2011-08-11', SET domain='testdomain', SET mac='00-1E-4F7-C6', SET ip='138.2.1.20', SET subnet='255.255.255.0', SET gateway='138.2.254.1', SET dns='138.2.1.120', SET dns2='138.2.1.123', SET team_id='', SET team_pass='', SET comments='Technik PC der' WHERE id='1'  

in phpMyAdmin oder ähnlichen auf die Datenbank loslässt?

HTH
MK
Member: beta-way-of-life
beta-way-of-life Aug 17, 2011 at 14:40:23 (UTC)
Goto Top
Zitat von @thaenhusen:
Moin.

Was passiert denn, wenn Du

> UPDATE geraete SET kunde='xxx', benutzer='xxx', typ='PC', hostname='tech01', SET  
> benutzer='xxx', SET hersteller='Dell', SET prod_bez='Optiplex 745', SET prod_nr='test',  
> SET sn='', SET spare_nr='', SET service_tag='23J', SET expr_tag='214747', SET  
> kauf_dat='2009-08-11', SET liefer_dat='2009-08-14', SET garantie='2011-08-11', SET  
> domain='testdomain', SET mac='00-1E-4F7-C6', SET ip='138.2.1.20', SET  
> subnet='255.255.255.0', SET gateway='138.2.254.1', SET dns='138.2.1.120', SET  
> dns2='138.2.1.123', SET team_id='', SET team_pass='', SET comments='Technik PC der' WHERE  
> id='1'  
> 

in phpMyAdmin oder ähnlichen auf die Datenbank loslässt?

HTH
MK

Darauf bin ich natürlich nicht gekommen.... ^^

http://www7.pic-upload.de/17.08.11/vzp8yezu1e22.jpg
Member: thaenhusen
thaenhusen Aug 17, 2011 at 15:02:57 (UTC)
Goto Top
Moin.

Darauf bin ich natürlich nicht gekommen.... ^^

Dann musst Du jetzt mal gucken, warum er da zickt. Sind Datenfelder zu klein für den Inhalt?
Passen die Datentypen nicht zu einander? Bei Dir ist alles String bzw. varchar...

Soll das so?

Ohne die Datenbankdefinition kann man jetzt nur orakeln...

HTH
MK
Member: beta-way-of-life
beta-way-of-life Aug 18, 2011 at 05:58:27 (UTC)
Goto Top
Hi,

ja, das soll so sein.
Sagenhafterweiße hab ichs jetzt durch abschauen in phpmyadmin geschafft das es bei einem Feld funktioniert....

$sql = "UPDATE `itdb`.`geraete` SET `hersteller` = '".$_POST["hersteller"]."', `prod_nr` = 'test' WHERE `geraete`.`id` = 1;";  

Jetzt hab ich nur das Problem das das bei über 20 Feldern etwas unübersichtlich wird.
Wie kann ich die ganze Schneiße jetzt in einzelne Zeilen aufteilen?

Danke.

lg
Member: thaenhusen
thaenhusen Aug 18, 2011 at 07:08:34 (UTC)
Goto Top
Moin.

Wenn Du so nicht weiter kommst wirst Du wohl Feld für Feld durch testen müssen...

Ansonsten mach einen Dump der Tabelle mit dem Datensatz der ID 1 und poste das,
dann kann man Dir vielleicht helfen...

HTH
MK
Member: beta-way-of-life
beta-way-of-life Aug 18, 2011 at 07:17:32 (UTC)
Goto Top
Zitat von @thaenhusen:
Moin.

Wenn Du so nicht weiter kommst wirst Du wohl Feld für Feld durch testen müssen...

Ansonsten mach einen Dump der Tabelle mit dem Datensatz der ID 1 und poste das,
dann kann man Dir vielleicht helfen...

HTH
MK

Hier der Auszug:

http://www7.pic-upload.de/18.08.11/aobo6dci6gw.jpg

Wobei du hast mich glaube falsch verstanden.
Mit dem oben genannten Code würde es ja für alle Felder funktionieren.

SET `hersteller` = '".$_POST["hersteller"]."', <--- funktioniert

Nur hab ich das Problem das ich nicht weiß wie ich es jetzt in mehrere Zeilen aufteilen kann.
Wenn ich das wie oben beschrieben für alle Felder mache hab ich eine 10 Meter lange Zeile auf dem Bildschirm. ;)

Ich würds einfach nur gern auf mehrere Zeilen aufteilen. face-smile

lg
Member: thaenhusen
thaenhusen Aug 18, 2011 at 07:56:31 (UTC)
Goto Top
Moin.

Ich würds einfach nur gern auf mehrere Zeilen aufteilen. face-smile

Und das bringt dann genau was?

Du brauchst das doch nur einmal ordentlich fertig machen und gut ist.

Aber wenn Du unbedingt Deinen Code versauen möchtest vieleicht so?

<?php

include("config.php");  
	
	$_sql = "UPDATE geraete";   
	$_sql .= " SET kunde='".$_POST["kunde"]."'";  
	$_sql .= " WHERE id='".$_POST["id"]."'";  
	mysql_query($_sql,$link);

	$_sql = "UPDATE geraete";   
	$_sql .= " SET benutzer='".$_POST["benutzer"]."'";   
	$_sql .= " WHERE id='".$_POST["id"]."'";  
	mysql_query($_sql,$link);	

        usw.
?>

Wie gesagt, das macht aber eigentlich null Sinn....

HTH
MK
Member: beta-way-of-life
beta-way-of-life Aug 18, 2011 at 09:11:34 (UTC)
Goto Top
Achso,

ich wusste nicht das dadurch der code "schlechter" wird.
Dann mach ich das ganze so fertig.

Ist somit gelöst.


Danke euch allen.

lg
Member: Arano
Arano Aug 18, 2011 at 15:59:35 (UTC)
Goto Top
Nein, dem ist auch nicht so !

Allerdings ist er, wenn du alles in EINE Zeile klatscht, unlesbar !
Also gibt es ja auch mehrere Möglichkeiten das in mehrere Zeilen zu gliedern.

<?php

  // einfacher Zeilenumbruch - die Zeilenumbrüche und vielen Leerzeichen oder Tabulatoren werden eh ignoriert
  $strUpdateGeraete = "UPDATE `tabelle`  
                          SET `feld1` = 'wert1',  
                              `feld2` = 'wert2',  
                              `feld3` = 'wert3'";  

  // PHP Verkettungsoperator "." (der Punkt) => http://de3.php.net/manual/de/function.echo.php 
  $strUpdateGeraete = "UPDATE `tabelle`"  
                        ."SET `feld1` = 'wert1',"  
                            ."`feld2` = 'wert2',"  
                            ."`feld3` = 'wert3'";  

  // HEREDOC => http://de3.php.net/manual/de/function.echo.php
  $strUpdateGeraete = <<<QUERY
UPDATE ` tabelle`
   SET `feld1` = 'wert1',  
       `feld2` = 'wert2',  
       `feld3` = 'wert3'  
QUERY;

?>

Oder eben so wie du es vom Anfang an gemacht hast, mit den einzelnen Zuweisungen bzw. der verketteten Zuweisung ( .= )


~Arano