[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:
(2037 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:
(2037 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:
(2037 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:
(2037 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:
(2037 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:
(2037 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:
(2037 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:
(2037 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]
X

Aktuell

Web / SEO / Blockchain / Betriebssystem
300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
17.04.2024

Online
Mittwoch, 17. Apr. 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!