php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
formularfeldinhalt auf gültigkeit prüfen


 
karibikjoe
11-08-2003, 09:14 
 
ok!

ich hab bisher eine html-datei mit den eingabefeldern und eine php-datei namens wp_project.php, die die übergebenen daten verarbeitet (db-eintrag).

nun soll dazwischen noch geprüft werden, ob ein feld auch einen gültigen wert hat. diese werte stehen in einer tabelle der db.

wenn ich nun eine neue php-seite zwischenschalte, klappt dann die übergabe der daten vom html-formular zur wp_project.php noch!?
ich denk nicht, oder?:(

weil dann müsste ich den neuen code mit in die wp_project.php einbauen!

ich bin mir nicht sicher wie der code den ich dazu brauche auszusehen hat!

wenn ich beispielsweise das feld mit dem namen "maschinennummer" auf gültigkeit überprüfen will, muss ich dann.:

-mysql_connect...
-dann den sql-befehl, der prüft ob es die nummer überhaupt gibt

wie lautet so ein befehl!?
(in der tabelle soll neben maschinenummer noch das feld maschinentyp auftauchen. der maschinentyp soll dann automatisch anhand der maschinennummer gesetzt werden)

- if maschinennummer ist richtig, führe bisherige wp_project.php aus,
- if maschinennummer ist falsch, go back to html-formular mit den bisherigen eingaben.


was haltet ihr von dieser Idee!?:confused: :dontknow:

mfg

karibikjoe

 
scriptingmike
11-08-2003, 10:46 
 
ich hoffe Du meinst das so???

Select maschinennummer, maschinentyp from Tabellexy where (maschinennummer=$Maschinennummervariable)

Das ganze in If - Else Packen dann müsste das passen

Viel Erfolg noch

 
karibikjoe
11-08-2003, 10:54 
 
ja, so meinte ich das!

nur was muss ich als bedingung in der if-else anweisung nehmen?

if(????*){
für folgenden code aus...
...}

else {
goback zu formular
}



????*: wie sag ich, dass er überprüfen soll, ob die eingegebene maschinennummer auf in der tabelle vorkommt?

die übergebene variable heisst maschinennr, und das feld in der db heisst auch maschinennr? gibts da einen konfilkt?

 
scriptingmike
11-08-2003, 11:02 
 
im zweifelsfall weise die maschnr einer anderen variablen zu.

 
scriptingmike
11-08-2003, 11:05 
 
Achso.....
als lösungsansatz

$abfrage=select......


if($abfrage==true)
{ANWEISUNG}
else
{ANWEISUNG}

 
karibikjoe
12-08-2003, 10:40 
 
hab das jetzt mal so gemacht:

in der tabelle maschinen sind die felder nr und typ.
die variable $maschinennr wird vom html-form übergeben.
stimmt das "if($maschinennr==true) so!?!? hab ich noch nie gesehn...!:rolleyes:

// Request info
$result = mysql_query(
"SELECT nr FROM maschinen WHERE nr = $maschinennr");
if (!$result) {
echo("<P>Error performing query: " .
mysql_error() . "</P>");
exit();
}

$maschine = mysql_fetch_array($result)
$nr=$maschine["nr"];


if($maschinennr==true)
{
echo "gültige maschinennr");
}
else
{
echo "ungültige maschinennr");
}


Gruß

karibikjoe

 
karibikjoe
12-08-2003, 10:41 
 
natürlich hab ich nicht

if($maschinennr==true),

sondern

if($select==true);

!!!

 
scriptingmike
12-08-2003, 10:43 
 
Hast es schon getestet???

was kommt dabei raus???

:huep:

 
karibikjoe
12-08-2003, 10:44 
 
ich erhalte keine Ausgabe!!

 
scriptingmike
12-08-2003, 10:48 
 
nicht mal ne fehlermeldung???

 
karibikjoe
12-08-2003, 10:49 
 
nee!

allerdings läuft das ding nicht mehr lokal, sondern schon auf einem web-server!

ich kopier es mal in mein htdocs...!

 
karibikjoe
12-08-2003, 10:52 
 
er meldet:

Parse error: parse error, unexpected T_VARIABLE in c:\programme\apache group\apache\htdocs\wp_project.php on line 32

das ist die zeile mit:

$nr=$maschine["nr"];

 
scriptingmike
12-08-2003, 11:03 
 
Mal zur Probe auskommentieren

 
karibikjoe
12-08-2003, 11:05 
 
dann kommt:

Parse error: parse error, unexpected T_IF in c:\programme\apache group\apache\htdocs\wp_project.php on line 35

das ist die zeile mit if($result==true)

 
scriptingmike
12-08-2003, 11:10 
 
Nachdem die erste Abfrag nach dem $result funktioniert,

Müsste es auch so gehen:


if(!$result)
{
echo "ungültige maschinennr");
}
else
{
echo "gültige maschinennr");
}

 
karibikjoe
12-08-2003, 11:21 
 
funktioniert auch nicht!

der fehler muss irgendwo bei $nr=$maschine["nr"]; liegen.
wenn ich danach ein echo $nr; mache, bekomm ich auch keine ausgabe!

lieft die variable $maschine["nr"] nicht vor??

 
scriptingmike
12-08-2003, 11:28 
 
Laut Deiner Abfrage

"SELECT nr FROM maschinen WHERE nr = $maschinennr")

frägst Du nur die Nummer ab.

 
karibikjoe
12-08-2003, 11:33 
 
aber ich brauch doch nur die nummer!??!

was prüft überhaupt das if(!$result)

wird da überprüft ob die select-anweisung $result einen wert zurückliefert oder nicht!? d. h. wenn die maschinennr. nicht in der tabelle maschinen vorhanden ist wird kein datensatz gefunden, false zurückgegeben und dann eben if - else!

stimmt das so!?

 
scriptingmike
12-08-2003, 11:39 
 
Das stimmt so!

 
karibikjoe
12-08-2003, 11:40 
 
aber warum funktioniert es nicht?!

:confused:

 
scriptingmike
12-08-2003, 11:43 
 
Ich kann das jetzt nur vermuten:

...weil Du die close anweisung zu früh gesetzt hast.
Ich weiss das die zu einer sauberen Prog gehört, ich lasse die aber gerne weg.

...weil eine variable nicht sauber übergeben wird

 
TobiaZ
12-08-2003, 11:45 
 
vielleicht hast du auch einfach nur ne klammer verpeilt... Ohne code kann man nur raten!

 
karibikjoe
12-08-2003, 11:47 
 
soll ich mal den ganzen code "offenlegen"? :D

 
scriptingmike
12-08-2003, 11:48 
 
Ich glaube TobiaZ hat recht


Gehört hinter die Zeile

$maschine = mysql_fetch_array($result)


nicht ein ";"

 
karibikjoe
12-08-2003, 11:49 
 
<html>
<head>
<title>Werner & Pfleiderer Lebensmitteltechnik GmbH</title>
</head>
<?php
include("config.php");


if ($Submit){

//mysql_connect("$host", "$user","$password"); //Verbindung aufbauen
$link = mysql_connect("$host", "$user", "$password");
if (!$link) die("Kann den Server nicht erreichen.");
if (!mysql_select_db("$db", $link))
{
echo"Kann die Datenbank nicht anwählen.";
}
else
{echo"";
}

// Request info
$result = mysql_query(
"SELECT nr FROM maschinen WHERE nr = $maschinennr");
if (!$result) {
echo("<P>Error performing query: " .
mysql_error() . "</P>");
exit();
}

$a = mysql_fetch_array($result)
$nr=$a["nr"];
echo $nr;
break;

if(!$result)
{
echo "es funktioniert");
}
else
{

$ticketnum = mysql_insert_id();

$sql="INSERT INTO `kummerkasten` (`id`, `anrede`, `name`, `email`, `kdnr`, `ordernr`, `maschinennr`, `range`, `comment`, `solution`, `attachment`, `attachmentlink`, `status`, `know`, `what`, `time`, `answertime`, `replyfrom`) VALUES ('', '$anrede', '$name', '$email', '$kdnr', '$ordernr', '$maschinennr', '$range', '$comment', '', '$attachment', '$attachmentlink', '0', '0', '0', NOW(), '','')";
mysql_db_query($db,$sql);
$id=mysql_insert_id();

$uploaddir = $_SERVER["DOCUMENT_ROOT"].'/upload/'.$id;
$attachment=$_FILES['userfile']['name'];
$attachmentlink="upload/".$_FILES['userfile']['name'];

if (count($_FILES['userfile']['name'])>0)
{
for($i=0;$i<count($_FILES['userfile']['name']);$i++)
{ if (empty($_FILES['userfile']['name'][$i])) {}
else {
$sql="INSERT INTO `upload` SET
displayname = '".$id.$_FILES['userfile']['name'][$i]."',
link='/upload/".$id.$_FILES['userfile']['name'][$i]."',
gruppe='".$id."'";
mysql_query($sql) or die(mysql_error());


if (move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploaddir . $_FILES['userfile']['name'][$i])) {

} else {

}
}
}
}
}
?>

