problem mit Hochkomma
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
armada
aufgefallen
browser
diversen zeichen
ersatz
ersetzen
funktion
jemand
private message
problem
sonderzeichen
standard
string
suche
system
text
umlaut
verwaltung
vollidiot
wohnort
-
hi Leute
bin dabei eine kleine php page zu bauen die mit einer userverwaltung, private message system und news system ausgesatttet sein wird
habe schon das usersystem mit allem drum und dran, das news system is auch fertig aber jetz ist mir was aufgefallen
wenn ich in feldern wo der User texte eingiebt wie z.B. username oder wohnort...egal was - wenn dort ein Hochkomma > ' < mit drin ist klappt es nicht und es gibt einen my sql error
wie kann ich das problem mit den hochkommas l?sen? habe da von einer str_replace funktion oder so geh?rt -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
einfach ne Funktion schreiben die Hochkomma in ein anderes Zeichen Umwandelt oder verbietet ... frag mich jetzt aber nicht wie ? Glaub irgendwas mit StringReplace() oder so...
-
Ok Ok - hab deine Frage nicht richtig durchgelesen...hab die aber ein einfaches Beispiel gefunden f?r so ne Funktion:
> function badwords($content){
> $badword = file("badwords.txt");
> foreach ($badword as $elem){
> $ersatz="@@".$elem."@@";
> $suche=$elem;
> $content = str_replace($suche, $ersatz , $content);
> }
> return $content;
> }
viel Gl?ck... -
ja in delphi war das glaub ich str_replace()
nur in php?? kann jemand helfen?
das hochkomma muss entweder verboten / gefiltert werden oder es muss vor dem hochkomma ein backslash > / < davor gesetzt werden damit der mysql syntax wieder stimmt
EDIT: ah ok !!! danke!!! -
Ganz einfach:
Den Text bekommst du ja in eine Variable.
Bei dieser Variable l?sst du jetzt einfach eine PHP-Funktion wie z.B.: str_replace() bei der du die als Searchstring ein Hochkomma angibst, und auf z.B. ein \' ?nderst, oder ich glaub es funktioniert auch, wenn du ein doppeltes Hochkomma, also " verwendest.
Ich glaube, dass das MySql zul?sst, bin mir aber nicht ganz sicher -
<?php
$text=eingegebener Text
$aendern=array("'" => "/'");
$text=str_replace(array_keys($aendern),array_values($aendern),$text);
?>
So m?sste das funktionieren
armada -
$String = str_replace("was du ersetzten willst","womit ersetzen",$String");
Das selbe Problem hat man auch mit manch anderen Sonderzeichen.
Also am besten eine Funktion schreiben welche alle Problemf?lle ersetzt
function strinconvert($String)
{
[...]
$String = str_replace("'","?",$String);
[...]
return $String;
} -
Am Besten ist, wenn man die Umlaute "HTML-gerecht" umwandelt und dann den Text in der Datenbank abspeichert.
Bei der Anzeige ist das dann kein Problem, weil der Browser sowieso die Zeichen wieder umwandelt.
z.B.: ? => ü
So w?re es richtig ein ? darzustellen.
Dazu gibt es die Funktion htmlentities();
Dies sollte man beachten. Der IE hat zwar kein Problem mit ?,?,? und diversen Zeichen, aber vielleicht h?lt sich ein anderer Browser an den Standard und dann hat dieser ein Problem und jeder, der den Browser benutzt, denkt sich: "So ein Vollidiot von Webmaster"
mfg -
hey kannst du mir das script f?r user verwaltung bitte geben?
-
Warum schreibst du es dir nicht selber? Steigert deine Erfahrung in PHP und dir wird nicht langweilig!
-
RFM sag ich da nur. Schau mal in der PHP doku nach dieser Funktion mal nach (www.php.net) Da ist bestimmt ein Passender Code-Schnippsel.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage