Jump to content
powie.de Tech Forum
Sign in to follow this  
stormfighter

PHP Code aus Textarea in Mysql Datenbank geht nicht!

Recommended Posts

Ich habe folgenden langen Code:

if(isset($_GET['do'])) 
{
 $do=$_GET['do'];
} else {
 $do='index';
}
If ($do == "index")
 {
   echo"


             Link


             Titel


             Bearbeiten


         ";
   $abfrage = "SELECT id, seite, titel FROM scs_seiten";
   $ergebnis = mysql_query($abfrage);
   while(list($id, $seite, $titel) = mysql_fetch_row($ergebnis))
     {
       echo"

               $seite


               $titel







       ";
     }
   echo"";
 } 
elseIf ($do == "del")
 {
   if(isset($_GET['id'])) 
     {
       $id=$_GET['id'];
       $abfrage = "SELECT id FROM scs_seiten WHERE id = '$id'";
       $ergebnis = mysql_query($abfrage);
       list($testid) = mysql_fetch_row($ergebnis);
       If($testid == $id)
         {
           $loeschen = "DELETE FROM scs_seiten WHERE id = '$id'";
           $loesch = mysql_query($loeschen);
           echo"Seite erfolgreich gelöscht!
Zur Übersicht";
         } else {
           echo"Sie sind einem falschen Link gefolgt!";
         }
     } else {
       echo"Sie sind einem falschen Link gefolgt!";
     }
 }
elseIf ($do == "delbest")
 {
   if(isset($_GET['id'])) 
     {
       $id=$_GET['id'];
       echo"
             Sind Sie sicher das sie diese Seite löschen wollen?


                  Ja


                   Nein



             ";
     } else {
       echo"Sie sind einem falschen Link gefolgt!";
     }
 }
elseIf ($do == "edit")  
 {
   if(isset($_GET['id'])) 
     {
       $id=$_GET['id'];
       $abfrage = "SELECT seite, titel, inhalt, code FROM scs_seiten WHERE id = '$id'";
       $ergebnis = mysql_query($abfrage);
       list($seite, $titel, $inhalt, $code) = mysql_fetch_row($ergebnis);
       echo" 



                  Link:



                   Titel:





                   Code:
html 
                                  php 




                   "; echo htmlentities($inhalt); echo"









             ";
     } else {
       echo"Sie sind einem falschen Link gefolgt!";
     }
 }
elseIf ($do == "editein")
 {
   if((isset($_GET['id'])) && ($_GET['id'] != ""))
     {
       $id=$_GET['id'];
   if((isset($_POST['seite'])) && ($_POST['seite'] != "")) 
     {
       $seite=$_POST['seite'];
       if(isset($_POST['code'])) 
         {
           $code=$_POST['code'];
           If (($_POST['code'] == "html") || ($_POST['code'] == "php"))
             {
               if(isset($_POST['titel'])) 
                 {
                  $titel=$_POST['titel'];
                   if(isset($_POST['inhalt'])) 
                     {
                       $inhalt=$_POST['inhalt'];
                       $aendern = "UPDATE scs_seiten Set seite = '$seite', code = '$code', inhalt = '$inhalt', titel = '$titel' WHERE id = '$id'";

                       $update = mysql_query($aendern);
                       echo"Seite erfolgreich editiert!
Zur Übersicht";
                    } else {
                      $inhalt="";
                   }
               } else {
                 $titel="";
               }
           } else {
              echo"Bitte wählen Sie einen Code aus!";
               }
         } else {
           echo"Code Problem!";
         }
       } else {
         echo"Bitte geben Sie einen Link ein!";
       }
     } else {
       echo"Sie sind einem falschen Link gefolgt!";
     }
 }

elseif ($do == "new")
 {
   echo" 



               Link:



               Titel:





                Code:
html 
                               php 




                "; echo htmlentities($inhalt); echo"









          ";
 }
elseIf($do == "newein")
 {
   if((isset($_POST['seite'])) && ($_POST['seite'] != "")) 
     {
       $seite=$_POST['seite'];
       if(isset($_POST['code'])) 
         {
           $code=$_POST['code'];
           If (($_POST['code'] == "html") || ($_POST['code'] == "php"))
             {
               if(isset($_POST['titel'])) 
                 {
                  $titel=$_POST['titel'];
                   if(isset($_POST['inhalt'])) 
                     {
                       $inhalt=$_POST['inhalt'];
                      $eintrag = "INSERT INTO scs_seiten (seite, code, titel, inhalt) VALUES ('$seite', '$code', '$titel', '$inhalt')";
                      $eintragen = mysql_query($eintrag);
                      echo"Seite erfolgreich erstellt!
Zur Übersicht";
                    } else {
                      $inhalt="";
                   }
               } else {
                 $titel="";
               }
           } else {
              echo"Bitte wählen Sie einen Code aus!";
               }
         } else {
           echo"Code Problem!";
         }
     } else {
       echo"Bitte geben Sie einen Link ein!";
     }
 } else {
   echo"Sie sind einem falschen Link gefolgt!";
 }

Dieser Code ist dazu da alle Seiten aus der datenbank auszulesen diese zu ändern, löschen und neue zu erstellen.

Das funktioniert auch alles super gut ABER:

Wenn ich nun eine Seite erstellen möchte z.B. mit dem Code oben dann funktioniert da snicht!

Die Datenbank gibt den folgenden Error zurück:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'do'])) { $do=$_GET['do']; } else { $do='index'; } If ($do == "inde' at line 1

Wenn ich aber ganz normalen html code ändern möchte dann ist alles kein problem. Und nun das interressanteste! Wenn ich mir

$aendern = "UPDATE scs_seiten Set seite = '$seite', code = '$code', inhalt = '$inhalt', titel = '$titel' WHERE id = '$id'";

ausgeben lasse mit

echo $aendern;

also das einfach unter die datenbankänderungsvariable schreibe, dann geht alles auf einmal!

Ich bin hilflos und verstehe nix mehr!

Bitte helft mir^^

Mfg Maxi

Share this post


Link to post
Share on other sites

jepp...


es ist off, somit musst du alle Variablen die du später verwenden willst zum Beispiel mit der php Funktion


addslashes()


bearbeiten.

Share this post


Link to post
Share on other sites

Ich handhabe das immer so dass ich im Skript abfrage ob magic_quotes_gpc ein oder aus ist und dementsprechend führe ich dann ein strippslashes() aus oder nicht.

Bevor ich die Daten dann in die MySQL-DB schreibe führe ich ein mysql_real_escape_string() aus.

Selbiges gilt für magic_quotes_runtime.


Warum?

mysql_real_escape_string() macht mehr als magic_quotes oder ein addslashes() (siehe Manual).

Und ich brauch mich beim einrichten nicht darum kümmern ob magic_quotes nun On oder Off ist :-D



Nur so als Tipp ;-)

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×