<p align ="center"><img src="images/logo.gif"></p></align><br>

<?php

$msg="\tHallo $anrede $name!\n
\n\tVielen Dank für Ihre Nachricht.\n
\tDie zuständige Abteilung wird Ihre Nachricht so schnell
\twie möglich beantworten.\n
\n\t\tNachfolgend senden wir Ihnen die Details Ihrer Nachricht:\n
\n\t\t\tIhre Anrede: $anrede\n
\t\t\tIhr Name: $name\n
\t\t\tIhre Email-Adresse: $email\n
\t\t\tIhre Nachricht: $comment\n";

$msg_admin="\tHallo Administrator,\n
\n\tSoeben wurde eine Nachricht in die Datenbank eingetragen.\n
\n\tMit freundlichen Grüßen
\n\tIhr System";

mail("karibikjoe@gmx.de", "WP - Kummerkasten", $msg_admin);
mail($email, "Ihre Nachricht bezüglich $range", $msg);

echo '<table width="80%" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2"></font></td>
<td width="80%" height="20"><font face ="arial" size="2"><b>Vielen Dank für Ihre Nachricht.</b></font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2"></font></td>
<td width="80%" height="20"><font face ="arial" size="2"><b>Die an uns übertragenen Daten werden unten angezeigt.</b></font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2"></font></td>
<td width="80%" height="20"><font face ="arial" size="2"><b>Sie erhalten eine automatisch erstellte Email als Bestätigung.</b></font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2"></font></td>
<td width="80%" height="20"><font face ="arial" size="2"></font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihre Anrede:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$anrede.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihr Name:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$name.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihre Email-Adresse:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$email.'</font></td>
</tr><tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihre Kundennummer:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$kdnr.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right" valign ="top"><font face ="arial" size="2">Ihre Auftragsnummer:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$ordernr.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right" valign ="top"><font face ="arial" size="2">Ihre Maschinennummer:</font></td>
<td width="80%" height="20"><font face="arial" size="2">'.$maschinennr.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Produktkategorie:</font></td>
<td width="80%" height="20"><font face="arial" size="2">'.$range.'</font></td>
</tr>
</table>';
echo '<table width="80%" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihr Kommentar</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$comment.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"></td>
<td width="80%" height="20"></td>
</tr>
</table>';
}
?>
</html>

 
TobiaZ
12-08-2003, 11:59 
 
jupp, so wie das aussiehtz, ist da n ; zu wenig.

schreib bitte demnächst Zeilennummern, da sucht man sich ja tode.

 
scriptingmike
12-08-2003, 13:59 
 
wäre nett zu erfahren, ob das der Fehler war

 
TobiaZ
12-08-2003, 14:01 
 
also n Fehler wars auf jeden Fall... :D

 
scriptingmike
12-08-2003, 14:02 
 
Interessiert mich halt, ob es auch funktioniert.
Vielleicht war ja meine Hilfe auch mal richtig :rocks:

 
hansi
12-08-2003, 14:28 
 
:D

$msg_admin="\tHallo Administrator,\n
\n\tSoeben wurde eine Nachricht in die Datenbank eingetragen.\n
\n\tMit freundlichen Grüßen
\n\tIhr System";


LOL ... und da soll noch einer sagen, dass es keine kI gäbe!!

sorry, aber mir is heiß ...

 
karibikjoe
12-08-2003, 14:43 
 
Hi Leute!:)

...hatte gerade mittag!

ja, da hat das ";" gefehlt!

das skript läuft jetzt, allerdings bin ich noch auf der suche nach einem weiteren Fehler!

ich hab das jetzt ungefähr so stehen:

if(!$result)
{
echo "ungültige Maschinennummer";
}

else

{
.....db-eintrag, output usw!
}

ich hab mal testweise einen datensatz in meine tabelle "maschine" geschrieben.

wenn ich nun im html-form die "gültige" maschinennummer verwende, die auch in meiner tabelle steht, dann passt alles!

aber wenn ich im html-form eine maschinennummer eingebe, die nicht in meiner tabelle "maschine" steht, dann führt er trotzdem auch den else-block aus! ich denk dass ich da ne } falsch gesetzt habe...!

bin gerade kräftig am suchen!:dontknow:

 
scriptingmike
12-08-2003, 14:51 
 
Mir hilfts immer wenn ich die entsprechenden Stellen einrücke


if (bedingung)
{anweisung
}
else
{anweisung
}


Bei konsequenter Einhaltung über das ganze script verliert man nich so schnell den überblick da die klammern die zusammengehören immer in einer linie untereinander sind

 
karibikjoe
12-08-2003, 14:57 
 
stimmt, werd ich jetzt mal machen!

 
karibikjoe
12-08-2003, 15:32 
 
ich finde im normalen editor nicht!
mir fehlen da die farben...!


<html>
<head>
<title>Werner & Pfleiderer Lebensmitteltechnik GmbH</title>
</head>
<?php
include("config.php");


if ($Submit){

//mysql_connect "$host", "$user","$password"); //Verbindung aufbauen
$link = mysql_connect ("$host", "$user", "$password");
if (!$link) die("Kann den Server nicht erreichen.");
if (!mysql_select_db("$db", $link))
{
echo"Kann die Datenbank nicht anwählen.";
}
else
{
echo"";
}

//Request info
$result = mysql_query(
"SELECT nr, typ FROM maschinen WHERE nr = $maschinennr");
if (!$result) {
echo("<P>Error performing query: " .
mysql_error() . "</P>");
exit();
}

$maschine=mysql_fetch_array($result);
$nr=$maschine["nr"];
$typ=$maschine["typ"];
echo $nr;
echo $typ;

if(!$result)
{
echo "ungültige Maschinennr.";

}
else
{
$ticketnum = mysql_insert_id();

$sql="INSERT INTO `kummerkasten` (`id`, `anrede`, `name`, `email`,
`kdnr`, `ordernr`, `maschinennr`, `range`, `comment`, `solution`,
`attachment`, `attachmentlink`, `status`, `know`, `what`, `time`,
`answertime`, `replyfrom`) VALUES
('', '$anrede', '$name', '$email', '$kdnr', '$ordernr', '$maschinennr', '$typ',
'$comment', '', '$attachment', '$attachmentlink', '0', '0', '0', NOW(), '','')";
mysql_db_query($db,$sql);
$id=mysql_insert_id();

$uploaddir = $_SERVER["DOCUMENT_ROOT"].'/upload/'.$id;
$attachment=$_FILES['userfile']['name'];
$attachmentlink="upload/".$_FILES['userfile']['name'];

if (count($_FILES['userfile']['name'])>0)
{
for($i=0;$i<count($_FILES['userfile']['name']);$i++)
{ if (empty($_FILES['userfile']['name'][$i])) {}
else {
$sql="INSERT INTO `upload` SET
displayname = '".$id.$_FILES['userfile']['name'][$i]."',
link='/upload/".$id.$_FILES['userfile']['name'][$i]."',
gruppe='".$id."'";
mysql_query($sql) or die(mysql_error());


if (move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploaddir . $_FILES['userfile']['name'][$i]))

{
}
else {

}
}
}
}

?>

<p align ="center"><img src="images/logo.gif"></p></align><br>

<?php

$msg="\tHallo $anrede $name!\n
\n\tVielen Dank für Ihre Nachricht.\n
\tDie zuständige Abteilung wird Ihre Nachricht so schnell
\twie möglich beantworten.\n
\n\t\tNachfolgend senden wir Ihnen die Details Ihrer Nachricht:\n
\n\t\t\tIhre Anrede: $anrede\n
\t\t\tIhr Name: $name\n
\t\t\tIhre Email-Adresse: $email\n
\t\t\tIhre Nachricht: $comment\n";

$msg_admin="\tHallo Administrator,\n
\n\tSoeben wurde eine Nachricht in die Datenbank eingetragen.\n
\n\tMit freundlichen Grüßen
\n\tIhr System";

mail("karibikjoe@gmx.de", "WP - Kummerkasten", $msg_admin);
mail($email, "Ihre Nachricht bezüglich $range", $msg);

echo '<table width="80%" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2"></font></td>
<td width="80%" height="20"><font face ="arial" size="2"><b>Vielen Dank für Ihre Nachricht.</b></font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2"></font></td>
<td width="80%" height="20"><font face ="arial" size="2"><b>Die an uns übertragenen Daten werden unten angezeigt.</b></font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2"></font></td>
<td width="80%" height="20"><font face ="arial" size="2"><b>Sie
erhalten eine automatisch erstellte Email als Bestätigung.</b></font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2"></font></td>
<td width="80%" height="20"><font face ="arial" size="2"></font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihre Anrede:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$anrede.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihr Name:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$name.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihre Email-Adresse:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$email.'</font></td>
</tr><tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihre Kundennummer:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$kdnr.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right" valign ="top"><font face ="arial" size="2">Ihre Auftragsnummer:</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$ordernr.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right" valign ="top"><font face ="arial" size="2">Ihre Maschinennummer:</font></td>
<td width="80%" height="20"><font face="arial" size="2">'.$maschinennr.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Produktkategorie:</font></td>
<td width="80%" height="20"><font face="arial" size="2">'.$range.'</font></td>
</tr>
</table>';
echo '<table width="80%" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td width="20%" height="20" align ="right"><font face ="arial" size="2">Ihr Kommentar</font></td>
<td width="80%" height="20"><font face ="arial" size="2">'.$comment.'</font></td>
</tr>
<tr>
<td width="20%" height="20" align ="right"></td>
<td width="80%" height="20"></td>
</tr>
</table>';
}
}
?>
</html>

 
scriptingmike
12-08-2003, 15:37 
 
Der teil mit der Doppelklammer gefällt mir ned


