fehler
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angeben
beitrag
bestimmten einstellungen
bild
count
datei
daten
deswegen
error
erste
fehler
formularfeld
insert
kann
kurzer sinn
langer rede
result
spalt
spalten
variable
-
Ich find im folgenden Script keinen fehler, allerdings speichert er es trotzdem nicht in die mysql datei hinein
1. Seite
echo "<form method=post action=bildererer.php>"; echo "<input type=hidden value="; echo $gall; echo ">"; while($count < 11) { echo "<input type=text name="; echo $count,", "; echo ">"; $count++; } echo "<input type=submit>";
2. Seite
//connect $_POST["gall"] = $gall; while($count < 11) { echo $_post[$count]; $a = "INSERT INTO `$gall` ( `Bild` ) VALUES ( '$_post[$count]' )"; $b = mysql_query($a); $count++; }
er gibt auch keine fehler meldung aus...
oder ghet die idee das man die post datei mit einer Variabel bennent nicht? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich find im folgenden Script keinen fehler, allerdings speichert er es trotzdem nicht in die mysql datei hinein
1. Seite
echo "<form method=post action=bildererer.php>"; echo "<input type=hidden value="; echo $gall; echo ">"; while($count < 11) { echo "<input type=text name="; echo $count,", "; echo ">"; $count++; } echo "<input type=submit>";
2. Seite
//connect $_POST["gall"] = $gall; while($count < 11) { echo $_post[$count]; $a = "INSERT INTO `$gall` ( `Bild` ) VALUES ( '$_post[$count]' )"; $b = mysql_query($a); $count++; }
Guck' mal was mysql_error() (http://de2.php.net/mysql_error) und error_reporting() (http://de2.php.net/error_reporting) ausgibt.
Vielleicht kommste ja dann so schneller an den Fehler.
-
aufhin gibt er mir
1103: Incorrect table name ''
aus, was meiner meinung nach hei?t, dass die tabelle nicht exestiert, diese, die ?bergeben wurde, exestiert aber. also m?sste da ein anderer fehler sein, den ich jetzt net w?ste... -
aufhin gibt er mir
1103: Incorrect table name ''
aus, was meiner meinung nach hei?t, dass die tabelle nicht exestiert, diese, die ?bergeben wurde, exestiert aber. also m?sste da ein anderer fehler sein, den ich jetzt net w?ste...
Ich bin mir sicher die Tabelle existiert nicht, guck mal nach ob du eine Tabelle namens $gall hast.
Damit meine ich wirklich eine Tabelle, die $gall hei?t. Wenn du mich fragst solltest du mal nach Verkettungsoperatoren gucken, weil INSERT INTO `$gall`... ist eindeutig falsch... Der sucht dann eine Tabelle namens $gall.
http://tut.php-q.net/verkettungsoperator.html -
also ich habe das auch scho mal so geacht h?chstens ohne die `` und in den anderen Script funkt das ohne die "Verbindungspunkte".
also gehe ich mal davon aus, dass da noch ein fehler drin ist!? -
Das hat nix mit den '' zu tun.
Er sucht nach einer Tabelle mit dem Namen '$gall'.
Guck mal in deiner MySQL-DB nach, ob eine Tabelle $gall existiert. Wenn dort eine Tabelle gall existiert, nimmst du im Script an der Stelle einfach das $ weg.
Ist das Script von dir?
Kann man es irgendwo auch online sehen? W?rde mehr helfen als nur Quelltextausschnitte...
MfG
tt-freak -
Euch ist schon klar, dass in Strings, die mit doppelten Anf?hrungszeichen markiert sind Variablen von dem Parser ausgewertet werden?
@mclam
Ist dir ?berhaupt bewusst, dass dein Formular a) nicht valide ist und b) nicht wirklich viel Daten per POST sendet, da du dem einen Input-Feld keinen Namen gegeben hast.
Au?erdem:
$_POST["gall"] = $gall;
Die Post-Vairable existiert bis dahin noch garnicht, da du ja dem Inputfeld keinen namen gegeben hast und wenn, dann w?re die Zuweisung auch komplett falschrum, da du ja $gall den Wert aus $_POST['gall'] zuweisen m?sstest. Somit steht in $gall ja auch nichts drin.
@all
Nochmal: Variablen in doppelten Anf?hrungszeichen werden mit ausgewertet und deswegen werden solche Strings von PHP auch langsamer geparst. Man sollte normale Strings, in die man keine Variablen schreibt also nur in einfache Anf?hrungszeichen machen, da PHP das schneller verarbeitet.
Aber mal im Ernst. Willst du nicht erst HTML lernen, bevor du PHP lernst...?
-
Die Post Variabel ist doch egal wie rum man die zuweist. Ich weiss die sonst auch immer andersrum zu aber da ist es kein prob.
Das mit den namen ist nat?rlich in fehler von mir aber auch damit funkt es nicht.
Meinst du mit HTML mich? HTML kann ich und PHP habe ich auch scho einigs gemacht, weiss auch nicht warum er jetzt so mackt...
@tt-freak nat?rlich habe ich das selbst geschrieben und nein es gibts nicht im inet und viel mehr steht im quelltext auch nicht.
aber der spacke hilft wenigstens ein wenig weiter :D -
Jetzt zeige ich dir mal, wie ich das machen w?rde. Da ich mich mit MySQL nur wenig auskenne, da ich es so gut wie nie benutzte bin ich mir bei dem Qeury nicht sicher, aber alles andere sollte so funktionieren und auch wenigstens "richtiges" HTML sein.
<?php $string = ' <form method="post" action="bildererer.php"> <input type="hidden" value="%s" />'; printf($string, $gall); while($count < 11){ $string = ' <input type="text" name="%d" />'; printf ($string,$count); $count++; } print ' <input type="submit" />'; ?>
2. Seite
<?php //connect $gall = $_POST['gall']; while($count < 11){ print $_post[$count]; $sql = "INSERT INTO $gall (Bild) VALUES ($_post[$count])"; $result = mysql_query($a); $count++; } ?>
Das du bisher das mit der Variable so machen konntest liegt an den Globals. Man kan bei bestimmten Einstellungen auf Post-Variablen auch einfach ?ber den normalen namen zugreifen. Das wusste ich bis vor kurzem auch noch nicht, da ich es schon seit jeher richtig gemacht habe. So wie du es machst ist ein bisschen gef?hrlich (Stichwort: XSS).
Was steht in der erstens Seite eigentlich in $gall drin? Weil das Formularfeld und somit auch die Post-Variable hei?t ja nicht gall, sonder so wie es in $gall steht. -
$gall ist eine Variabel, die schon von vorher ?bergeben worden ist und bezeichnet die Tabelle, wo die Daten drin geschpeichert wurden.
Edit seh grad n fehler von dir...
m?sste wenn so hei?en, da die Variabel $sql ja ausgef?hrt werden muss und nicht a, aber ich kanns mal ausprobieren :
$sql = "INSERT INTO $gall (Bild) VALUES ($_post[$count])"; $result = mysql_query($sql);
EDIT2: nein, das Funktioniert auch nicht. Der f?hrt die Daten nicht ein...
Beitrag ge?ndert am 20.08.2006 11:46 von mclman
Beitrag ge?ndert am 20.08.2006 12:04 von mclman -
Wuah, ich habe ja auch eigentlich das vergessen, was das gravierenste ist.^^ Das mit dem $sql stimmt. Ich hatte vergessen, das bei dem Script umzu?ndern.
Das Problem ist ja meiner Meinung nach (s. erster Post von mir) das versteckte Inputfeld gewesen. Es hat ja keinen Namen und deswegen wurde ja auch an $_POST['gall'] nichts ?bergeben, da es kein Feld mit dem Namen "gall" gab. Somit war dann auch $gall leer und deswegen kam auch 1103: Incorrect table name ''. Die Anf?hrungszeichen sind deswegen leer, da die Variable leer ist. Langer Rede kurzer Sinn, das alles hatte ich schon im ersten Post gesagt.^^
Mit dem Code m?sste es gehen.
<?php $string = ' <form method="post" action="bildererer.php"> <input type="hidden" name="gall" value="%s" />'; printf($string, $gall); while($count < 11){ $string = ' <input type="text" name="%d" />'; printf ($string,$count); $count++; } print ' <input type="submit" />'; ?>
2. Seite
<?php //connect $gall = $_POST['gall']; while($count < 11){ print $_post[$count]; $sql = "INSERT INTO $gall (Bild) VALUES ($_post[$count])"; $result = mysql_query($sql); $count++; } ?>
-
kann doch nicht sein der f?hrt die Datei nicht ein...
hab noch mal die error angaben eingef?hrt, nun sagt er an:1136: Column count doesn't match value count at row 1
-
ja Bild exestiert...
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage