Speicher in DB fehlgeschlagen!

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Speicher in DB fehlgeschlagen!

Beitrag von Christian_N »

Deine phpBB Version: Vanilla phpBB 2.0.17
MODs: Ja
Dein Wissensstand: Einsteiger
Link zu Deinem Forum: [url]http://[/url]

PHP Version:
MySQL Version:


Was hast Du gemacht, bevor das Problem aufgetreten ist?
Jaja, hab eine blank page gemacht, die ich über ACP steuern möchte...


Was hast Du bereits versucht um das Problem zu lösen?
alles möglichen.



Fehlerbeschreibung und Nachricht

Also das problem ist folgendes, ich bau eine blank page, so das auf die Seite die eingaben anzeigt die ich im ACP eingeben tun, funktioniert eigentlich alles auch soweit.

Allerdings sobald ich jetzt ein text mit eine einfache Hochkomma ' mache (beispiel: das Little Chantal's - Fanclub Team) kommt eine fehlermeldung kann er es nicht richtig speichern dann, tun ich aber mit ein \ machen also so Little Chantal\'s - Fanclub Team speichert er es ohne fehler.

Problem dabei ist nur er zeigt es auf der Seite mit diese quarstrich \ auch dann an.

Was kann man da machen damit er dies im ACP zwar hinzufügt ggf. autom. bei ein hochkomma ' also irgendwie es ersetzt mit \' aber nicht auf der seite so anzeigt sonder nur das einfache hochkomma ' dann?

Hoffe jemand hat eine Idee
P.S. nennt mir welche Datei ihr ggf. braucht.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Konvertiere den Text vor dem Speichern mit beispielsweise

Code: Alles auswählen

$text = addslashes($text);
wobei $text die betreffende Variable für den Text darstellt.
addslashes() wandelt einfache Hochkommas ' in geschützte Hochkommas um \'
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Und vor der Ausgabe konvertierst du den Text mittels

Code: Alles auswählen

$text = stripslashes($text);
wieder zurück! :)

Desweiteren wäre, nach stripslashes(); noch ein

Code: Alles auswählen

$text = nl2br($text);
recht nützlich, damit auch Zeilenumbrüche dargestellt werden. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

nl2br ist ungeschickt, es zerstört unter Umständen das Layout.
Ein

Code: Alles auswählen

$text = str_replace("\n", "\n<br />\n", $text);
(wichtig sind die doppelten Hochkommas!) wäre besser...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

^^ *LOL* Genau das benutze ich auch immer, wuste aber bisher eigentlich garnicht warum. :D
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Hier lernst eben keiner aus ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Jepp :D
Ich sowieso nicht!
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Danke erstmal für die 2 codes oxpus und amigalink,
also in ACP ist es so:

Code: Alles auswählen

$vorteile = $new['vorteile'];
dies tut dann in die DB Tabelle phpbb_fanclub bei den vorteile alles abspeichern.

also müsste es dann so lauten:

Code: Alles auswählen

$vorteile = addslashes($vorteile);
muss ich das jetzt mit dem überschreiben oder einfach nur davor bzw. danach einfügen?

2. in der vorteile.php die es dann auslist von der DB ist es so

Code: Alles auswählen

$vorteile = $fanclub_config['vorteile'];
&fanclub_config hab ich in der common.php wo auch $board_config defniert ist eingebunden, damit es funktioniert.

Muss ich dort dann auch es ersetzen oder davor bzw. danach einfach nur

Code: Alles auswählen

$vorteile = stripslashes($vorteile);
$vorteile = str_replace("\n", "\n<br />\n", $vorteile);
hinzufügen?

Im voraus besten dank schonmal.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Code: Alles auswählen

$vorteile = addslashes($new['vorteile']);

Code: Alles auswählen

$vorteile = stripslashes($fanclub_config['vorteile']); 
$vorteile = str_replace("\n", "\n<br />\n", $vorteile);
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

also die anzeige ist in ordnung, allerdings ist im ACP immer noch das beim Speichern er fehler bringt

Code: Alles auswählen

Failed to update Fanclub configuration for preise

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 's - Fanclub Team' WHERE config_name = 'preise'' at line 2

UPDATE beta_fanclub SET config_value = 'blabla, mal hier gekürtzt. Mit freundlichen Grüßen, das Little Chantal's - Fanclub Team' WHERE config_name = 'preise'

Line : 54
File : admin_vorteile.php
Komisch daran ist nur warum er in der admin_vorteile.php fehler nennt über der admin_preise.php der text der auch in value dort in der fehleranzeige ist, ist der von der preisliste obwohl ich die vorteile bearbeiten möchte... will ich die preise bearbeiten kommt der selbe fehler nur andersrum da tut er mir dann die statt die preise die vorteile nenne.

aber die seiten, vorteile.php / preise.php werde ohne fehler angezeigt auch nur mit dem einfache hochkomma, also die anzeigen tut er da richtig mache nur beim speichern klappt es net so ganz, selbst wenn man jetzt \' macht tut er den fehler bringen.

Aber auch nur wenn ich beide datei auf den server habe, admin_preise.php und admin_vorteile.php - tun ich eine davon lösche, dann speichert er ab ohne fehler. als ob sich die 2 bekriegen irgendwie?

Ausserdem ist auch in der Textfeld wo ich den Text rein schreib, bei ACP jetzt bei z.B. <a href="blabla.php">blabla</a> dann es so <a href=\\\"blabla.php\\\">blabla</a> kann man es machen das es im textfeld net so der fall ist?

Müsste denk ich mal irgendwie gehn, den wenn jemand ein Text ins Forum schreibt mit Hochkomma ob doppelte oder einfache (',") bei beide speichert er es ab ohne fehler, sollte man diese Text dann bearbeiten wollen tut er auch dort dann nicht im Textfeld die \\ anzeigen, dashalb denk ich mal das es auch geht irgendwie dann.

Hoffe man kann mir bei die 2 probleme auch noch helfen, schonmal besten dank :)
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Also deiner Fehlermeldung nach zu urteilen hast du addslashes(); nicht drin bzw. falsch plaziert. Denn sonst würde dort
'blabla, mal hier gekürtzt. Mit freundlichen Grüßen, das Little Chantal\'s - Fanclub Team'
stehen. :)
Ausserdem ist auch in der Textfeld wo ich den Text rein schreib, bei ACP jetzt bei z.B. <a href="blabla.php">blabla</a> dann es so <a href=\\\"blabla.php\\\">blabla</a> kann man es machen das es im textfeld net so der fall ist?
Den Satz jab ich jetzt nicht ganz kapiert. :(
<a href=\\\"blabla.php\\\">blabla</a> lässt aber darauf schließen das du sddslashes(); 2 mal ausführst!

Am besten hängst du die beiden Dateien mal an, damit wir uns eher ein Bild machen können!
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

hm ich haben meine oben genannte codes von beitrag 8 ersetzt gehabt...
und das wegen dem andere, nun in admin_preise/vorteile.php hab ich sddslashes(); garnet eingesetzt.

hier mal die beide admin datein, als anhang.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Das hab ich mir gedacht.
Du hast als vorlage die admin_board.php genommen. Die ist nur für Konfigurationen geeignet und nicht für die Eingabe von Texten!
Und zwar weil es in der Datein keine getrennten Codes für eingabe und ausgabe gibt.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

und wie macht man das das die getrennt sind oder wie auch immer, das man es so machen kann wie ich möchte... muss ja irgendwie möglich sein.

EDIT: Wie es ausschaut funktioniert es nun jetzt :-)

Habe nun jetzt es so gemacht aus:
if( isset($HTTP_POST_VARS['submit']) )
{
$sql = "UPDATE " . FANCLUB_TABLE . " SET
config_value = '" . str_replace("\'", "''", $new[$config_name]) . "' WHERE config_name = '$config_name'";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Failed to update Fanclub configuration for $config_name", "", __LINE__, __FILE__, $sql);
}
}
folgendes gemacht:
if( isset($HTTP_POST_VARS['submit']) )
{
$sql = "UPDATE " . FANCLUB_TABLE . " SET
config_value = '" . addslashes($new[$config_name]) . "' WHERE config_name = '$config_name'";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Failed to update Fanclub configuration for $config_name", "", __LINE__, __FILE__, $sql);
}
}
Und aus

Code: Alles auswählen

$preise = addslashes($new['preise']);
habe ich diese gemacht:

Code: Alles auswählen

$preise = stripslashes($new['preise']);


jetzt speichert er es wenn ich mit dem einfache hochkomma schreibe es ohne fehler ab und wenn ich dann wieder drauf gehe z.B. weil ich was nochmal ändern will zeigt er es an wie vorher ohne das \' also er zeigt ganz normal dann das einfache hochkomma ' an. :)

Auf der Seite preise.php zeigt er es auch richtig alles nun an :)

Danke an alle für die hilfe..

Gruß Chris
Zuletzt geändert von Christian_N am Mo 05.Sep, 2005 15:46, insgesamt 1-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Auch eine Lösung :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Jep, nur ist es so eine sicherheitsrisko irgendwo, also mein hab ich mir ne lücke damit eingehaut ins ACP?
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

danke dann ist gut :) dann kann ich weiter machen nun :) Wollt eigentlich noch das ich die texte auch mit BBCode und Smilie wie im Forum schreiben kann, aber das wird sicher dann schwiriger das er die BBCodes/Smilies umwandelt und auf der seite ausgibt.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Schwer ist das nicht, nur etwas aufwändig zu erklären.

Du müstest vor dem speichern des Textes eine bbcode_uid erzeugen, diese jedem benutztem BBCode zufügen

Code: Alles auswählen

$bbcode_uid = make_bbcode_uid();
$text = prepare_message(trim($text), 0, 1, 1, $bbcode_uid);
und das ganze in der db speichern (auch die bbcode_uid).
Vor dem anzeige des Textes wird dieser dann einfach nur durch die bbencode_second_pass(); gejagt. :)

Code: Alles auswählen

$text = bbencode_second_pass($text, $bbcode_uid);
Dafür musst du nur die bbcode.php und die functions_post.php in deine Dateien includieren.
Allerdings wird das editieren des Textes etwas heikel, denn du müstest die bbcode_uid vor dem editieren wieder entfernen.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

hm, hab sehr viel verstanden und doch nichts *gg*
dachte man kann irgendwie es machen wie beim posting.php wo auch bbcode sowohl smilies verwenden werden, wo beim editieren nichts entfernt werde muss in der datei.

Aber naja, HTML tuts ja auch eigentlich :D, wenn was groß sein soll bzw. fett oder so tun ich es eben via HTML machen halt. :)
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Mach mal in deiner vorteile.php das hier:

Code: Alles auswählen

#
#----------[ FIND ]-------------------------------------
#

include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

#
#----------[ AFTER, ADD ]-------------------------------
#

include($phpbb_root_path . 'includes/bbcode.'.$phpEx);

#
#----------[ FIND ]-------------------------------------
#

$vorteile = stripslashes($fanclub_config['vorteile']);

#
#----------[ AFTER, ADD ]-------------------------------
#

$vorteile = smilies_pass($vorteile);
Dann hast du zumindest schonmal die Smilies. :)
Und den rest kannst du ja, wie du selber bereits sagst, mit HTML machen. :D
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Super Danke dir klappt mit den Smilies wunderbar :)

Jetzt kann ich alle mein Datei bearbeiten, chat.php, steckbrief.php, bio.php etc. so das ich die über ACP steuern kann und ggf. Smilies in welche verwenden kann :)

Bist einfach spitze, danke 1000x :D
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Antworten