if (count($_FILES['userfile']['name'])>0)
{
for($i=0;$i<count($_FILES['userfile']['name']);$i++)
{ if (empty($_FILES['userfile']['name'][$i])) {} //<<-- gehört das so
else {
$sql="INSERT INTO `upload` SET
displayname = '".$id.$_FILES['userfile']['name'][$i]."',

 
karibikjoe
12-08-2003, 15:56 
 
ohne die Klammer

{

}

läuft das skript aber überhaupt nicht!:(

ich versteh nicht warum er jedes mal in den else-block der if(!$result)-Anweisung springt wenn ich eine maschinennummer im html-form eingebe, die nicht in der tabelle steht!?

 
scriptingmike
12-08-2003, 15:58 
 
was aber macht {} direkt hintereinander für einen Sinn,
das widerrum versteh ich ned

 
karibikjoe
12-08-2003, 16:05 
 
das ist doch der block der ausgeführt werden soll wenn die if-bedingung true zurückliefert...!!

da in den klammern nichts steht, soll auch nichts ausgeführt werden wenn ein file-feld unausgefüllt ist...! (verhindert leeren db-eintrag)!

aber mal eine frage: stören kann doch so eine geöffnete und sofort wieder geschlossene klammer nicht, oder?!?

wenn ich sie entferne bringt er mir folgende fehlermeldung:


Parse error: parse error, unexpected T_ELSE in c:\programme\apache group\apache\htdocs\wp_project.php on line 59


das ist genau die darauffolgende else-anweisung.

Kannst du mir sagen warum er mir jedesmal den else-block ausführt, egal welche maschinennummer ich eingebe!??

 
TobiaZ
12-08-2003, 16:06 
 
du wirst die abfrage jawohl negieren können!

 
TBT
12-08-2003, 16:09 
 
also, PHPEdit rückt es so ein:


include("config.php");

if ($Submit){
// mysql_connect("$host", "$user","$password"); //Verbindung aufbauen
$link = mysql_connect("$host", "$user", "$password");
if (!$link) die("Kann den Server nicht erreichen.");
if (!mysql_select_db("$db", $link)){
echo"Kann die Datenbank nicht anwählen.";
}else{
echo"";
}
// Request info
$result = mysql_query(
"SELECT nr FROM maschinen WHERE nr = $maschinennr");
if (!$result){
echo("<P>Error performing query: " .
mysql_error() . "</P>");
exit();
}

$a = mysql_fetch_array($result)
$nr = $a["nr"];
echo $nr;
break;

if(!$result){
echo "es funktioniert");
}else{
$ticketnum = mysql_insert_id();
$sql = "INSERT INTO `kummerkasten` (`id`, `anrede`, `name`, `email`, `kdnr`, `ordernr`, `maschinennr`, `range`, `comment`, `solution`, `attachment`, `attachmentlink`, `status`, `know`, `what`, `time`, `answertime`, `replyfrom`) VALUES ('', '$anrede', '$name', '$email', '$kdnr', '$ordernr', '$maschinennr', '$range', '$comment', '', '$attachment', '$attachmentlink', '0', '0', '0', NOW(), '','')";
mysql_db_query($db, $sql);
$id = mysql_insert_id();
$uploaddir = $_SERVER["DOCUMENT_ROOT"] . '/upload/' . $id;
$attachment = $_FILES['userfile']['name'];
$attachmentlink = "upload/" . $_FILES['userfile']['name'];
if (count($_FILES['userfile']['name']) > 0){
for($i = 0;
$i < count($_FILES['userfile']['name']);
$i++){
if (empty($_FILES['userfile']['name'][$i])){
}else{
$sql = "INSERT INTO `upload` SET
displayname = '" . $id . $_FILES['userfile']['name'][$i] . "',
link='/upload/" . $id . $_FILES['userfile']['name'][$i] . "',
gruppe='" . $id . "'";
mysql_query($sql) or die(mysql_error());

if (move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploaddir . $_FILES['userfile']['name'][$i])){
}else{
}
}
}
}
}


womit bei
$a = mysql_fetch_array($result)ein Semikolon fehlt
echo "es funktioniert");eine Klammer zu viel ist,

 
TBT
12-08-2003, 16:11 
 
Bei dieser SQL-Anweisung wirf doch bitte noch ein Blick ins Handbuch
$sql = "INSERT INTO `upload` SET
displayname = '" . $id . $_FILES['userfile']['name'][$i] . "',
link='/upload/" . $id . $_FILES['userfile']['name'][$i] . "',
gruppe='" . $id . "'";

 
karibikjoe
12-08-2003, 16:12 
 
Hi TBT!

verwende doch bitte mal den von mir zuletzt geposteten code!

den du verwendet hast habe ich schon geändert/verbessert!

 
scriptingmike
12-08-2003, 16:13 
 
Ich bin der Meinung hier fehlt eine Klammer


if ($Submit)
{//mysql_connect "$host", "$user","$password"); //Verbindung aufbauen
$link = mysql_connect ("$host", "$user", "$password");
if (!$link) die("Kann den Server nicht erreichen.");
if (!mysql_select_db("$db", $link))
{echo"Kann die Datenbank nicht anwählen.";
}
else
{ echo"";
}
//hier sollte eine Klammer sein

 
karibikjoe
12-08-2003, 16:16 
 
was meinst du mit dieser sql-anweisung!?

sie funktioniert einwandfrei!?

 
TBT
12-08-2003, 16:19 
 
Original geschrieben von karibikjoe
was meinst du mit dieser sql-anweisung!?

sie funktioniert einwandfrei!?

wzbw. ( was zu beweisen wäre :D )

lass sie dir mal ausgeben, und füttere den phpmyadmin damit

 
karibikjoe
12-08-2003, 16:20 
 
ich habs doch gerade testet! es funktioniert!!
er schreibt alles wunderbar in die DB!

versteh jetzt nicht ganz wo der fehler liegen soll!?

 
TBT
12-08-2003, 16:24 
 
weil ein Insert so aussieht:

INSERT INTO table (a,b,c) VALUES (1,2,3)

nix mit "SET abc=123", das ist ein Update

 
karibikjoe
12-08-2003, 16:31 
 
na gut, das stimmt!

bei insert verwendet man normal VALUES,

aber es funktioniert wirklich mit SET auch??!? *verwundertdreinschau*

aber wieso klappt meine if(!$result)-anweisung nicht!?

ich hab jetzt schon x-mal den code durchgesehen, und mir fällt kein fehler auf!!

*verzweifel*

 
scriptingmike
12-08-2003, 16:37 
 
Habe mal etwas Ordnung geschaffen


<?php
include("config.php");
if ($Submit)
{//mysql_connect "$host", "$user","$password"); //Verbindung aufbauen
$link = mysql_connect ("$host", "$user", "$password");
if (!$link) die("Kann den Server nicht erreichen.");
if (!mysql_select_db("$db", $link))
{echo"Kann die Datenbank nicht anwählen.";
}
else
{ echo"";
}
}//<<--diese Klammer fehlte
//Request info
$result = mysql_query(
"SELECT nr, typ FROM maschinen WHERE nr = $maschinennr");
if (!$result)
{echo("<P>Error performing query: " .
mysql_error() . "</P>");
exit();
}

$maschine=mysql_fetch_array($result);
$nr=$maschine["nr"];
$typ=$maschine["typ"];
echo $nr;
echo $typ;
if(!$result)
{echo "ungültige Maschinennr.";
}
else
{$ticketnum = mysql_insert_id();
$sql="INSERT INTO `kummerkasten` (`id`, `anrede`, `name`, `email`, `kdnr`, `ordernr`, `maschinennr`, `range`, `comment`, `solution`, `attachment`, `attachmentlink`, `status`, `know`, `what`, `time`, answertime`, `replyfrom`) VALUES ('', '$anrede', '$name', '$email', '$kdnr', '$ordernr', '$maschinennr', '$typ', '$comment', '', '$attachment', '$attachmentlink', '0', '0', '0', NOW(), '','')";
mysql_db_query($db,$sql);
$id=mysql_insert_id();
$uploaddir = $_SERVER["DOCUMENT_ROOT"].'/upload/'.$id;
$attachment=$_FILES['userfile']['name'];
$attachmentlink="upload/".$_FILES['userfile']['name'];

if (count($_FILES['userfile']['name'])>0)
{for($i=0;$i<count($_FILES['userfile']['name']);$i++)
{if (empty($_FILES['userfile']['name'][$i]))
{
}
else
{$sql="INSERT INTO `upload` SET displayname = '".$id.$_FILES['userfile']['name'][$i]."', link='/upload/".$id.$_FILES['userfile']['name'][$i]."', gruppe='".$id."'";
mysql_query($sql) or die(mysql_error());
if (move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploaddir . $_FILES['userfile']['name'][$i]))
{
}
else
{
}
}
}
}

?>

 
TBT
12-08-2003, 16:39 
 
Original geschrieben von karibikjoe
na gut, das stimmt!

bei insert verwendet man normal VALUES,

aber es funktioniert wirklich mit SET auch??!? *verwundertdreinschau*

aber wieso klappt meine if(!$result)-anweisung nicht!?

ich hab jetzt schon x-mal den code durchgesehen, und mir fällt kein fehler auf!!

*verzweifel*

steht auch im Handbuch
Ein Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war und vom Server ausgeführt werden konnte. Das alleine sagt jedoch überhaupt nichts über die Anzahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich war, ohne einen einzigen Datensatz zur verändern oder zu liefern.

du mußt noch abfragen, on denn auch Zeilen zurückgeliefert wurden!

 
TBT
12-08-2003, 16:41 
 
@scriptingmike:

sorry, aber da fehlte keine Klammer !

schau mal ganz unten im Script, da stehen die restlichen


mann darf zwischen { und } auch ein

?> html-code <?php

schreiben

 
karibikjoe
12-08-2003, 17:24 
 
wie soll ich denn abfragen ob zeilen zurückgeliefert werden?

ich dacht wenn durch $result ein datensatz ausgewählt wurde liefert die if(!$result)-anweisung false zurück und somit wird das ausgeführt, was im else-block steht!?

falls kein Datensatz gefunden wird wird true zurückgegeben und der if-block abgearbeitet!

oder hab ich da einen denkfehler!?

 
TBT
12-08-2003, 18:13 
 
falsch, $result ist true,
solange die SQL-Anweisung syntaktisch richtig ist.

 
TobiaZ
12-08-2003, 19:35 
 
nimmst du num_rows

 
karibikjoe
13-08-2003, 09:38 
 
hab jetzt mal $num_rows eingebaut!

muss ich dann statt

if(!$result)

folgendes schreiben?!

if($num_rows<1)
{
echo "ungültige Maschinennummer";
}
else
{
....db-eintrag etc...!
}

 
karibikjoe
13-08-2003, 09:45 
 
ich glaub das mit den num_rows war keine schlechte Idee!:D :D

soweit klappt es jetzt auch!

will jetzt nur noch im if-block angeben (also wenn die maschinennummer ungültig ist), dass wieder das html-form mit den bisherigen inhalten und dem hinweise "ungültige maschinennummer" ausgegeben wird!

habt ihr eine idee

 
TobiaZ
13-08-2003, 11:35 
 
Suche, aber wonach? :D

Ich verrates dir ausnahmsweise:

<input type=feldtype name=name value=$_POST['name']>

 
karibikjoe
13-08-2003, 12:10 
 
du wirst es nicht glauben, aber ich habs selbst rausgefunden!!;) *stolzbin*

aber nun hab ich folgendes problem:

wenn ich in ein textfeld zwei wörter eingebe, wird jedoch nur immer das erste Wort in der variablen $_POST['name'] angezeigt.

woran liegt das?

und wie schaff ich es bei aufklappmenüs, dass beim "neuen" formular der vorher gewählt wert ausgewählt ist, und das klappmenü trotzdem weiter existiert.!?!?

sieht so aus:

<select name="anrede">
<option value ="Herr">Herr</option>
<option value ="Frau">Frau</option>
<option value="Firma">Firma</option>
<select>

wenn ich dann sag

<input type="..." name='.$_POST['anrede']

ist das auswahlfeld weg...!?!?!?

 
TobiaZ
13-08-2003, 12:15 
 
testfeld: wie sieht das value aus?

select: if-abfrage

 
karibikjoe
13-08-2003, 12:22 
 
das textfeld sieht folgendermaßen aus:


<tr>
<td width="30%">
<div align="right"><font face="Arial" size="2">Ihr Name*:</font></div>
</td>
<td width="70%">
<div align="left">
<input type="text" name="name" size="46" maxlength="46">
</div>
</td>
</tr>



was meinst du mit select:if-abfrage!?!??

 
TobiaZ
13-08-2003, 19:50 
 
select: if(ausgewählt) echo "selected";

text: wenn da kein value ist, wird da wohö laum was drinstehen!

 
karibikjoe
14-08-2003, 10:36 
 
jawoll, das mit dem auswahlfeld hab ich hinbekommen!

nun zu dem textfeld!

das textfeld sieht so aus:


<tr>
<td width="30%">
<div align="right"><font face="Arial" size="2">Ihr Name*:</font></div>
</td>
<td width="70%">
<div align="left">
<input type="text" name="name" size="46" maxlength="46" value='.$name.'>
</div>
</td>
</tr>


wenn ich jetzt beispielsweise im html-formular im textfeld "name" 'Hans Meyer' reinschreibe und eine "falsche" maschinennummer eingebe, damit das formular mit "ungültige maschinennummer" erscheint, dann hab ich im feld "name" (siehe code oben) nur 'Hans' stehen, das 'Meyer' lässt er weg...!?!?

Wie komm ich eigentlich wieder an die inhalte von den file-feldern!?

 
TobiaZ
14-08-2003, 12:59 
 
du musst auch ein vollständiges value nutzen, habe ich gesagt :D alöso nichts wie ran da die " " (value="bla") verstehst?

file ist weg!

 
karibikjoe
14-08-2003, 14:10 
 
na wer sagts denn!:huep:

sag mal, ich will mit einer if-anweisung prüfen, ob in einem text-feld des html-formulars überhaupt was eingetragen wurde und demnach sagen was weiter passieren woll (if-else):

hab mal so geschrieben!

if(isset($maschinennr)){

mach das...
}

else {

mach das....!

}

er bringt mir immer:

Error performing query: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


liegt das an dem isset oder is da sonst irgendein fehler aufgetreten!

hab eigentlich nur die if-anweisung reingeschrieben, und den if - und else - block mit geschweiften klammern markiert...!? :dontknow:

 
karibikjoe
14-08-2003, 14:21 
 
mir scheint fast als wäre

if(isset($maschinennr))

die falsche bedingung!

welche bedingung muss ich für o. g. zweck verwenden!?

 
TobiaZ
14-08-2003, 18:04 
 
also n fehler in dem Query ist wohl nicht auf ein isset zurückzuführen!

 
karibikjoe
15-08-2003, 08:42 
 
da der if-block von isset jedesmal durchlaufen wird erscheint meiner meinung nach auch die fehlermeldung!?

den bei der select-abfrage wird ja '...where nr = $maschinennr' abgefragt.
wenn jedoch im textfeld maschinennummer nichts eingetragen wird "kennt" er die variable auch nicht!?!?

 
karibikjoe
15-08-2003, 09:34 
 
ich denke dass ich mit if(isset) den falschen ausdruch gewählt habe, da die variable $maschinennummer auch vorliegt wenn nichts eingetragen ist, dann ist sie eben leer bzw. 0! :teach:

ich hab jetzt if(empty) verwendet und es funzt wunderbar!!:):huep:


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:56 Uhr.