Veröffentlicht 26. Februar 20205 j Hallo an alle, ich bin relativ neu in diesem Forum, sonst immer der stille Mitleser. Jetzt komme ich aber mit einem Fehler auf euch zu wo ich echt nicht weiterkomme, da ich den Fehler nicht verstehe bzw. vielleicht auch einfach nicht sehe. Ich habe einen Ubuntu Server mit folgenden Packages grundinstalliert: mySQL / PHP-FPM7.3 / apache2 / ufw. Mein Ziel ist es folgendes PHP Script: <?php $dbname="quest"; $dbhost="localhost"; $dbuser="******"; $dbpass="******"; $dbconnection=@mysqli_connect($dbhost, $dbuser, $dbpass); mysqli_select_db($dbconnection,$dbname); $cate=$_POST['cate']; $quest=$_POST['quest']; $answer=$_POST['answer']; $time=$_POST['time']; //if(isset($_POST['cate']) AND ($_POST['quest']) AND ($_POST['answer']) { mysqli_query($dbconnection, "INSERT INTO question(cate,quest,answer,time) VALUES('$cate','$quest','$answer','$time')"); } date_default_timezone_set("Europe/Berlin"); $timestamp = time(); $datum= date("d.m.Y", $timestamp) ?> <html> <body> <form action="kata.php" method="POST"> <select name="Kategorien"> <option>Kategorie A</option> <option>Kategorie B</option> <option>Kategorie C</option> <tr> <td><input type="Text" size="60" name="cate" value="Kategorie" maxlength="60"></td> </tr> <tr> <td><input type="Text" size="60" name="quest" value="Frage" maxlength="60"></td> </tr> <tr> <td><input type="Text" size="60" name="answer" value="Antwort" maxlength="60"></td> </tr> <tr> <td><input type="datetime" size="60" name="time" value="<?php echo $datum;?>" maxlength="60"></td> </tr> <input type="Submit" value="Senden"> </form> </body> </html> in folgende mySQL Tabelle zu übertragen: drop table if exists question; create table question( questionid int primary key auto_increment, cate varchar(60), quest varchar(60), answer varchar(60), time varchar(60) ); Auf meinem Windows PC mit XAMPP Umgebung funktioniert es einwandfrei. Auf dem Webserver bekomme ich die HTML-Eingabe"maske" aber die Ausgabe in die Datenbank funktioniert nicht. Kann mir jemand vielleicht weiterhelfen? Viele Grüße, TechSteck
26. Februar 20205 j vor 5 Minuten schrieb TechSteck: $dbname="quest"; $dbhost="localhost"; $dbuser="******"; $dbpass="******"; Das hat sicherlich hiermit zu tun. Läuft da eine MySql-Server? Stimmen die Credentials? Existiert die Datenbank? Stimmt der Port? (default ist 3306, wenn ich mich nicht irre).
26. Februar 20205 j Warum keine Prepared Statements? Zitat time varchar(60) was soll da rein? "knapp 3 Stunden" Was meldet das Errorlog vom Webserver, vom PHP bzw Mysql? Bearbeitet 26. Februar 20205 j von MartinSt
26. Februar 20205 j vor 2 Stunden schrieb MartinSt: Warum keine Prepared Statements? ...oder wenigstens PDO, statt auf das gefühlt uralte MySQLi zu bauen. Das verleitet doch bloß dazu, prozeduralen Code zu schreiben. Bonus: Wenn doch mal PostgreSQL statt MySQL verwendet wird. ----- Hast du auf dem Webserver alle benötigten Sachen aktiviert? Und am besten auch das error_reporting einfach mal anstellen: error_reporting(E_ALL); https://www.php.net/manual/de/function.error-reporting.php
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.