• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mysql eintrag fehler?

Status
Für weitere Antworten geschlossen.

wolf360

Neues Mitglied
Hallo,

hey ich hab mir so eine kleinen admin bereicht gmacht hier mal ein kleiner auszug zum thema profil:

PHP:
$t = "SELECT * FROM `animelogin` WHERE `passwort` = '".$passwortl."'";
            $value = mysql_query($t);
            $daten = mysql_fetch_object($value);

            $vname = $daten->realname;
            $vfanime = $daten->fanime;
            $vemail = $daten->email;

            echo '
              <table>
                <form method="post">
                 <tr>
                    <td>Real Name:</td>
                    <td><input name="realname" type="text" value='.$vname.'></td>
                 </tr>
                 <tr>
                    <td>Lieblings Anime:</td>
                    <td><input name="fanime" type="text" value='.$vfanime.'></td>
                 </tr>
                 <tr>
                    <td>E-mail:</td>
                    <td><input name="email" type="text" value='.$vemail.'></td>
                 </tr>
                 <tr>
                    <td>Alter</td>
                    <td>';
               echo' <select name="alter">';
                  for($i = 0; $i <= 100; $i++){
                    echo '<option value="'.$i.'">'.$i.'</option>\n';
                    }

               echo'  </select>';


               echo'  <td>
                     </tr>
                     <tr>
                       <td><input name="speichern" type="submit" value="Speichern"></td>
                     </tr>
                     </form>
                </table>';
              if(isset($_POST['speichern'])){
                $aendern = "UPDATE `animelogin` Set
                                           `realname` = '".$_POST['realname']."',
                                           `fanime` = '".$_POST['fanime']."',
                                           `email` = '".$_POST['email']."',
                                           `alter` = '".$_POST['alter']."'
                                           WHERE `passwort` = '".$passwortl."'";
                $aenderung = mysql_query ($aendern);
              }

etz zum problem:

ich habe ja gmacht, das Felder also Value den eintrag aus der Mysql datenbank nehmen... okey wenn ich aber was ändern will löscht er mir alle zeichen nach einem leerschritt, ich weiß blos nicht warum..?!

z.B.

wenn ich etz als Real Name Max Mustermann eingebn würde gibt der mir nur Max aus, in der Mysql tabelle steht auch nur Max obwohl Max Mustermann eingegebn wurde?!

könnt ihr mir sagn was ich falsch gemacht hab ?
 
TEXT ist doch viel zu groß...nimm VARCHAR(100), das reicht.

anstatt mit mysql_fetch_object() kannst dus noch mit mysql_fetch_array() versuchen. dazu muss allerdings etwas geändert werden:

PHP:
<?php
$value = mysql_query($t);
            $daten = mysql_fetch_object($value);

            $vname = $daten->realname;
            $vfanime = $daten->fanime;
            $vemail = $daten->email;

//wird zu

$value = mysql_query($t);
            $daten = mysql_fetch_array($value);

            $vname = $daten['realname'];
            $vfanime = $daten['fanime'];
            $vemail = $daten['email']; 
?>

Nils aka XraYSoLo
 
des immernoch der gleiche fehler...!! mittlerweile steht zwar in der mysqlzeile der richte name aber ausgen tut er immernoch nur Max... -.-"
 
Hallo,

erstmal kannst Du beruhigt Dein Feld auf VarChar(255) setzen. Der Vorteil von einem Variablen CharArray ist das nur soviel Speicher verbraucht wird, wie auch benötigt wird.

Hast Du Dir mal den Query ausgeben lassen ?!

Also in dieser Art ...

PHP:
<?php
  $t = "SELECT * FROM `animelogin` WHERE `passwort` = '".$passwortl."' ";
  
  echo "Query : ".$t."\n\r";
  
  $value = mysql_query($t);
  
  $daten = mysql_fetch_object($value);

  echo "Name : ".$daten->realname."\n\r";
  echo "Fantime : ".$daten->fanime."\n\r";
  echo "E-Mail : ".$daten->email."\n\r";
 
  $vname = $daten->realname;
  $vfanime = $daten->fanime;
  $vemail = $daten->email;
  
?>

Dann schau mal was er da ausgibt !
 
Query : SELECT * FROM `animelogin` WHERE `passwort` = '0d650e867a64ff3c44c343a4a46f4cc4' Name : Max Mustermann

da ist die richtige ausgabe?!

da is aber auch das gleiche problem sobald ich die ausgabe in das Value von nem Feld packe?!


ooooooooomg.... das is so frustrierend... ich hab den fehler gefunden...

ich hab bei dem value immer das " vergessen.... und schon klappte es.... lol!!!!

ich bedanke mich für eure hilfe!!!

gruß wolf360
 
hey, ich hab mal wieder ein problem im script, ich wollte eigentlich machn das das nach einer änderung die seite neu geladn wird, damit die änderunge auch für den user sichtbar sind, deswegn hab ich am am schluss des eingefügt:

PHP:
header ("Location: animeuser.php?do=profil");

aber da kommt der fehler:

Warning: Cannot modify header information - headers already sent by (output started at /usr/export/www/vhosts/funnetwork/hosting/wolf360/animeuser.php:98) in /usr/export/www/vhosts/funnetwork/hosting/wolf360/animeuser.php on line 120

was hab ich falsch gmacht ?!

hier mal das ganz script teil wieder:

PHP:
 case 'profil':

            $t = "SELECT * FROM `animelogin` WHERE `passwort` = '".$passwortl."'";
            $value = mysql_query($t);
            $daten = mysql_fetch_array($value);

            $vname = $daten['realname'];
            $vfanime = $daten['fanime'];
            $vemail = $daten['email'];


            echo '
              <table>
                <form method="post">
                 <tr>
                    <td>Real Name:</td>
                    <td><input name="realname" type="text" value="'.$vname.'"></td>
                 </tr>
                 <tr>
                    <td>Lieblings Anime:</td>
                    <td><input name="fanime" type="text" value="'.$vfanime.'"></td>
                 </tr>
                 <tr>
                    <td>E-mail:</td>
                    <td><input name="email" type="text" value="'.$vemail.'"></td>
                 </tr>
                 <tr>
                    <td>Alter</td>
                    <td>';
               echo' <select name="alter">';
                  for($i = 0; $i <= 100; $i++){
                    echo '<option value="'.$i.'">'.$i.'</option>\n';
                    }

               echo'  </select>';


               echo'  <td>
                     </tr>
                     <tr>
                       <td><input name="speichern" type="submit" value="Speichern"></td>
                     </tr>
                     </form>
                </table>';
              if(isset($_POST['speichern'])){
                $aendern = "UPDATE `animelogin` Set
                                           `realname` = '".$_POST['realname']."',
                                           `fanime` = '".$_POST['fanime']."',
                                           `email` = '".$_POST['email']."',
                                           `alter` = '".$_POST['alter']."'
                                           WHERE `passwort` = '".$passwortl."'";
                $aenderung = mysql_query ($aendern);

                header ("Location: animeuser.php?do=profil");
              }

         break;

gruß wolf360
 
aber der soll doch erst nach dem eintrag die seite neuladn, wenn ich des ja vor dem eintrag mach, wird der eintrag ja nicht gemacht oder ?
 
und wieso klappt des dann hier :

PHP:
if(empty($_POST['text'])){
          echo "Bitte was eintragen";
        }
        else{
        $eintragen = "INSERT INTO `forumeintraege` (`eintrag`, `benutzer`) VALUES ('".$text."','".$_SESSION['username']."')";
        $eintrag = mysql_query($eintragen);
         header("Location:".$_SERVER['PHP_SELF']."");
        }
      }
      else{
        echo "Du musst ich erst einloggn";
      }

das is ja das gleiche prinzip
 
mach' mal den eintrag als letzte möglichkeit der abfrage und setz' nach dem header noch das exit.

Nils aka XraYSoLo
 
also des schaut etz so aus, aber es is immernoch der selbe fehler:

PHP:
if(isset($_POST['speichern'])){
                $aendern = "UPDATE `animelogin` Set
                                           `realname` = '".$_POST['realname']."',
                                           `fanime` = '".$_POST['fanime']."',
                                           `email` = '".$_POST['email']."',
                                           `alter` = '".$_POST['alter']."'
                                           WHERE `passwort` = '".$passwortl."'";
                $aenderung = mysql_query ($aendern);

                header ("Location: animeuser.php?do=profil");
                exit();
              }

micht wuderst ja nur das es hier nicht geht, ich hab des etz in mehreren von meine scripten so gemacht und hat immer 1a funktioneiert?!
 
hier mal das ganze script:

PHP:
<?php
    include("verbindunganime.php");
    session_start();



   $passwortl = $_SESSION['benutzer'];
   if(isset($_SESSION['benutzer'])){
       $pruefen = "SELECT * FROM `animelogin` WHERE `passwort` = '".$passwortl."'";
       $pruefung = mysql_query($pruefen);
       $richtigkeit = mysql_num_rows($pruefung);
       if($richtigkeit == 1){
         echo "Wilkommen, was willst du tun?<br>";
         echo '<a href="animeuser.php?do=neuesvideo">Neues video reinstelln?</a><br>';
         echo '<a href="animeuser.php?do=meinevids">Meine Vids</a><br>';
         echo '<a href="animeuser.php?do=profil">Profil</a><br>';
         echo '<a href="animeuser.php?do=logout">Logout</a><br>';



          $test = mysql_fetch_object($pruefung);
          $name = $test->nickname;
          $suche = array (" ");
          $ersetzen = array ("_");
          $neuertext = str_replace($suche,$ersetzen, $name);

          switch($_GET['do'])
         {
         case 'neuesvideo':
             echo'<form method="post">
                  <input name="video" rows="3" cols="20"><br>
                  <input name="submitv" type="submit">
                  </form>';
                    if(isset($_POST['submitv'])){
          if(!empty($_POST['video'])){
             mysql_select_db("wolf360_04");


             $video = "INSERT INTO `".$neuertext."` (`videos`) VALUES ('".$_POST['video']."')";
             $videintrag = mysql_query($video);
             echo "Eintrag hat geklappt";
          }
          else{
            echo "Musst scho was eintragen";
          }
        }
         break;

         case 'logout':
            unset($_SESSION['benutzer']);
            echo "Sie wurden erfolgreich ausgeloggt";
            echo '<meta http-equiv="Refresh" content="3;url=anime.php" />';
         break;

         case 'meinevids':
             mysql_select_db("wolf360_04");
             $abfrage = "SELECT * FROM `".$neuertext."`";
             $abfragen = mysql_query($abfrage);

             while($spalte = mysql_fetch_assoc($abfragen)){
                echo $spalte['videos']."<p>";
             }

         break;

         case 'profil':

            $t = "SELECT * FROM `animelogin` WHERE `passwort` = '".$passwortl."'";
            $value = mysql_query($t);
            $daten = mysql_fetch_array($value);

            $vname = $daten['realname'];
            $vfanime = $daten['fanime'];
            $vemail = $daten['email'];


            echo '
              <table>
                <form method="post">
                 <tr>
                    <td>Real Name:</td>
                    <td><input name="realname" type="text" value="'.$vname.'"></td>
                 </tr>
                 <tr>
                    <td>Lieblings Anime:</td>
                    <td><input name="fanime" type="text" value="'.$vfanime.'"></td>
                 </tr>
                 <tr>
                    <td>E-mail:</td>
                    <td><input name="email" type="text" value="'.$vemail.'"></td>
                 </tr>
                 <tr>
                    <td>Alter</td>
                    <td>';
               echo' <select name="alter">';
                  for($i = 0; $i <= 100; $i++){
                    echo '<option value="'.$i.'">'.$i.'</option>\n';
                    }

               echo'  </select>';


               echo'  <td>
                     </tr>
                     <tr>
                       <td><input name="speichern" type="submit" value="Speichern"></td>
                     </tr>
                     </form>
                </table>';
              if(isset($_POST['speichern'])){
                $aendern = "UPDATE `animelogin` Set
                                           `realname` = '".$_POST['realname']."',
                                           `fanime` = '".$_POST['fanime']."',
                                           `email` = '".$_POST['email']."',
                                           `alter` = '".$_POST['alter']."'
                                           WHERE `passwort` = '".$passwortl."'";
                $aenderung = mysql_query ($aendern);

                header ("Location: animeuser.php?do=profil");
                exit();
              }

         break;
         }



       }

   }
   else{
     echo "Du musst dich erst einloggn<br>";
     echo "<i>Du wirst in 3 Sek zum Loginbereich weitergeleitet</i>";
     echo '<meta http-equiv="Refresh" content="3;url=anime.php" />';

     if(isset($_SESSION['benutzer'])){
           unset($_SESSION['benutzer']);
           session_destroy();
      }
   }

?>
 
es haben schon mindestens drei leute geschrieben, das session_start() VOR allen anderen ausgaben zu stehen hat.
das ist ja hier nicht der fall.

Nils aka XraYSoLo
 
schon klar, blos klappt das script dann irgendwie nicht mehr...?! Das script wird nur ausgeführt, wenn ich die sesson nach dem include starte?!
 
also ein letztes mal weil heute donnerstag ist (;ugl )

Funktionen wie header() oder session_start() wirken sich auf die Header-Informationen des Dokumentes aus. Diese Informationen werden übertragen BEVOR das Dokument angezeigt wird. Da du eine Anzeige hast (echo "was auch immer";) vor diesen Funktionen ist der Server gezwungen das ganze abzusenden und die Ausgabe anzuzeigen. Somit wurde das Dokument übermittelt und es lassen sich keine Header-Informationen mehr anpassen.

Logische Schlussfolgerung
Warning: Cannot modify header information - headers already sent by output started
d.h. übersetzt
Warnung: Kann keine Header Informationen anpassen - Header Informationen wurden schon gesendet weil eine Ausgabe stattgefunden hat

Wie sollen also noch session_start() und header() Funktionieren können?!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben