tutorials.de Buch-Aktion 02/2012
Seite 1 von 3 123 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
33
ZUGRIFFE
841
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    moritz115 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 DatenbankVON DER ID, DIE GERADE OBEN ERSTELLT WURDE AUSGEGEBEN WERDENABER NICHT ABGESPEICHERT WERDENSONDERN BEI JEDEM AUFRUFEN DER ERSTELLTEN PHP-DATEI NEU ABGERUFEN WERDENUNGEFÄ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.
    moritz115
    Geändert von moritz115 (18.04.10 um 11:19 Uhr) Grund: Rechtschreibfehler
     

  2. #2
    Avatar von Daniel0108
    Daniel0108 Daniel0108 ist offline Mitglied Silber
    Registriert seit
    Jan 2010
    Ort
    Österreich
    Beiträge
    85
    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: &lt;
    Dann erkennt PHP es nicht als PHP code und schreibt es hinein
    Hoffe ich konnte helfen,
    Lg
    Daniel
     

  3. #3
    moritz115 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
     

  4. #4
    Avatar von Daniel0108
    Daniel0108 Daniel0108 ist offline Mitglied Silber
    Registriert seit
    Jan 2010
    Ort
    Österreich
    Beiträge
    85
    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
     

  5. #5
    moritz115 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 "&lt;?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
    
    &lt;?php
     
    echo date("j-M-Y, l");
     
    ?&#x9B;



    Es wird einfach als text gewertet Nicht als PHP code ausgeführt... Was nun? Andere Möglichkeit muss her...
    mfg
    moritz115
     

  6. #6
    Registriert seit
    Mar 2004
    Beiträge
    1.853
    Blog-Einträge
    2
    Schau was hiermit geschieht:

    PHP-Code:
    $text = <<< EOH

    echo "Hey," . 'was geht ab?' . \$var;

    EOH; 
    Woher kommt denn der Quelltext? Von einem Formular?
    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)

  7. #7
    moritz115 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)
     

  8. #8
    Avatar von Daniel0108
    Daniel0108 Daniel0108 ist offline Mitglied Silber
    Registriert seit
    Jan 2010
    Ort
    Österreich
    Beiträge
    85
    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 Zitat von Procogx
    Programming is everything!

  9. #9
    moritz115 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
    moritz115
    Geändert von moritz115 (18.04.10 um 13:45 Uhr)
     

  10. #10
    Avatar von Daniel0108
    Daniel0108 Daniel0108 ist offline Mitglied Silber
    Registriert seit
    Jan 2010
    Ort
    Österreich
    Beiträge
    85
    1. Microtime_float:
    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";
    ?>
    2. Microtime:
    PHP-Code:
    <?php
    $time 
    microtime(); 
    echo 
    $time// Gibt die Zeit in Mikrosekunden aus
    ?>
    LG
    Daniel
     
    Mfg,
    Daniel

    Freue mich immer über "Danke!" und eine positive Bewertung ;)

    Zitat Zitat von Procogx
    Programming is everything!

  11. #11
    moritz115 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!
    moritz115
    Geändert von moritz115 (18.04.10 um 15:02 Uhr) Grund: Rechtschreibfehler
     

  12. #12
    Avatar von Daniel0108
    Daniel0108 Daniel0108 ist offline Mitglied Silber
    Registriert seit
    Jan 2010
    Ort
    Österreich
    Beiträge
    85
    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 Zitat von Procogx
    Programming is everything!

  13. #13
    moritz115 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:

    PHP-Code:
    echo  "SELECT ID FROM wwp_page WHERE microtime = '$time'" 
    Ist das so richtig? Das letzte klappt noch nicht so ganz...


    Freue mich über Hilfe!
    moritz115
     

  14. #14
    Avatar von Daniel0108
    Daniel0108 Daniel0108 ist offline Mitglied Silber
    Registriert seit
    Jan 2010
    Ort
    Österreich
    Beiträge
    85
    PHP-Code:
    echo  "SELECT ID FROM wwp_page WHERE microtime = '$time'" 
    1. Fehlt das Semikolon: ; am ende...
    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:
    PHP-Code:
    "SELECT id FROM wwp_page WHERE microtime =' ".$time." '" 
    5. Sonst musst du eine Fehlermeldung posten
    Hoffe es hat dir geholfen...
    Lg
    Daniel
     
    Mfg,
    Daniel

    Freue mich immer über "Danke!" und eine positive Bewertung ;)

    Zitat Zitat von Procogx
    Programming is everything!

  15. #15
    moritz115 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:


    PHP-Code:
    $microtime "SELECT ID FROM wwp_page WHERE microtime =' ".$time." '";
    $ergebnis mysql_query($microtime); 
    Wenn ich dann $ergebnis per echo ausgeben lasse! Wie bekomme ich dieses Resource id weg? Ich möchte, dass da nur die ID steht...



    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
    moritz115
    Geändert von moritz115 (20.04.10 um 16:31 Uhr) Grund: Fehler
     

Ähnliche Themen

  1. XML AS-Code in Bild in MC schreiben?
    Von gelaniee im Forum Flash Plattform
    Antworten: 19
    Letzter Beitrag: 04.07.09, 07:31
  2. Per Add-In Code schreiben sehr langsam!?
    Von GartenUmgraben im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 22.04.08, 11:03
  3. Antworten: 4
    Letzter Beitrag: 25.04.05, 22:15
  4. VB Code in C++ schreiben(neue Zeile)
    Von Stgt im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 18.11.04, 09:47
  5. html code schreiben? wie?
    Von MissMurphy im Forum HTML-Editoren
    Antworten: 8
    Letzter Beitrag: 20.09.02, 07:18