[GastForen Programmierung/Entwicklung PHP und MySQL INSERT - Problem unter PHP

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

INSERT - Problem unter PHP

jobst1111
Beiträge gesamt: 5

7. Sep 2002, 15:38
Beitrag # 1 von 8
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo ! ;-)


Ich habe hier ein kleines Problem. Ich bin mit PHP und MySQL noch ganz neu. ... Sicher ist das hier nur ein sehr kleines Problem .
Vielleicht kann mir ja jemand helfen.

Es handelt sich um ein einfaches in PHP geschriebenes Gästebuch.
Die Daten werden auf 'sign.php' eingegeben :


<?php include ("dbconnect.php"); ?>
<h2>Signieren Sie mein Gästebuch !!!</h2>
<form method=post action="create_entry.php">
<b>Name:</b>
<input type=text size=40 name=name>
<br>
<b>Ort:</b>
<input type=text size=40 name=ort>
<br>
<b>E-Mail:</b>
<input type=text size=40 name=email>
<br>
<b>URL:</b>
<input type=text size=40 name=url>
<br>
<b>Kommentar:</b>
<textarea name=kommentar cols=40 rows=4 wrap=virtual></textarea>
<br>
<input type=submit name=submit value="submit">
<input type=reset name=reset value="Löschen">
</form>


Es sollte dann 'create_entry.php' die Daten in MySQL einfügen :


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

if ($submit == "submit")
{
$query = "insert into gaestebuch "
." (name,ort,email,url,kommentar) values "
."('$name', '$ort', '$email', '$url', '$kommentar')"
;
//mysql_query($query);
safe_query($query);
echo mysql_error();
?>
<h2>Danke!!</h2>
<h2><a href="view.php">Sehen Sie mein Gästebuch an!!!</a></h2>
<?php
}
else
{
echo mysql_error();
include("sign.php");
}
?>


Das Problem ist, daß sich einfach keine Daten in die Datenbank einfügen lassen.
Dagegen funktioniert die Ausgabe mittels z.B.:"select * from ..." anstandslos.Nur funktioniert die "insert"-anweisung nicht, es werden keine Daten in die Datenbank eingefügt.
Es könnte sich nun um einen Fehler im PHP-Script handeln, ich vermute mittlerweile aber eher, daß es sich hier um das altbekannte Problem der Benutzerrechte handelt ....Benutze ich die Datenbank "test" samt tabellen tut sich nichts und es gibt auch keine Fehlermeldungen.
Nun habe ich mich unter
mysql_connect("localhost", "jobst@localhost" , "")- als jobst@localhost (ohne Passwort) versucht einzuloggen. MySQL habe ich die Anweisung "grant all on *.* to jobst@localhost" gegeben. Auf jeden Fall müßte ich nun doch als jobst@localhost auch auf andere Datenbanken als die "test"-Datenbank Zugriff haben ?

Versuche ich nun das PHP-Script für die Datenbank 'gaestebuch' auzuführen, erhalte ich die Fehlermeldung :
"Access denied for user: '@localhost' to database 'gaestebuch'"
(weshalb erhalte ich die Fehlermeldung für @localhost und nicht für jobst@localhost ?).
Hat hier jemand eine Ahnung wie oder wo ich etwas verändern muß um von meinem PHP-Script aus in die Datenbank schreiben zu können ?

Vielen Dank im Voraus für Eure Hilfe,

Grüße, Jobst ;-)
X

INSERT - Problem unter PHP

Miro Dietiker
Beiträge gesamt: 699

8. Sep 2002, 00:30
Beitrag # 2 von 8
Beitrag ID: #10891
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Schon mal nachgeschaut, ob die Dateien der Datenbank fälschlicherweise das Attribut "W" (Schreiben) deaktiviert haben??
(Im Explorer nachschauen...)

http://www.hilfdirselbst.ch/...15&topic_id=2032

GR: MDi


als Antwort auf: [#10881]

INSERT - Problem unter PHP

Anonym
Beiträge gesamt: 22827

8. Sep 2002, 08:35
Beitrag # 3 von 8
Beitrag ID: #10895
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo und besten Dank für die Antwort ! ;-)

Was genau meinst Du mit 'im Explorer nachschauen' ?
Meinst Du den Browser ? Also wenn Du das meinst, - ich arbeite unter Linux.
Die Idee klingt sehr gut mit den deaktivierten Schreibrechten. Das Problem habe ich aber nur vom PHP-Script aus ...
Von der Konsole kann ich mittels 'Insert' Daten in die Datenbank eingeben.
Kannst Du mit genauer sagen welche Datei es wäre die ich auf ihre Schreibrechte zu untersuchen hätte ?

Grüße, Jobst ;-)


als Antwort auf: [#10881]

INSERT - Problem unter PHP

Miro Dietiker
Beiträge gesamt: 699

9. Sep 2002, 00:38
Beitrag # 4 von 8
Beitrag ID: #10916
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Der Link nicht einfachso, sondern da wurde das Thema "read only"
bereits kurz und bündig besprochen (incl. Pfad zu den Files!) .)

In Deinem Falle aber wird dies sicher nicht das Problem sein und
ich frage mich sehr was es wohl sein könnte, denn deine Beschreibung
kommt mir wirklich seltsam vor - Sorry

Bleib dran! Miro


als Antwort auf: [#10881]

INSERT - Problem unter PHP

Anonym
Beiträge gesamt: 22827

9. Sep 2002, 08:43
Beitrag # 5 von 8
Beitrag ID: #10921
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Miro !

Ich denke langsam komme ich der Lösung des Problems näher ... ;-)

Ich habe wieder ein paar Sachen zur Problemlösung probiert.
Für den Benutzername habe ich 'root' und auch 'jobst' probiert. Beides wurde angenommen. Aber ohne Erfolg.
Dann habe ich die Variablen-Kennzeichnung
$_POST['$name'] = $name; umgedreht zu
$name = $_POST['$name'];
Auch das wird angenommen, aber ohne Erfolg.

Die Fehlermeldung habe ich eingefügt. Es werden aber keine Fehler beim Ausführen angezeigt.
Dabei kam mir Idee innerhalb der SQL-Anfrage einfach mal imaginäre Sachen reinzuschreiben - wie es dann so mit den Fehlermeldungen aussieht ........
Und siehe da :
Ich kann den größten Unsin
n reinschreiben und es gibt keine Fehlermeldungen !!!!!!!!!!!!!!!!!!!!!
Eigenartig dabei ist daß dies nur bei 'create_entry.php' so der Fall ist. Beim funktionierenden Script 'view.php! (siehe weiter unten) zum Anzeigen des Tabellen-Inhalts kann ich keine Fehler einbauen. Dort werden sie sofort erkannt .....

O.k., wie gesagt, den Inhalt einer Tabelle kann ich mir anzeigen lassen. Dieses Script funktioniert dabei ohne Probleme :

'view.php' :

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

<h2>Gästebuch!!</h2>

<?php

$result = mysql_query("select * from gaestebuch") or die ("Fehler");
if ($result)
{
while ($row = mysql_fetch_array($result))
{
print "<b>Name:</b>";
print $row["name"];
print "<br>\n";
print "<b>Ort:</b>";
print $row["ort"];
print "<br>\n";
print "<b>E-Mail:</b>";
print $row["email"];
print "<br>\n";
print "<b>URL:</b>";
print $row["url"];
print "<br>\n";
print "<b>Kommentar:</b>";
print $row["kommentar"];
print "<br>\n";
print "<br>\n";
print "<br>\n";
}
mysql_free_result($result);
}
?>
<h2><a href="sign.php">Signieren Sie mein Gästebuch!!</a></h2>

Das Problem liegt dann wohl eher irgendwo hier in diesen beiden Scripten über die die Daten per 'INSERT' in die Datenbank eingefügt werden sollen :


'sign.php' :


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

<h2>Signieren Sie mein Gästebuch !!!</h2>

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

<b>Name:</b>
<input type=text size=40 name=name>
<br>
<b>Ort:</b>
<input type=text size=40 name=ort>
<br>
<b>E-Mail:</b>
<input type=text size=40 name=email>
<br>
<b>URL:</b>
<input type=text size=40 name=url>
<br>
<b>Kommentar:</b>
<textarea name=kommentar cols=40 rows=4 wrap=virtual></textarea>
<br>

<input type=submit name=submit value="Signieren!">
<input type=reset name=reset value="Löschen">
</form>



und 'create_entry.php' :



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

if ($submit == "submit")
{

$name = $_POST['name'];
$ort = $_POST['ort'];
$email = $_POST['email'];
$kommentar = $_POST['kommentar'];


$query = "insert into gaestebuch "
." (name,ort,email,url,kommentar) values "
."('$name', '$ort', '$email', '$url', '$kommentar')"
;
mysql_query($query)
or print "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";
?>
<h2>Danke!!</h2>
<h2><a href="view.php">Sehen Sie mein Gästebuch an!!!</a></h2>
<?php
}
else
{
include("sign.php");
}
?>


So, also daß keine Fehlermeldungen angezeigt werden, gibt ja vielleicht noch einen Hoffnungsschimmer ;-)


Erst mal bis dann,

Grüße, Jobst ;-) ;-) ;-)



als Antwort auf: [#10881]

INSERT - Problem unter PHP

jobst1111
Beiträge gesamt: 5

11. Sep 2002, 15:56
Beitrag # 6 von 8
Beitrag ID: #11102
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute ! ;-)

Ich habe die Lösung gefunden !
Ich bin sowas von erleichtert, es ist aber auch ganz schön peinlich,
wie man sowas übersehen kann ..........................
Aber ohne Euch hätte ich keine Chance gehabt .........


Ich hatte die Variablen-Kennzeichnung erst vor kurzer Zeit auf $_POST geändert,
nachdem ich erfuhr daß dies mit PHP >= 4.2 nötig wäre.
Der einzige Fehler den ich jetzt nur noch gemacht habe war für den
Button nicht "Signieren!" sondern "submit" anzugeben.
Ich kann jetzt mit INSERT Daten in die Datenbank einfügen !
Die Änderung sieht jetzt so aus und die ganze Sache läuft wie Zucker ;-) .



if ($_POST[submit] == "Signieren!")
{

$name = $_POST['name'];
$ort = $_POST['ort'];
$email = $_POST['email'];
$url = $_POST['url'];
$kommentar = $_POST['kommentar'];


Auf jeden Fall VIELEN DANK für die Hilfe und Eure Bemühungen !!!


Grüße, Jobst ;-) ;-) ;-)


als Antwort auf: [#10881]

INSERT - Problem unter PHP

Miro Dietiker
Beiträge gesamt: 699

11. Sep 2002, 18:57
Beitrag # 7 von 8
Beitrag ID: #11123
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Da können wir ja bereits schon fast sagen, dass die ganze Diskussion
für die Katz war wenns denn ein solcher fehler war ;)

Auf mehr Erfolg punkto so blöden Fehlerchen, ich kenn das nur zu gut,
wie lästig die sind. Mein persönlicher Tipp für harte Fälle:
Bereits diverse male musste ich jede 2. Zeile mit einem echo oder
print füllen um zu überprüfen, ob ein Script auch wirklich das macht
was ich mir vorgestellt habe. Und bei diesen Prints da muss man auch
nicht sparen denn rausgelöscht sind sie schnell und sie bringen alles
zutage ,)

Viel Spass!
GR: MDi


als Antwort auf: [#10881]

INSERT - Problem unter PHP

Anonym
Beiträge gesamt: 22827

15. Sep 2002, 01:35
Beitrag # 8 von 8
Beitrag ID: #11412
Bewertung:
(1759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Miro !

Das ist eine sehr gute Idee mit den 'Prints' und den 'Echos'. Werd ich mir merken und sicherlich noch häufig anwenden ;-)

Besten Dank auf jeden Fall nochmals !

Grüße, Jobst ;-)


