PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Eintrag aus DB lesen - funktioniert nur teilweise (http://www.selfphp.de/forum/showthread.php?t=8588)

exweised 06.09.2004 20:42:15

Eintrag aus DB lesen - funktioniert nur teilweise
 
Hallo,

also, ich habe ein Formular, da kann man was eintragen und das wird dann in einer DB gespeichert. Funktioniert auch alles. Vor dem eintragen in der DB lasse ich addslashes() drüber laufen, damit er auch vor Anführungszeichen, etc. einen Backslash macht.

Dann habe ich noch die Möglichkeit diese Einträge in einem anderen Formular zu editieren. Die Einträge werden vorher mit stripslashes() bearbeitet und dann an die Inputfelder übergeben. Funktioniert auch alles.

ABER, sobald ein Eintrag mit Anführungszeichen anfängt, wird er mir beim editieren nicht in das Inputfeld übergeben, sondern bleibt gänzlich leer. Fängt der Eintrag mit einem Buchstaben oder einer Zahl an, funktioniert es.

Woran kann das liegen?

Corvin 06.09.2004 20:43:43

Gib mal den Code von den entsprechenden Dateien, sonst kann ich dir nicht helfen ;).

edit:

Huch, was ein Zufall, dein Beitrag ist ja grade mal eine Minute älter als meiner


exweised 06.09.2004 20:59:49

Puh, das ging schnell. ;-)

Hinzufügen:
PHP-Code:

<form ... method="post">
<input type="text" name="thema">
<input type="submit">
</form>

// nächste Seite

<?php
$thema 
trim($_POST['thema']);
$thema addslashes($thema);

// in DB schreiben

?>

Editieren:
PHP-Code:

<?php
// Eintrag aus DB holen
$result = @mysql_fetch_array($select);
?>

<form ... method="post">
<input type="text" name="thema" value="<?php echo stripslashes($result['thema']); ?>">
<input type="submit">
</form>

// nächste Seite

<?php
$thema 
trim($_POST['thema']);
$thema addslashes($thema);

// in DB schreiben

?>

So ungefair sieht das alles aus. Der gesamte Inhalt hätte jetzt die Seite gesprengt. :-D

Wie gesagt funktioniert ja auch alles. Nur wenn ein Eintrag mit Anführungszeichen anfängt, wird er mir beim editieren nicht an das Inputfeld übergeben.

xabbuh 06.09.2004 22:19:16

"
 
Wenn du in einer Variable Anführungszeichen hast und diese als Value für ein input-Feld nimmst, so wie du es in deinem Beispiel beschrieben hast, sieht dein reiner HTML-Quelltext hinterher so aus:

Code:

<input type="text" value="irgend"was">
Somit wird das Anführungszeichen in der Variablen als Ende des value-Attribut gesehen. Es müssen somit alle Sonderzeichen mit Hilfe der Funktion htmlentities() in HTML-Code umgewandelt werden:

PHP-Code:

<?php
    
echo htmlentities(stripslashes($result['thema']));
?>


exweised 07.09.2004 11:04:25

Ah, ist ja logisch, stimmt! Vielen Dank! ;-)


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:13:08 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.