Der Picknicker 0 Autor Melden Teilen Geschrieben 16. Juni 2007 (bearbeitet) Noch ne Frage: Ein Newseintragescript soll das sein, allerdings macht er nix, wenn man auf den Button klickt. Warum nicht? if(isset($_POST['submit']) AND "News eintragen" == $_POST['submit']) { $sql= "INSERT INTO ehemaligen_news (headline,text,date,zeig) VALUES ('".$_POST['headline']."', '".$_POST['text']."', NOW(), '1')"; mysql_query($sql) OR die(mysql_error()); echo "News wurde eingetragen.<br>"; } echo "Hier können sie eine neue News schreiben"; echo "<form action=\"index.php?section=admin&site=news\" name=\"news\" method=\"post\">"; <- Wird also an selbe Seite gesendet echo "<table><tr><td>Überschrift: </td>"; echo "<td><input type=\"text\" name=\"headline\"></td></tr>"; echo "<tr><td>Datum/Zeit</td>"; echo "<td> Wird automatisch eingefügt </td></tr>"; echo "<tr><td>Inhalt: </td>"; echo "<td><textarea name=\"text\" rows=\"5\" cols=\"50\"></textarea></td></tr></table></form>"; echo "<input type=\"submit\" name=\"submit\" value=\"News eintragen\"></form><br>"; echo "<a href=\"index.php?section=admin\">Zurück</a>"; Bearbeitet 16. Juni 2007 von Oberon Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Monoman 0 Melden Teilen Geschrieben 16. Juni 2007 Dein Formular wird nicht abgesendet, da du bereits das Formular mit einem </form> vor dem Absenden-Button schließt. In dieser Zeile: echo "<td><textarea name=\"text\" rows=\"5\" cols=\"50\"></textarea></td></tr></table></form>"; Allerdings ist dein Code auch unsauber und hat Sicherheitslücken. Mal ein Beispiel, wie ich das Ganze schreiben würde: <?php // ... if (isset($_POST['submit']) && (int)$_POST['formid'] == 1) { // Benutzereingaben maskieren - evtl. verfeinern auf magic_quotes_gpc etc. array_walk($_POST, create_function('&$sItem, $mKey', '$sItem = mysql_real_escape_string($sItem);')); $sql = 'INSERT INTO `ehemaligen_news` (`headline`, `text`, `date`, `zeig`) VALUES ("'.$_POST['headline'].'", "'.$_POST['text'].'", NOW(), 1)'; mysql_query($sql); if (mysql_affected_rows() < 1) echo 'News wurde nicht eingetragen.<br />'."\n"; else echo 'News wurde eingetragen.<br />'."\n"; } echo <<<HTML Hier können sie eine neue News schreiben <form action="{$_SERVER['SCRIPT_NAME']}?section=admins&site=news" name="news" method="post"> <!-- ... --> <input type="submit" name="submit" value="News eintragen" /> <input type="hidden" name="formid" value="1" /> </form> <!-- ... --> HTML; // ... ?> MfG Monoman Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Der Picknicker 0 Autor Melden Teilen Geschrieben 17. Juni 2007 (bearbeitet) Och mann ey. Immer diese doofen Fehler. Und ehrlich gesagt verstehe ich nicht so ganz, was das array_walk da macht. E: Und wie gesagt: Ich bin noch blutjunger Anfänger. Bearbeitet 17. Juni 2007 von Oberon Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dr. Dünnpfiff 0 Melden Teilen Geschrieben 19. Juni 2007 Hi, ich hätte mal ne Java-Frage. Ich bastel grade für die Schule einen Pong-Klon. Später soll das Applet noch verschiedene Zusatzfunktionen bieten wie verschiedene Schwierigkeitsgrade der KI, klassischer 2-Spieler Modus, variable Spielgeschwindigkeit und einen Umschalter zwischen Retro-Pong in grün-schwarzer Optik mit alten Sounds und einer modernen Variante mit schönerer Grafik und moderneren Sounds. Naja wie auch immer; momentan bin ich noch ziemlich am Anfang. Bis jetzt bewegt sich der Ball hin und her und Prallt an den Cursorn sowie am oberen und unteren Bildrand ab. Den rechten Cursor kann man schon bewegen, der linke wird mit einer unglaublich komplexen KI nach dem Motto y_cursor=y_ball gesteruert^^ So. Jetzt wollte ich schonmal eine Pause-Funktion einbauen. Wenn man auf die entsprechende Taste drückt, wird folgendes ausgeführt: System.out.println("Ende gedrückt"); if(bSpiel) bSpiel=false; if(!bSpiel) bSpiel=true; Das "Ende gedrückt" wird, wie man sieht, in der Konsole ausgegeben und ist nur zum überprüfen, ob der Tastendruck überhaupt "geklappt" hat. Problem: So wie es momentan steht, gibt die Konsole zwar brav das "Ende gedrückt" aus, im Applet Viewer passiert aber gar nichts. Wenn ich eine dieser beiden Varianten benutze: if(bSpiel) bSpiel=false; else if(!bSpiel)bSpiel=true; if(bSpiel) bSpiel=false; else bSpiel=true; Dann hält das Spiel zwar an, wenn Ende gedrückt wird, beim erneuten Drücken wird aber wieder nur "Ende gedrückt" ausgegeben, sonst passiert nichts. Irgend eine Idee, woran das liegen könnte? Ich kann bei Bedarf auch gerne mal den kompletten Code posten mfg Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Monoman 0 Melden Teilen Geschrieben 19. Juni 2007 Ich bin zwar kein Java-Mensch, aber vllt. mal ausgeben lassen, ob auch beide Seiten der Verzweigung jeweils aufgerufen werden mit bspw. // ... if (bSpiel) { System.out.println("if-block: " + bSpiel.toString()); bSpiel = false; } else { System.out.println("else-block: " + bSpiel.toString()); bSpiel = true; } // ... Ich weiß jetzt allerdings nicht, ob das syntaktisch so korrekt ist. Vllt. wird die Variable auch irgendwo anders im Programm während der Laufzeit noch mal überschrieben, das würde ich mal überprüfen. MfG Monoman Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dr. Dünnpfiff 0 Melden Teilen Geschrieben 19. Juni 2007 (bearbeitet) Werden sie, die Konsole sagt: Ende gedrückt if-block: true Ende gedrückt else-block: false Ende gedrückt if-block: true Ende gedrückt else-block: false Wenn man 4 mal drückt. Der Boolean wird von Fräulein Else also auch auf true gesetzt. Komische Sache... mfg e: Habs mittlerweile geschafft, an dem if/else lag es aber nicht Bearbeitet 21. Juni 2007 von Dr. Dünnpfiff Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Der Picknicker 0 Autor Melden Teilen Geschrieben 13. Oktober 2007 Habe ein kleines Problemchen. Ich hab ein Select aus einem Script, bei dem der Benutzer seinen Leistungskurs angeben soll, mit diversen Einträgen: <td><select name=\"lk2\" id=\"lk2\"> <option value=\"Mathe\">Mathe</option> <option value=\"Deutsch\">Deutsch</option> <option value=\"Englisch\">Englisch</option> <option value=\"Französisch\">Französisch</option> <option value=\"Geschichte\">Geschichte</option> <option value=\"Biologie\">Biologie</option> <option value=\"Physik\">Physik</option> <option value=\"Chemie\">Chemie</option> <option value=\"Informatik\">Informatik</option> <option value=\"Geografie\">Geografie</option> <option value=\"Kunst\">Kunst</option> <option value=\"Musik\">Musik</option> <option value=\"Politik\">Politik</option> </select><br></td></tr> Der Wert wird dann in die Datenbank gespeichert. Wenn dieses Script nun ausgeführt wird und nochmal geladen wird, wird der erste Eintrag des Selects angezeigt. Ich hätte es aber gern so, dass der momentan in der Datenbank gespeicherte Wert selected sein soll. Wie krieg ich das hin? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Monoman 0 Melden Teilen Geschrieben 14. Oktober 2007 Könntest du deine Tabellendefinition hier evtl. posten? In welcher Sprache ist denn deine Anwendung geschrieben? MfG Monoman Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
XXen 0 Melden Teilen Geschrieben 14. Oktober 2007 Im Prinzip musst du dann den Wert aus der DB holen, die Optionen überprüfen lassen und dann in den Tag ein selected, muss dann ungefähr so ausschauen :<option value=\"bla\" selected>bla</option> siehe hier : Selfhtml.org Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Der Picknicker 0 Autor Melden Teilen Geschrieben 14. Oktober 2007 (bearbeitet) @XXen: Das wie ich es prinzipiell machen muss weiß ich, das wie ich es mit der HTML-Syntax mache auch. Das was ich gerne wissen würde, wie es genau aussehen muss. @Monoman: Die komplette Tabelle sieht so aus: echo "<table><tr><td>Was machen Sie jetzt (Arbeit/Studium)?: </td>"; echo "<td><input type=\"text\" name=\"tatigkeit\" id=\"tatigkeit\" value=\"".$user['tatigkeit1']."\"><br></td></tr>"; echo "<tr><td>Ihr Abiturjahrgang: </td>"; echo "<td><input type=\"text\" name=\"jahrgang\" id=\"jahrgang\" value=\"".$user['abijahr1']."\"><br></td></tr>"; echo "<tr><td>Leistungskurs 1 (Hauptfach): </td>"; echo "<td><select name=\"lk1\" id=\"lk1\"> <option value=\"Mathe\">Mathe</option> <option value=\"Deutsch\">Deutsch</option> <option value=\"Englisch\">Englisch</option> <option value=\"Französisch\">Französisch</option> <option value=\"Geschichte\">Geschichte</option> <option value=\"Biologie\">Biologie</option> <option value=\"Physik\">Physik</option> <option value=\"Chemie\">Chemie</option> <option value=\"Informatik\">Informatik</option> <option value=\"Geografie\" >Geografie</option> <option value=\"Kunst\">Kunst</option> <option value=\"Musik\">Musik</option> <option value=\"Politik\">Politik</option> </select><br></td></tr>"; echo "<tr><td>Hat ihnen der Leistungskurs 1 im Studium/bei der Arbeit geholfen?</td>"; echo "<td><textarea name=\"meinung1\" id=\"meinung1\" cols=\"50\" rows=\"5\">".$user['gutschlecht1']."</textarea><br></td></tr>"; echo "<tr><td>Leistungskurs 2 (weiteres Fach): </td>"; echo "<td><select name=\"lk2\" id=\"lk2\"> <option value=\"Mathe\">Mathe</option> <option value=\"Deutsch\">Deutsch</option> <option value=\"Englisch\">Englisch</option> <option value=\"Französisch\">Französisch</option> <option value=\"Geschichte\">Geschichte</option> <option value=\"Biologie\">Biologie</option> <option value=\"Physik\">Physik</option> <option value=\"Chemie\">Chemie</option> <option value=\"Informatik\">Informatik</option> <option value=\"Geografie\">Geografie</option> <option value=\"Kunst\">Kunst</option> <option value=\"Musik\">Musik</option> <option value=\"Politik\">Politik</option> </select><br></td></tr>"; echo "<tr><td>Hat ihnen der Leistungskurs 2 im Studium/bei der Arbeit geholfen?</td>"; echo "<td><textarea name=\"meinung2\" id=\"meinung2\" cols=\"50\" rows=\"5\">".$user['gutschlecht2']."</textarea><br></td></tr></table>"; Geschrieben ist es in PHP. Da wird zwar ziemlich viel unsauber geschrieben sein, aber ich würde dich bitten, dass jetzt erstmal außenvor zu lassen ^^" Aussehen tut die Seite dann so: Und wie man sehen kann ist das Problem eben, dass die Dropdown-Menüs bei Neuladen der Seite eben wieder auf die erste option fallen. Und das wird für den Benutzer dann sicherlich sehr nervig. Deswegen soll er beim ersten Dropdown die option, deren value gleich $user['lk1'] ist selecten und beim 2. Dropdown dann eben analog. Nur weiß ich nicht, wie ich auf den value der option zugreifen soll. Bearbeitet 14. Oktober 2007 von Oberon Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
XXen 0 Melden Teilen Geschrieben 14. Oktober 2007 Möglicherweise (ist schon spät und ich hab keine Lust es jetzt direkt zu testen) kannst du das ganze über ein assoziatives Array machen. $rem_select = array ( 'Mathe' => '', 'Deutsch' => '', 'Englisch' => '' //usw.... ); $rem_select[$user['lk1']] = 'selected'; echo "<td><select name=\"lk1\" id=\"lk1\"> <option value=\"Mathe\" ".$rem_select['Mathe'].">Mathe</option> /*Beispiel zum einfuegen, bei den Restlichen Einträgen analog */ <option value=\"Deutsch\">Deutsch</option> <option value=\"Englisch\">Englisch</option> <option value=\"Französisch\">Französisch</option> <option value=\"Geschichte\">Geschichte</option> <option value=\"Biologie\">Biologie</option> <option value=\"Physik\">Physik</option> <option value=\"Chemie\">Chemie</option> <option value=\"Informatik\">Informatik</option> <option value=\"Geografie\" >Geografie</option> <option value=\"Kunst\">Kunst</option> <option value=\"Musik\">Musik</option> <option value=\"Politik\">Politik</option> </select><br></td></tr>"; ist zwar keine schöne Lösung, und ich weiss nicht, ob die Schachtelung des Arrays so zulässig ist, aber rein theoretisch müsste es gehen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Der Picknicker 0 Autor Melden Teilen Geschrieben 30. Dezember 2007 Hallo Ich hab mal wieder ein kleines Problem, bitte nicht hauen ^^" Ich habe ein Skript login.php, bei dem man erst ein Passwort eingeben muss, damit man auf eine liste weitergeleitet wird. Ich weiß selbst, dass das Ding total unsicher ist, weil man die Liste mit dem Direktlink auch ohne Passwort einsehen kann. Ist in dem Fall aber nicht so wichtig. Ich hab das so gemacht, aber das geht nicht. Ich weiß nicht warum Oo Er macht nach einem Klick auf Liste einsehen ganz einfach garnichts, außer das er die login.php neu lädt. Aber die Verzweigung geht er glaub ich garnicht durch. <? if (isset($_POST['submit']) AND "Liste einsehen" == $_POST['submit']) { switch ($_POST['pw']) { case 'hallo': include "liste.php"; break; default: echo "<div style=\"padding: 2px;background: #FF8080;border: 1px solid black\">Sie haben ein falsches Passwort eingegeben.</div>"; break; } } echo "Bitte das Passwort eingeben, um die Liste einzusehen."; echo "<form name=\"pass\" action=\"login.php\">"; echo "<table>"; echo "<tr>"; echo "<td>Passwort: </td><td><input type=\"password\" id=\"pw\" name=\"pw\" value=\"\"></td>"; echo "</tr>"; echo "</table><br>"; echo "<input type=\"submit\" name=\"submit\" id=\"submit\" value=\"Liste einsehen\">"; echo "</form>"; ?> Geht das überhaupt so, oder hab ich irgendwas übersehen, was PHP so nicht macht? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
XXen 0 Melden Teilen Geschrieben 30. Dezember 2007 ich kann dir jetzt auch nicht genau sagen, woran es liegen könnte. Auf alle Fälle unten noch beim Formular Header METHOD = \"POST\" einfügen, möglicherweise versuchen die übergebenen Variablen per $_REQUEST[] zu holen und diese erst auf lokale Variablen übertragen, bevor man damit eine Funktion füttert. var_dump() ist im übrigen auch eine feine Funktion, um zu schauen, wo es hängen könnte. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Der Picknicker 0 Autor Melden Teilen Geschrieben 30. Dezember 2007 (bearbeitet) Komisch Oo var_dump($_POST['pw']; sagt NULL. Wenn ich $pw = $REQUEST['pw']; echo $pw; mache, gibt er mir zwar die Variable richtig aus, wenn ich ihm dann aber im Switch switch ($pw) { Anweisungen } sage, macht er genausowenig wie vorher. Aus irgendeinem Grund übergibt er die Formularsachen nicht. Dadurch ergibt die Bedingung in der Verzweigung falsch. Wenn ich die Anweisungen in den Else-Teil der Verzweigung haue, klappt es. Aber warum übergibt er die POST-Sachen nicht? Ich mein eigentlich übergibt er sie ja, sie sind ja in der URL zu sehen. Aber warum kann ich nicht drauf zugreifen? Bearbeitet 30. Dezember 2007 von Oberon Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
XXen 0 Melden Teilen Geschrieben 30. Dezember 2007 bei POST siehst du sie nicht in der URL, wenn sie in der URL sind laufen sie über $_GET. Allerdings sind $_POST[] und $_GET[] auf manchen Servern deaktiviert und $_REQUEST[] holt die Daten aus allem verfügbaren, ob das nun Sessions, Post-Daten oder Cookies sind. vielleicht ist der switch bei dir nur falsch aufgebaut hier gibts hilfe selfphp.de Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...