als Antwort auf: [#10881]
Hier Klicken X
Hier Klicken

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
26.09.2018

Hochschuloe der Medien, Stuttgart
Mittwoch, 26. Sept. 2018, 19.00 - 21.00 Uhr

Vertrag

Nur auf den ersten Blick scheint dieses Thema exotisch. Aber eine neue EU-Richtlinie und deren Auswirkungen auf deutsche Gesetze werden dieses Thema auch für Publisher interessant machen. Die EU-Richtlinie "2102 zu Barrierefreiheit" besagt folgendes: Ab dem 23. September 2018 müssen alle öffentlichen Stellen ihre neuen (Office- oder PDF-) Dokumente grundsätzlich barrierefrei veröffentlichen. Im Juni wurde der Gesetzentwurf zur Umsetzung dieser Richtlinie im deutschen Bundestag vom "Ausschuss für Arbeit und Soziales" (19/2728) angenommen. Es wird also ernst für "öffentliche Stellen" und damit auch für deren Dienstleister, die mit der Umsetzung beauftragt werden. Die Richtlinie gilt nämlich nicht nur für Bundes- und Landesbehörden, sondern auch für Verbände, die im Allgemeininteresse liegende Aufgaben erfüllen. Das wären somit auch Gerichte, Polizeistellen, Krankenhäuser, Universitäten, Bibliotheken und einige mehr. Weitere Informationen findest Du hier, hier und hier. Wenn also oben genannte Auftraggeber zu Deinen Kunden zählen, solltest Du Dich vorbereiten. Und da es neben Websites auch um alle downloadbaren Dateien geht sind eben auch PDFs zukünftig barrierefrei zu erstellen. Arbeitet man in InDesign, können dort einige Vorbereitungen getroffen werden. Klaas Posselt ist der ausgewiesene Spezialist im deutschsprachigen Raum für alle Fragen rund um das Thema. Deshalb freuen wir uns, dass er uns in einem Vortrag die Grundlagen dazu vermitteln wird. Wir setzen voraus, dass Du den Umgang mit InDesign gewohnt bist, die Gründe und Vorteile von der Nutzung von Formaten kennst und weißt, wie man lange Dokumente „richtig“ aufbaut. Der Vortrag setzt bewusst DANACH ein. Inhalt des Vortrages ist der Hintergrund von „Barrierefreiheit“ und Möglichkeiten und Grenzen innerhalb von InDesign. Es wird erklärt, welche Bedeutung das kostenpflichtige PlugIn MadeToTag hat und warum und für was man es braucht. Ziel ist es den Rahmen aufzuzeigen, in dem sich das Thema „Barrierefreiheit“ in InDesign abspielt. Du weißt hinterher, wo die „Baustellen“ sind, wo Du weitergehende Infos bekommst und welchen Weg Du einschlagen musst. Am nächsten Tag veranstalten wir zwei Bootcamps, die das Thema praktisch vertiefen. "IDUGS Bootcamp #2" und "IDUGS Bootcamp #3" Klaas Posselt ist studierter Dipl.-Ing. für Druck- und Medientechnik und kam über verschiedene Anfragen zum Thema barrierefreie PDF Dokumente. Seit über 10 Jahren arbeitet er in den Bereichen Medientechnik und Publishing zwischen Medienherstellern, Druckermaschinen und digitalen Ausgabekanälen. Er schult, begleitet und unterstützt Kunden bei der Einführung und Optimierung von Publikationsprozessen und auf dem Weg zu neuen digitalen Ausgabekanälen — egal ob E-Books, barrierefreie PDFs oder Webplattformen. Als Chairman des PDF/UA Competence Center der PDF Association beteiligt er sich an der Weiterentwicklung und Verbreitung des Standards PDF/UA für barrierefreie PDF Dokumente. Diese Veranstaltung kommt nur zu Stande durch die freundliche Unterstützung von "Six Offene Systeme GmbH" -- Enterprise-Content-Management-System und Media-Asset-Management-System.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

https://idug47.eventbrite.de

Veranstaltungen
27.09.2018

Screen IT, Uster
Donnerstag, 27. Sept. 2018, 17.30 - 20.00 Uhr

Infoveranstaltung

Das Angebot an Publishing-Software ist gross. Deshalb empfiehlt sich eine externe Beratung durch unabhängige Software-Experten aus der jeweiligen Branche. Nicht immer muss es eine teure Mietlösung sein, die nach Beendigung der Mietdauer einem nicht einmal gehört. Es gibt sehr gute und auch in der Qualität ausreichende Alternativen, ja sogar kostenlose Freeware. Lassen Sie sich an diesem Abend einmal vor Augen führen, was diese Programme können und wie viel sie kosten.

Ja

Organisator: Screen IT und pre2media

Kontaktinformation: Peter Jäger, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/infoanlass/