problem bei abfrage php 7

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • problem bei abfrage php 7

    Hallo,

    ich versuche gerade meine Projekte auf php 7 umzustellen. soweit hab ich mich reingelesen aber es schleichen sich scheinbar immer noch fehler bei mir ein. nun zu meiner Frage

    PHP-Code:
    <?php header("Content-type: text/xml"); echo "<?xml version='1.0' encoding='UTF-8' ?>"?>
    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel> 
    <?php
    include_once("config.inc.php");
    $db = new PDO('mysql:host=' $dbserver ';dbname=' $dbdata$dbuser$dbpass);
    ?>
        <title><?php echo ("$wstitel");?></title>
        <link><? print ("$wsurl");?></link>
        <description>URL Shortener</description>
        <language>de-de</language>
        <docs><? print ("$wsurl"); ?></docs>
        <generator>Rss Feed Engine</generator>
        <managingEditor><? print ("$wmemail"); ?></managingEditor>
        <webMaster><? print ("$wmemail"); ?></webMaster>
        <atom:link href="<? print ("$wsurl"); ?>/rss.php" rel="self" type="application/rss+xml" />
    <?php 
    $statement 
    $pdo->prepare("SELECT * FROM shortlinks");   
    while(
    $row $statement->fetch()) {
    ?>
    <item>
    <title><![CDATA[<? print ("$wsurl"); ?><?php echo "/u".$row['id']."".$row['kuc']."";?>]]></title>    
    <description><![CDATA[Projects:digmedien.de | scripte-download.com]]></description>
    <link><![CDATA[<?php echo "http://".$wsurl."/u".$row['id']."".$row['kuc']."";?>]]></link>   
    </item>
    <?php
    }
    ?>
    </channel>
    </rss>
    ich kann aber irgendwie die rss.php nicht aufrufen der geht sofort auf die Index zurück. sehe aber im code nicht wirklich einen Fehler vielleicht sehen ein zweites paar Augen mehr.

    die config sieht so aus:

    PHP-Code:
    $dbserver "localhost";
    $dbuser "xxx";
    $dbpass "xxx";
    $dbdata "xxx";
    $wstitel "xxx";
    $wssbttl "xxx";
    $wsurl "xxx";
    $wmemail "xxx"
    hoffe es kann jemand weiter helfen DANKE vorab

  • #2
    Wie ist denn dein error_reporting eingestellt?
    Mal im error.log nachgeschaut?

    Gruß
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Also im error.log steht garnichts und error_reporting ist auf all eingestellt, bringt mir nur nichts, da sich die datei nicht aufrufen lässt.

      Gruß Mirko

      Kommentar


      • #4
        Steht im Apache-Log was drin?
        Was steht in der confic.inc.php drin (DB-Daten ausgenommen)?

        Gruß
        Peter

        PS: lass diesen Blödsinn:
        PHP-Code:
        <?php echo ("$wstitel");?>
        Schreib einfach:
        PHP-Code:
        <?php echo $wstitel;?>
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Auf den Apache Log hab ich Seitens des Providers keinen Zugriff.

          In der config steht nur das was oben steht mehr nicht.

          Ja für das andere suche ich noch ne Lösung wstitel

          Gruß Mirko

          Kommentar


          • #6
            Hast du kein lokales System zum Testen? Dann installier dir doch zumindest mal einen XAMPP. Direkt auf dem Server vom Provider zu entwicklen, ist nicht so pralle.

            Gruß
            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              xampp hab ich drauf müsste ich mal gerade testen und dann melde ich mich nochmal.

              Gruß Mirko

              Kommentar


              • #8
                Umstellung auf php 7

                Hallo,

                also das vorhergehnde Problem konnte ich lösen. Jetzt hab ich nen anderes
                PHP-Code:
                <?php
                $uploadActive 
                'active';
                include(
                'header.php');
                if(!isset(
                $_SESSION['profile2']))
                {
                    
                session_destroy();
                    
                header('location:'.$url.'login');
                    exit();
                }
                if(
                $my_role 1)
                {
                    
                header('location:'.$url);
                    exit();
                }
                $action=$_GET['action']; $id=$_GET['id'];
                if (
                $action=='2') {
                $inhalt=$_POST['inhalt'];
                $inhalt =  ereg_replace("&""&amp;"$inhalt);
                $inhalt str_replace(array("ä","ö","ü","Ä","Ö","Ü","ß"),array("&auml;","&ouml;","&uuml;","&Auml;","&Ouml;","&Uuml;","&szlig;"),$inhalt);
                $sql $bdd->prepare("UPDATE pdd_texte SET pdd_txtcontent = '$inhalt' WHERE pdd_txtid = '$id'");
                $insert_yes $sql->execute(array($mode));
                }

                if (
                $id=='1') { $header="Impressum"; }
                if (
                $id=='2') { $header="Datenschutz"; }
                if (
                $id=='3') { $header="Widerrufsrecht"; }

                $sql $bdd->query("SELECT * FROM pdd_texte WHERE pdd_txtid = '$id'");
                while(
                $row $sql->fetch(PDO::FETCH_ASSOC)) {
                $pdd_txtid $row['pdd_txtid'];
                $pdd_txtcontent $row['pdd_txtcontent'];
                ?>
                <tr><td class="tdcont">Text &auml;ndern - <?php echo $header?></td></tr>
                <tr><td>&nbsp;</td></tr>
                <tr><td>
                <table width=690 border=0 cellpadding=0 cellspacing=0>
                <form action="texte.php?action=2&id=<?php echo $id?>" method="POST">
                <tr><td align=center><textarea name="inhalt" rows="25" cols="46" style="width:560px;"><?php echo $pdd_txtcontent?></textarea></td></tr>
                <tr><td>&nbsp;</td></tr>
                <tr><td align=center><input type="submit" name="update" value="Text &auml;ndern" style="width:560px;" class="bt"></td></tr>
                </form>
                </table>
                </td></tr>
                <?php
                }
                include(
                "footer.php");
                ?>
                Das ist mein Code umgestellt auf php7 er gibt mir keinerlei Fehlermeldung aber gibt auch nichts aus ne Vermutung habe ich
                1.
                PHP-Code:
                $sql $bdd->prepare("UPDATE pdd_texte SET pdd_txtcontent = '$inhalt' WHERE pdd_txtid = '$id'"); 
                2.
                PHP-Code:
                $sql $bdd->query("SELECT * FROM pdd_texte WHERE pdd_txtid = '$id'"); 
                das Problem ist
                PHP-Code:
                '$id' 
                wo liegt da mein Fehler?

                Danke schon mal vorab für Tipps

                Kommentar


                • #9
                  Umstellung auf php 7 teilweise gelöst

                  So konnte einiges selber lösen und hab derbe abgespeckt an Code.
                  PHP-Code:
                  if(isset($_POST['pdd_txtcontent']))
                                      {
                                          
                  $pdd_txtcontent strip_tags(htmlspecialchars($_POST['pdd_txtcontent']));
                  $sql $bdd->prepare('UPDATE pdd_texte SET pdd_txtcontent = '.$pdd_txtcontent.' WHERE pdd_txtid = '.$pdd_txtid.'');
                  $insert_yes $sql->execute(array($pdd_txtcontent));
                  if(
                  $insert_yes)
                                          {
                                              echo 
                  '<div class="alert alert-success" role="alert">gespeichert.</div>';
                                          }
                                      } 
                  PHP-Code:
                  <table width=690 border=0 cellpadding=0 cellspacing=0>
                  <form action="texte.php?=<?php echo $pdd_txtid?>" method="POST">
                  <tr><td align=center><textarea name="pdd_txtcontent" rows="25" cols="46" style="width:560px;"><?php echo $pdd_txtcontent?></textarea></td></tr>
                  <tr><td>&nbsp;</td></tr>
                  <tr><td align=center><input type="submit" name="update" value="Text &auml;ndern" style="width:560px;" class="bt"></td></tr>
                  </form>
                  </table>
                  einziges Problem noch obige Update Funktion läuft nicht und ich übersehe was Frage ist WAS?

                  Kommentar


                  • #10
                    strip_tags() und htmlspecialchars() hat bei Datenbankabfragen nichts verloren.

                    Und du beachtest den Kontextwechsel nach SQL nicht. Werte sollten nicht direkt in SQL-Code eingefügt werden. Beschäftige dich mal damit, wie Prepared Statements funktionieren.

                    Das Zeug mit ereg_replace() und str_replace() ist auch für die Tonne.

                    Und es gibt keinen Grund Umlaute zu verst&uuml;mmeln.

                    Kommentar


                    • #11
                      Umstellung auf php 7 teilweise gelöst

                      Zitat von h3ll Beitrag anzeigen
                      strip_tags() und htmlspecialchars() hat bei Datenbankabfragen nichts verloren.

                      Und du beachtest den Kontextwechsel nach SQL nicht. Werte sollten nicht direkt in SQL-Code eingefügt werden. Beschäftige dich mal damit, wie Prepared Statements funktionieren.

                      Das Zeug mit ereg_replace() und str_replace() ist auch für die Tonne.

                      Und es gibt keinen Grund Umlaute zu verst&uuml;mmeln.
                      Das Zeugs hab ich alles schon raus genommen der neue Code sieht jetzt komplett so aus:

                      PHP-Code:
                      <?php 
                      ini_set
                      ('display_errors'1);
                      error_reporting(E_ALL);
                      $uploadActive 'active';
                      include(
                      'header.php');
                      if(!isset(
                      $_SESSION['profile2']))
                      {
                          
                      session_destroy();
                          
                      header('location:'.$url.'login');
                          exit();
                      }
                      if(
                      $my_role 1)
                      {
                          
                      header('location:'.$url);
                          exit();
                      }
                      $pdd_txtcontent = ($_POST['pdd_txtcontent']);
                      $sql_insert $bdd->prepare('INSERT INTO pdd_texte (pdd_txtcontent) VALUES (?)');
                                      
                      $insert_ok $sql_insert->execute(array($pdd_txtcontent));
                                      if(
                      $insert_ok)
                                              {
                                                  echo 
                      '<div class="alert alert-success" role="alert">gespeichert.</div>';
                                              }
                      $sql $bdd->query('SELECT * FROM pdd_texte WHERE pdd_txtid');
                      while(
                      $row $sql->fetch(PDO::FETCH_ASSOC)) {
                      $pdd_txtid $row['pdd_txtid'];
                      $pdd_txtcontent $row['pdd_txtcontent'];
                      if (
                      $pdd_txtid == 1){ $header='Impressum'; }
                      if (
                      $pdd_txtid == 2){ $header='Datenschutz'; }
                      if (
                      $pdd_txtid == 3){ $header='Widerrufsrecht'; }
                      ?>
                      <tr><td class="tdcont">Text &auml;ndern - <?php echo $header?></td></tr>
                      <tr><td>&nbsp;</td></tr>
                      <tr><td>
                      <table width=690 border=0 cellpadding=0 cellspacing=0>
                      <form action="texte.php?=<?php echo $pdd_txtid?>" method="POST">
                      <tr><td align=center><textarea name="pdd_txtcontent" rows="25" cols="46" style="width:560px;"><?php echo $pdd_txtcontent?></textarea></td></tr>
                      <tr><td>&nbsp;</td></tr>
                      <tr><td align=center><input type="submit" name="update" value="Text &auml;ndern" style="width:560px;" class="bt"></td></tr>
                      </form>
                      </table>
                      </td></tr>
                      <?php
                      }
                      include(
                      "footer.php");
                      ?>
                      Mein Problem ist ja das die id für den Eintrag schon gegben ist und er soll ja nur die angegebene Spalte durch neuen Text ersetzen.
                      Ich vermute ja das diese das Problem ist

                      PHP-Code:
                      <form action="texte.php?=<?php echo $pdd_txtid?>" method="POST">
                      Fehlermeldung ist entsprechend Notice: Undefined index: pdd_txtcontent in /home/webpages/lima-city/phppower/default-website/texte.php on line 17

                      und bezieht sich auf
                      PHP-Code:
                      $pdd_txtcontent = ($_POST['pdd_txtcontent']); 
                      aber meines erachtens müßte das richtig sein

                      oder ich stehe hier völlig auf dem Schlauch

                      Kommentar


                      • #12
                        Das $_POST-Array ist nur befüllt, wenn das Formular abgeschickt wurde.

                        Kommentar


                        • #13
                          Umstellung auf php 7 teilweise gelöst

                          Zitat von h3ll Beitrag anzeigen
                          Das $_POST-Array ist nur befüllt, wenn das Formular abgeschickt wurde.
                          mir ist selber grad noch ein Fehler aufgefallen. Nach dem obigen Code legt er einen neuen Datensatz an und das soll ja garnicht.

                          es müsste so eigentlich aussehen und damit wäre die Fehlermeldung schon mal weg
                          PHP-Code:
                          <?php 
                          ini_set
                          ('display_errors'1);
                          error_reporting(E_ALL);
                          $uploadActive 'active';
                          include(
                          'header.php');
                          if(!isset(
                          $_SESSION['profile2']))
                          {
                              
                          session_destroy();
                              
                          header('location:'.$url.'login');
                              exit();
                          }
                          if(
                          $my_role 1)
                          {
                              
                          header('location:'.$url);
                              exit();
                          }
                          if(isset(
                          $_POST['pdd_txtcontent']))
                                              {
                                                  
                          $pdd_txtcontent = ($_POST['pdd_txtcontent']);
                                                  
                          $sql $bdd->prepare('UPDATE pdd_texte SET pdd_txtcontent = ?');
                                                  
                          $insert_yes $sql->execute(array($pdd_txtcontent));
                                                  if(
                          $insert_yes)
                                                  {
                                                      echo 
                          '<div class="alert alert-success" role="alert">gespeichert.</div>';
                                                  }
                                              }

                          $sql $bdd->query('SELECT * FROM pdd_texte WHERE pdd_txtid');
                          while(
                          $row $sql->fetch(PDO::FETCH_ASSOC)) {
                          $pdd_txtid $row['pdd_txtid'];
                          $pdd_txtcontent $row['pdd_txtcontent'];
                          if (
                          $pdd_txtid == 1){ $header='Impressum'; }
                          if (
                          $pdd_txtid == 2){ $header='Datenschutz'; }
                          if (
                          $pdd_txtid == 3){ $header='Widerrufsrecht'; }
                          ?>
                          <tr><td class="tdcont">Text &auml;ndern - <?php echo $header?></td></tr>
                          <tr><td>&nbsp;</td></tr>
                          <tr><td>
                          <table width=690 border=0 cellpadding=0 cellspacing=0>
                          <form action="<?php echo $_SERVER['PHP_SELF']?>?=<?php echo $pdd_txtid?>" method="POST">
                          <tr><td align=center><textarea name="pdd_content" rows="25" cols="46" style="width:560px;"><?php echo $pdd_txtcontent?></textarea></td></tr>
                          <tr><td>&nbsp;</td></tr>
                          <tr><td align=center><input type="submit" name="update" value="Text &auml;ndern" style="width:560px;" class="bt"></td></tr>
                          </form>
                          </table>
                          </td></tr>
                          <?php
                          }
                          include(
                          "footer.php");
                          ?>
                          das mit dem action hab ich mal so geändert:
                          PHP-Code:
                          <form action="<?php echo $_SERVER['PHP_SELF']?>?=<?php echo $pdd_txtid?>" method="POST">
                          aber es zeigt nicht die Wirkung er speichert nicht das Update

                          die Datenbank sieht so aus:
                          PHP-Code:
                          CREATE TABLE IF NOT EXISTS `pdd_texte` (
                            `
                          pdd_txtidint(10unsigned NOT NULL auto_increment,
                            `
                          pdd_txtcontentlongtext collate utf8_unicode_ci NOT NULL,
                            
                          PRIMARY KEY  (`pdd_txtid`)
                          ); 
                          die txtid ist fest vorgegeben und soll immer die gleiche bleiben. Nur der txtconent so geupdatet werden.
                          Was mache ich da falsch?

                          Kommentar


                          • #14
                            Umstellung auf php 7 gelöst

                            Zitat von h3ll Beitrag anzeigen
                            Das $_POST-Array ist nur befüllt, wenn das Formular abgeschickt wurde.

                            Danke, konnte es mit deiner Hilfe nun doch lösen.

                            Kommentar

                            Lädt...
                            X