ERLEDIGT
NEIN
NEIN
ANTWORTEN
33
33
ZUGRIFFE
841
841
EMPFEHLEN
-
18.04.10 11:19 #1moritz115 Tutorials.de Gastzugang
Hallo,
ich stehe mal wieder vor einem Problem. Habe viele Lösungswege ausprobiert, jedoch hat keiner Funktioniert
Jetzt brauche ich eure Hilfe. Es geht darum:
Per Post werden Daten weiter gegeben, die hier in einer MySQL Datenbank gespeichert werden:
PHP-Code:<?php
include("config.inc");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ("$db1") or die ("Datenbank nicht geöffnet!");
if ($_POST['shoutbox'] == "shoutbox")
{
//checkbox is checked
}
else
{
//checkbox isn't check
if(!empty($_POST['name']) || !empty($_POST['inhalt'])) {
$sqlbef = "INSERT INTO `$db`.`emp_page`
(`id` ,`name` ,`inhalt`,`geprueft`,`url`) VALUES ('','$_POST[name]','$_POST[inhalt]','no','www.pages.ein-mal-page.de/$_POST[name].php')";
$sqlerg = mysql_query($sqlbef) or die(mysql_error());
echo "Datensatz hinzugefügt!";
}
else
{
echo "Kein Datensatz hinzugefügt!";
}
Jetzt wird eine Datei erstellt. Das Problem ist, dass in diese .php Datei wiederrum ein PHP-Code rein soll. Und genau das ist mein Problem.
Erstellung der Datei:
PHP-Code:$datei = fopen("pages/".$_POST['name'].".php","w");
$datei;
$dateiname = "pages/".$_POST['name'].".php";
$handler = fopen($dateiname , "a+");
fwrite($handler , $text);
Davor muss jetzt noch die Variable $text definiert werden. In dieser Variable soll ein PHP-Code stehen. Dieser:
PHP-Code:<?php
$db = mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ("$db1") or die ("Datenbank nicht geöffnet!");
HIER SOLL ÜBER MYSQL DER INHALT (Spalte ind er Datenbank) VON DER ID, DIE GERADE OBEN ERSTELLT WURDE AUSGEGEBEN WERDEN. ABER NICHT ABGESPEICHERT WERDEN, SONDERN BEI JEDEM AUFRUFEN DER ERSTELLTEN PHP-DATEI NEU ABGERUFEN WERDEN. UNGEFÄHR SO:
("SELECT Inhalt FROM wwp_page WHERE ID = ''OBEN ERSTELLTE ID");
$query = mysql_query($abfrage)or die(mysql_error());
while($row = mysql_fetch_object($query))
{
$row->inhalt = preg_replace('/\[b\](.*?)\[\/b\]/', '<b>$1</b>', $row->inhalt);
$row->inhalt = preg_replace('/\[i\](.*?)\[\/i\]/', '<i>$1</i>', $row->inhalt);
$row->inhalt = preg_replace('/\[color=([[:alnum:]]{6}?).*\](.*?)\[\/color\]/', '<font color="#$1">$2</font>', $row->inhalt);
$row->inhalt = preg_replace('/\[url=([^ ]+).*\](.*)\[\/url\]/', '<a href="$1">$2</a>', $row->inhalt);
$row->inhalt = preg_replace('/\n/', "<br/>\n", $row->inhalt);
echo $row->inhalt;
}
?>
Im PHP-Code steht ja schon, das dort die oben erstellte ID mit in die .php Datei eingespeichert werden soll. Wie geht dies und wie mache ich, dass der PHP code von "$text" nicht in diesem Script erkannt wird, sondern erst in der erstellten PHP Datei erkannt wird?
Ich hoffe ich habe dies gut genug erklärt!
Hoffentlich versteht ihr alles und könnt mir helfen.
moritz115Geändert von moritz115 (18.04.10 um 11:19 Uhr) Grund: Rechtschreibfehler
-
18.04.10 11:43 #2
Also ich würde mal sagen du musst das $ durch \$ maskieren, das ' durch \', das \ durch \\, das " durch \" usw...
Achja und das < von <?php musst du durch ein ascii ersetzen... ich glaub es ist: <
Dann erkennt PHP es nicht als PHP code und schreibt es hinein
Hoffe ich konnte helfen,
Lg
Daniel
-
18.04.10 11:47 #3moritz115 Tutorials.de Gastzugang
Hallo,
wenn ich vor jedem der genannten Zeichen diese Zeichen davor mache, soll es nicht passieren!? Also wirklich bei jedem? Wird dies dann in der .php Datei auch als PHP-Code erkannt und normal ausgeführt?
Und wie ist es, mit der ID die oben erstellt wird und unten eingefügt werden muss? Mitten in diesem Code. Ich muss das iwie aufteilen. Das weiß ich auch wie. Aber wie kann ich die ID ermitteln, die oben erstellt wurde? Ich könnte natürlich die letzte ID ermitteln, aber dann kann es ja auch passieren, das gleichzeitig ein anderer Eintrag erstellt wurd, und es läuft etwas schief. Also, wie soll ich das machen? Und wie soll ich dann auch noch die ID mit abspeichern? Nur als ID?
mfg
moritz115
-
18.04.10 11:51 #4
Also es sollte normalerweise dann anstatt dem \" ein " gespeichert werden... Habe es aber jetzt nicht getestet

Zu deinem Id problem... ermittle die zeit in mikrosekunden (microtime) und speichere sie in die db... dann lässt du noch eine variable die auch die mikrosekunden enthält speichern und vergleichst..
Hoffe ich konnte dir helfen,
Daniel
-
18.04.10 11:57 #5moritz115 Tutorials.de Gastzugang
Hallo,
das mit den Microsekunden ist ein guter Hinweis. Welcher PHP-Code sollte dafür verwendet werden? Und was ist, wenn genau gleichzeitig zwei ID's erstellt werden? Kann man nicht anders die eben erstellte ID ermitteln?
Das mit dem \" werde ich testen
Danke
moritz115
Hallo,
wenn ich das mit dem \" etc. mache, kommt bei einer .php Datei folgendes heraus:
Code :1
<?php echo date("j-M-Y, l"); ?›
Da wird nicht das Datum angezeigt, sondern einfach die Zeile und das PHP wird garnicht gewertet. ich glaube für das > habe ich auch einen falschen Code genommen. Das ist so klein. Aber daran sollte es nicht liegen...
Bei folgendem PHP-Code:
PHP-Code:$text = "<?php
echo date(\"j-M-Y, l\");
";
$datei = fopen("pages/".$_POST['name'].".php","w");
$datei;
$dateiname = "pages/".$_POST['name'].".php";
$handler = fopen($dateiname , "a+");
fwrite($handler , $text);
Der COde der in der PHP-Datei steht wenn ich ihn mit einem Editor öffne:
Code :1 2 3 4 5
<?php echo date("j-M-Y, l"); ?›
Es wird einfach als text gewertet
Nicht als PHP code ausgeführt... Was nun? Andere Möglichkeit muss her...
mfg
moritz115
-
Schau was hiermit geschieht:
Woher kommt denn der Quelltext? Von einem Formular?PHP-Code:$text = <<< EOH
echo "Hey," . 'was geht ab?' . \$var;
EOH;
Geändert von ZodiacXP (18.04.10 um 12:42 Uhr)
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
18.04.10 12:37 #7moritz115 Tutorials.de Gastzugang
du musst nach EOH das Simikolon eine Zeile darunter machen!
EOH
;
Aber so funktionierts! SUPER!!
Jetzt nur noch die Frage. WIe mache ich das mit der oben generierten ID? Wie finde ich diese heraus?Geändert von moritz115 (18.04.10 um 13:09 Uhr)
-
18.04.10 13:40 #8
dann nimm wieder das <?php nicht mit dem ascii code.. und das ?>...
Vielleicht geht es dann...
Zu microtime.. nein es ist nicht möglich das jemand im mikrosekundenbereich gleichzeitig erstellt... außerdem macht der server die anfragen hintereinander
Mfg,
Daniel
Freue mich immer über "Danke!" und eine positive Bewertung ;)
Zitat von Procogx
-
18.04.10 13:43 #9moritz115 Tutorials.de Gastzugang
Hallo,
Dank für deine (eure) Hilfe
Also wie wäre dann genau der Code für microtime? So, dass der auch in der Datei abgespeichert werden würde? Verstehe noch nicht ganz. Brächte ein Beispiel. Google spuckt mir auch nichts verständliches aus
Also mit EHO möchte ich das machen...
mfg
moritz115Geändert von moritz115 (18.04.10 um 13:45 Uhr)
-
18.04.10 13:48 #10
1. Microtime_float:
2. Microtime:PHP-Code:<?php
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
// Die Skriptverarbeitung fuer einen bestimmten Zeitraum unterbrechen
usleep(100);
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "In $time Sekunden nichts getan\n";
?>
LGPHP-Code:<?php
$time = microtime();
echo $time; // Gibt die Zeit in Mikrosekunden aus
?>
DanielMfg,
Daniel
Freue mich immer über "Danke!" und eine positive Bewertung ;)
Zitat von Procogx
-
18.04.10 13:53 #11moritz115 Tutorials.de Gastzugang
Sry, aber das bringt mich immer noch nicht richtig weiter

Wie bekomme ich das jetzt hier in den Code gebaut?
Hier wird die ID erstellt:
PHP-Code:<?php
include("config.inc");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ("$db1") or die ("Datenbank nicht geöffnet!");
if ($_POST['shoutbox'] == "shoutbox")
{
//checkbox is checked
}
else
{
//checkbox isn't check
if(!empty($_POST['name']) || !empty($_POST['inhalt'])) {
$sqlbef = "INSERT INTO `$db`.`emp_page`
(`id` ,`name` ,`inhalt`,`geprueft`,`url`) VALUES ('','$_POST[name]','$_POST[inhalt]','no','www.pages.ein-mal-page.de/$_POST[name].php')";
$sqlerg = mysql_query($sqlbef) or die(mysql_error());
echo "Datensatz hinzugefügt!";
}
else
{
echo "Kein Datensatz hinzugefügt!";
}
Hier muss dann diese ID eingetragen werden:
PHP-Code:$text = <<< EOH
<?php
echo "Hey," . 'was geht ab?' . $var;
("SELECT Inhalt FROM wwp_page WHERE ID = 'ID HIER EINTRAGEN");
EOH
;
Aber das Problem ist dann, dass dies ja in EOH steht. Da musst man aufpassen
Aber das wichtigste ist das mit der Zeit und ID. Dann kann ich den rest glaube ich alleine
Wie geht das jetzt genau?
mfg und Danke!
moritz115Geändert von moritz115 (18.04.10 um 15:02 Uhr) Grund: Rechtschreibfehler
-
20.04.10 13:48 #12
Du speicherst die microtime in der db ab und in einer variable.... falls die seite neu geladen werden muss, schreibs in ein cookie rein,oder übertrage per POST variable
...
Dann vergleichst du die variablen und weißt wer der richtige war
Mfg,
Daniel
Freue mich immer über "Danke!" und eine positive Bewertung ;)
Zitat von Procogx
-
20.04.10 16:07 #13moritz115 Tutorials.de Gastzugang
Danke, bin ziemlich weit, aber da klappt etwas noch nicht. Ist die abfrage der ID von der microtime so richtig?
Vorher die time:
PHP-Code:$time = microtime();
PHP-Code:$microtime = "SELECT ID FROM wwp_page WHERE microtime = '$time'";
Ausführung von $microtime:
Ist das so richtig? Das letzte klappt noch nicht so ganz...PHP-Code:echo "SELECT ID FROM wwp_page WHERE microtime = '$time'"
Freue mich über Hilfe!
moritz115
-
20.04.10 16:11 #141. Fehlt das Semikolon: ; am ende...PHP-Code:
echo "SELECT ID FROM wwp_page WHERE microtime = '$time'"
2. Ist das nicht durch mysql_query und mysql_fetch_row(oder assoc, oder array, oder was auch immer du willst) verarbeitet...
3. Kannst du mysql code nicht einfach durch echo ausgeben... muss erst verarbeitet werden... -> Punkt 2
4. Wenn das nicht hilft würde ich noch sagen das du den string beendest und dann die variable ausgibst... bsp:5. Sonst musst du eine Fehlermeldung postenPHP-Code:"SELECT id FROM wwp_page WHERE microtime =' ".$time." '"

Hoffe es hat dir geholfen...
Lg
DanielMfg,
Daniel
Freue mich immer über "Danke!" und eine positive Bewertung ;)
Zitat von Procogx
-
20.04.10 16:17 #15moritz115 Tutorials.de Gastzugang
Hallo,
habe gerade deinen Beitrag gesehen und 2 sec. vorher das Problem gelöst
. Jetzt kommt aber "Resorce id #3" -.-
Wie bekomme ich das weg?
Habe hier im Forum schon einen Post gesehen:
Du mußt auch die Ergebnisse aus der Abfrage holen, z.B. mittels mysql_fetch_array().
Aber hier kommt eine Fehlermeldung
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Das selbe passiert mit mysql_fetch_object()
Bei folgendem Code:
Wenn ich dann $ergebnis per echo ausgeben lasse! Wie bekomme ich dieses Resource id weg? Ich möchte, dass da nur die ID steht...PHP-Code:$microtime = "SELECT ID FROM wwp_page WHERE microtime =' ".$time." '";
$ergebnis = mysql_query($microtime);
Noch eine Frage zur microtime. Diese ist ja jetzt in der mySQL Datenbank gespeichert. Sieht so aus: 0.08236500 1271772801 Ist hier auch der Tag vermerkt? Oder wenn morgen um genau die selbe Zeit dies jemand ausführt, gibt es diese Zeit für zwei ID's? Dann müsste ich die ja löschen. Wie ist das?
Danke
moritz115Geändert von moritz115 (20.04.10 um 16:31 Uhr) Grund: Fehler
Ähnliche Themen
-
XML AS-Code in Bild in MC schreiben?
Von gelaniee im Forum Flash PlattformAntworten: 19Letzter Beitrag: 04.07.09, 07:31 -
Per Add-In Code schreiben sehr langsam!?
Von GartenUmgraben im Forum .NET CaféAntworten: 2Letzter Beitrag: 22.04.08, 11:03 -
viele errechnete werte sofort in datei schreiben oder sammeln und dann schreiben?
Von larss im Forum JavaAntworten: 4Letzter Beitrag: 25.04.05, 22:15 -
VB Code in C++ schreiben(neue Zeile)
Von Stgt im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 18.11.04, 09:47 -
html code schreiben? wie?
Von MissMurphy im Forum HTML-EditorenAntworten: 8Letzter Beitrag: 20.09.02, 07:18





Zitieren
Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen