php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.10.2009, 02:15  
Erfahrener Benutzer
 
Benutzerbild von estebu
 
Registriert seit: 11.02.2009
Beiträge: 193
PHP-Kenntnisse:
Anfänger
estebu befindet sich auf einem aufstrebenden Ast
estebu eine Nachricht über Skype™ schicken
Standard Alles nach den Anführungszeichen wird auf einmal nicht mehr ausgegeben

Hallo Gemeinde,

ich habe seit neuestem folgendes Problem:

Meine Datenbank ist im Feld "Name" teilweise gefüllt mit Namen wie:

Grundschule "Juri Gagarin" oder Gymnasium "Bertholt Brecht" u.ä.

In der Gesamttabelle werden diese Bezeichnungen auch korrekt ausgegeben, aber wenn ich auf einen Eintrag klicke, um ihn mittels eines Formulars zu editieren, dann wird alles, was bei Name ab dem Anführungszeichen kommt, nicht mehr im Formularfeld "Name" ausgegeben. Es steht dann lediglich nur noch Grundschule bzw. Gaymnasium (wie vom Beispiel oben), obwohl die Select-Abfrage der Tabelle die gleiche ist. Kann sich jemand von EUch daraus einen Reim machen oder kennt jemand bereits dieses Problem?

Die Spalte in der Tabelle ist als "Text" angelegt ohne Attribute, das Formularfeld sieht folgendermaßen aus:

Code:
<tr valign="baseline">
<td nowrap align="right">Name der Schule:</td>
<td id="textfeld">
<input name="Name" type="text" id="Name" value="<?php echo $row_Recordset1['name']; ?>" size="32" >
</td></tr>

Hier die SELECT-Abfrage:

PHP-Code:
mysql_select_db($database_connect$connect);
$query_Recordset1 "SELECT * FROM Schulen WHERE schul_id=".$_GET["selectedNr"];
$Recordset1 mysql_query($query_Recordset1$connect) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1); 
Danke für eventuelle Hilfe!
estebu ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.10.2009, 02:18  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ja. Sieh Dir das Input-Feld mal im HTML Quellcode (Browser-Quelltext) an.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 01.10.2009, 17:10  
Erfahrener Benutzer
 
Benutzerbild von estebu
 
Registriert seit: 11.02.2009
Beiträge: 193
PHP-Kenntnisse:
Anfänger
estebu befindet sich auf einem aufstrebenden Ast
estebu eine Nachricht über Skype™ schicken
Standard

Habe ich nun mal gemacht und mir ist aufgefallen, dass die Wörter zwischen den Anführungszeichen nun auch in die Attribute des Textfeldes übernommen werden. Wenn also der richtige Eintrag heisst: Schule "Am Wald" steht nun bei der Abfrage im Quelltext:

Code:
<input id="Name" type="text" size="32" Wald="" Am="" value="Schule " name="Name"/>
Alles klar. Die Ausgabe wird nicht ordnungsgemäß escaped. Soweit, so schlecht, denn nach dem checken der info.php habe ich dort gelesen: magic_quotes_gpc: On (local) On (master)
Ich habe gelesen, dass diese Funktion für das automatische escapen zuständig sein soll...(?)
Nun gibt es noch die Möglichkeiten, mit 'addslashes' und 'stripslashes' zu arbeiten... wäre das in meinem Fall sinnvoll?
Und falls ja: wie "baue" ich diese Funktion in mein Formular korrekt ein?

Für weitere Tipps bin ich sehr dankbar.

Gruß Estebu

Geändert von estebu (01.10.2009 um 17:15 Uhr). Grund: Thema abbonieren
estebu ist offline  
Alt 01.10.2009, 18:02  
Erfahrener Benutzer
 
Benutzerbild von estebu
 
Registriert seit: 11.02.2009
Beiträge: 193
PHP-Kenntnisse:
Anfänger
estebu befindet sich auf einem aufstrebenden Ast
estebu eine Nachricht über Skype™ schicken
Standard

Ich habe jetzt die doppelten Anführungszeichen (") bei
Code:
value=
durch einfache (') ersetzt. Eine Dauerlösung ist das allerdings nicht - was, wenn mal eine Schule "Ich hab's" heisst??
Mir wäre an einer profesionelleren Lösung immer noch gelegen...

Gruß
Estebu

Geändert von estebu (01.10.2009 um 18:03 Uhr). Grund: Ergänzung
estebu ist offline  
Alt 01.10.2009, 19:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
wäre das in meinem Fall sinnvoll?
Die richtige Lösung lautet htmlspecialchars. Zusätzlich solltest Du magic_quotes_gpc-verarbeitete Werte vorher entquoten -> strip_slashes.
Für den Datenbankeintrag ist zusätzlich mysql_real_escape_string (jetzt für die MySQL DB) notwendig. Ein ähnliches Problem wie Du es mit dem Input hast, ist nämlich auch im String der SQL-Query möglich.
Zitat:
Mir wäre an einer profesionelleren Lösung immer noch gelegen...
Voila, nicht professionell, dafür aber best practice.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ausgegeben Tabelle jede halbe stunde aktualisieren ketchup PHP Tipps 2009 1 30.03.2009 11:29
Der komplette HTML-Code wir in einer Zeile ausgegeben? BartTheDevil89 HTML, Usability und Barrierefreiheit 6 01.03.2009 20:16
[Erledigt] Erster Datensatz wird nicht ausgegeben (mysql_fetch_array) supervision PHP Tipps 2009 7 23.02.2009 16:19
alle Datensätze werden ausgegeben Friede Datenbanken 8 09.11.2008 21:02
[Erledigt] MySQL-Tabelle wird nicht ausgegeben yourdaydream PHP Tipps 2008 3 26.06.2008 09:13
Daten werden nicht ausgegeben Ricardando Datenbanken 5 29.10.2007 17:45
Quellcode wird anstatt der richtigen Seite ausgegeben (LoGD) PCServe PHP Tipps 2006 3 29.05.2006 21:58
php code wird im browser ausgegeben janni PHP Tipps 2006 7 28.03.2006 16:01
time() wird nicht ausgegeben... PHP Tipps 2007 2 31.10.2005 22:11
Formular Daten werden nicht empfangen und ausgegeben PHP Tipps 2005-2 4 14.07.2005 19:05
Warum wird IF-Abfrage falsch ausgegeben ? PHP Tipps 2005 12 21.04.2005 10:56
erster Datensatz wird nicht ausgegeben Sonja PHP Tipps 2004-2 3 06.12.2004 17:59
[Erledigt] Wochentagname wird nicht ausgegeben PHP Tipps 2004 3 07.10.2004 15:56
Warum wird nur eine Zeile ausgegeben? Heart PHP Tipps 2004 2 25.06.2004 16:00
[Erledigt] Werte werden 2x ausgegeben PHP Tipps 2004 2 13.06.2004 14:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
redezeichen grundschule, anführungszeichen grundschule, wie heißen anführungszeichen in grundschule, php text mit anführungsstrichen ausgeben, grundschule anführungszeichen, anführungszeichen einmal, anführungszeichen ist auf einmal @, anführungszeichen einmal danach nicht mehr?, alles nach | entfernen php, php text feld anführungszeichen, textfeld anführungszeichen php, php alles nach anführungszeichen, html input feld anführungszeichen, php input anführungszeichen, php alles nach anführungszeichen wird geschrieben, php anführungszeichen html input felder, texte mit anführungsstriche grundschule, input type text problem mit hochkomma, hochkomma in type text, php input type text problem mit hochomma

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum