[Code] Variable kann nicht übergeben werden.

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Viruz2005, 26. November 2009 .

  1. 26. November 2009
    Variable kann nicht übergeben werden.

    Hallo Leute,
    ich habe folgendes Problem und hoffe ihr seit so nett und könnt mir helfen:

    Und zwar bekomme ich es nicht hin, in den Fettabgedruckten Abschnitt eine Variable zu übergeben.


    Ich habe diese Variablen mit GET übergeben und lese sie weiter oben im Code aus und kann sie an der Stelle auch direkt ausgeben. Nur irgendwie nicht in der Uploadfunktion.

    PHP:

    $art = $_GET [ 'art' ];


    if ( $art  ==  1 )
    {
        
    $lid = 0 ;
    }
    else
    {
        
    $lid  $_GET [ 'lid' ];
    }
    Leider zeigt er immer keinen Wert an wenn ich mir die Variablen in dieser Funktion anzeigen lassen will. (echo $lid
    Muss ich die Variablen zwingend an die Funktion übergeben? Und wenn ja wie? Bin ne Programmier niete Ich möchte Sie hier in das 2. MYSQL Statement hinzufügen.

    PHP:
    // Daten speichern
    $orginalname  mysql_real_escape_string ( $orginal );
    IF (
    Art == 1 )
    {
        
    MYSQL_QUERY ( "INSERT INTO easylist_picupload (picid, userid, pictime, picverz, picorg, pvorn, pend, picbytes, picwidth, picheight, Art, Listenid) VALUES('', ' $user_id ',  NOW(), ' $uploadverzeichnis ',' $orginalname ', ' $rand_value ', ' $endung ', ' $dateigroesse ', ' $picinfo [ 0 ] ', ' $picinfo [ 1 ] ', '1', '0')" );
    }
    else
    {
        
    MYSQL_QUERY ( "INSERT INTO easylist_picupload (picid, userid, pictime, picverz, picorg, pvorn, pend, picbytes, picwidth, picheight, Art, Listenid) VALUES('', ' $user_id ',  NOW(), ' $uploadverzeichnis ',' $orginalname ', ' $rand_value ', ' $endung ', ' $dateigroesse ', ' $picinfo [ 0 ] ', ' $picinfo [ 1 ] ', '2', ' $lid ')" );
    }    
    header ( "Location: ./upload.php" );
    exit;
    }
    Hier nochmal der Komplette Code:
    PHP:
    <? php
    # DB Host
    $server  "##############" ;
    # DB Name
    $datenbank  "#############" ;
    # DB Username
    $user  "###########" ;
    # DB Passwort
    $passwort  "#############" ;



    MYSQL_CONNECT ( $server $user $passwort ) or die ( "<H3>Datenbankserver nicht erreichbar</H3>" );
    MYSQL_SELECT_DB ( $datenbank ) or die (  "<H3>Datenbank nicht vorhanden</H3>" );


    $art = $_GET [ 'art' ];


    if ( $art  ==  1 )
    {
        
    $lid = 0 ;
    }
    else
    {
        
    $lid  $_GET [ 'lid' ];
    }

    // Aktionen und Menue fuer diese Datei
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
    if (isset( $_GET [ 'action' ]) &&  $_GET [ 'action' ] !=  "" ) {
    $action  $_GET [ 'action' ];
    }
    elseif (isset(
    $_POST [ 'action' ]) &&  $_POST [ 'action' ] !=  "" ) {
    $action  $_POST [ 'action' ];
    }

    switch (
    $action ) {
    case 
    "upload" :
        
    upload ();
        break;
    default:
        
    formular ();
        break;
    }

    // Uploadformular
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
    function  formular ( $printfehler = "" ) {

    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">


    <script type="text/javascript">
    function insertbildlink(wert1) {
    opener.document.forms.Formular.elements.eintrag_bild.value=wert1;
    window.close();
     }
    </script>



    <style type="text/css">
    body {
    background-color: #f7f7f7;
    font-family: Verdana, Arial;
    font-size: 12px;
    color: #000000;
    }

    .tborder {
    background-color: #979cb0;
    }

    .tdkopf {
    background-color: #dedfe4;
    padding: 3px;
    border: 1px solid #ffffff;
    font-size: 11px;
    }

    .tdcont {
    background-color: #ffffff;
    padding: 3px;
    font-size: 11px;
    width: 50%;
    }

    form { display: inline;}

    .fc {
    border: 1px solid #65698d;
    font-size: 11px;
    background-color: #ffffff;
    }

    .button {
    border: 1px solid #65698d;
    font-size: 11px;
    background-color: #bac0cd;
    }

    </style>
    </head>
    <body>
    <div align="center">
    <?php

    // Fiktive USER ID
    $user_id  1 ;

    // Auslesen der Gesamtsumme aller gespeicherten Bytes


    ?>

    <form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="action" value="upload">
    <input type="hidden" name="user_id" value="<?php  echo  $user_id ?>">
    <input type="hidden" name="art" value="<?php  echo  $art ?>">
    <input type="hidden" name="lid" value="<?php  echo  $lid ?>">
    <table cellspacing="1" cellpadding="0" border="0" width="500" class="tborder">
    <tr>
    </tr>
    <tr>
        <td class="tdcont" colspan="2"><?php  echo  $printfehler ?>&nbsp;</td>
    </tr>
    <tr>
        <td class="tdkopf" colspan="2"><b>&raquo; Dateiupload</b></td>
    </tr>
    <tr>
        <td class="tdcont">Datei ausw&auml;hlen</td>
        <td class="tdcont"><input class="fc" type="file" name="datei"></td>
    </tr>
    <tr>
        <td class="tdcont" colspan="2">Erlaubt sind Dateien mit der Endung: jpg, jpeg, gif und png mit einer max. Dateigr&ouml;&szlig;e von 500 kb.</td>
    </tr>
    <tr>
       <td class="tdkopf" colspan="2" align="center"><input class="button" type="submit" name="upload" value="Datei hochladen"></td>
    </tr>
    </table>
    </form>
    <br>
    <?php

    // Ausgabe der Bilder des Users
    IF ( Art == 1 )
    {
        
    $query  "SELECT DATE_FORMAT( pictime, '%d.%c.%Y um %H:%i:%S Uhr' ) AS datum, picverz, pvorn, pend, picbytes, picwidth, picheight FROM easylist_picupload WHERE userid = ' $user_id ' AND Art = '1' ORDER BY pictime DESC" ;
    }
    else
    {
        
    $query  "SELECT DATE_FORMAT( pictime, '%d.%c.%Y um %H:%i:%S Uhr' ) AS datum, picverz, pvorn, pend, picbytes, picwidth, picheight FROM easylist_picupload WHERE userid = ' $user_id ' AND Art = 2 AND Listenid = '35' ORDER BY pictime DESC" ;
    }    
    $result  mysql_query ( $query );
    $reihen  mysql_num_rows ( $result );

    if (
    mysql_num_rows ( $result )) {
    # Ausgabe
    while ( $daten  mysql_fetch_array  ( $result )) {

    echo 
    'Datei vom:'  $daten [ datum ].  '<br><img src="' . $daten [ picverz ] .  '/' .   $daten [ pvorn ] .  '.'  $daten [ pend ]. '" border="0" width="250" height="200" alt="Bild mit ' .   $daten [ picbytes ]. ' Bytes">' ;
    echo 
    "<b><br><br>Diesen Link kopieren:</b><br><input name='url' type='text' size='42' maxlength='120' value='/" $daten [ picverz ], "/" $daten [ pvorn ],  "." $daten [ pend ],  "'>" ;
    ?>

    <a href='#' onClick='insertbildlink("<?  echo  "/" $daten [ picverz ],  "/" $daten [ pvorn ],  "." $daten [ pend ?>")'>Bild auswählen!<br><br><hr></a>

    <?php
    }
    }
    ?>
    </div>
    </body>
    </html>
    <?php
    }

    // Uploadfunktion
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
    function  upload () {

    // Array mit erlaubten Dateiendungen
    $arr_erlaube_dateityp  = array( gif , jpg , jpeg , png );

    $dateiname  $_FILES [ 'datei' ][ 'name' ] ;

    // User ID
    $user_id  $_POST [ 'user_id' ];
    $user_id  preg_replace  ( "/[^0-9]/" "" ,   $user_id );

    if (
    $dateiname  !=  '' ) {
    $dateiname  preg_replace  ( "/[^0-9a-zA-Z\.]/" "_" ,   $dateiname );
    }

    // Dateiendung ermitteln
    $punkt  strrpos ( $dateiname '.' );
    $laenge  strlen ( $dateiname );
    $endung  strtolower ( substr ( $dateiname , -( $laenge  $punkt  1 )));
    $orginal  strtolower ( substr ( $dateiname 0 , -( $laenge  $punkt )));


    // Fehlerbehandlung
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
    $fehlermeldung  "" ;
    $fehler_gefunden  "" ;

    // Name Check
    $errormeldung  "<li>Es wurde keine Datei ausgew&auml;hlt\n" ;
    if (empty(
    $dateiname )) {
    $fehlermeldung  $fehlermeldung . $errormeldung  ;
    $fehler_gefunden  ; }

    $errormeldung  "<li>Der gew&aumlhlte Dateityp ist nicht erlaubt\n" ;
    if (!
    in_array ( $endung $arr_erlaube_dateityp ) && !empty( $dateiname )) {
    $fehlermeldung  $fehlermeldung . $errormeldung  ;
    $fehler_gefunden  ; }

    $errormeldung  "<li>Die gew&auml;hlte Datei ist zu gro&szlig;, upload abgelehnt. Max 500 kb Dateigr&ouml;&szlig;e sind gestattet.\n" ;
    if (
    $_FILES [ 'datei' ][ 'size' ] > ( 500  1024 )) {
    $fehlermeldung  $fehlermeldung . $errormeldung  ;
    $fehler_gefunden  ; }

    // Wenn Fehler - dann aufruf der Fehlerausgabe...
    if ( $fehler_gefunden ) {
    $printfehler  = "<ol> $fehlermeldung </ol>" ;
    formular ( $printfehler );
    exit;
    }

    // Zufaelligen Dateiname aus Orginalbildname und Zeit basteln
    $bildzeit  time ();
    $rand_value  randomstring ( $bildzeit . $orginal );
    $savename  $rand_value   ". $endung " ;

    // In welches Verzeichnis soll die Datei
    $uploadverzeichnis  'images/upload' ;

    // Keine Fehler, dann speichern

    if ( $printfehler  ==  '' ) {
    move_uploaded_file ( $_FILES [ 'datei' ][ 'tmp_name' ],  $uploadverzeichnis . '/' . $savename );
    }

    // Dateigroesse und Bildabmessungen auslesen
    $dateigroesse  filesize ( $uploadverzeichnis . '/' . $savename );
    $picinfo  getimagesize ( $uploadverzeichnis . '/' . $savename );

    // Daten speichern
    $orginalname  mysql_real_escape_string ( $orginal );
    IF (
    Art == 1 )
    {
        
    MYSQL_QUERY ( "INSERT INTO easylist_picupload (picid, userid, pictime, picverz, picorg, pvorn, pend, picbytes, picwidth, picheight, Art, Listenid) VALUES('', ' $user_id ',  NOW(), ' $uploadverzeichnis ',' $orginalname ', ' $rand_value ', ' $endung ', ' $dateigroesse ', ' $picinfo [ 0 ] ', ' $picinfo [ 1 ] ', '1', '0')" );
    }
    else
    {
        
    MYSQL_QUERY ( "INSERT INTO easylist_picupload (picid, userid, pictime, picverz, picorg, pvorn, pend, picbytes, picwidth, picheight, Art, Listenid) VALUES('', ' $user_id ',  NOW(), ' $uploadverzeichnis ',' $orginalname ', ' $rand_value ', ' $endung ', ' $dateigroesse ', ' $picinfo [ 0 ] ', ' $picinfo [ 1 ] ', '2', ' $lid ')" );
    }    
    header ( "Location: ./upload.php" );
    exit;
    }


    // Zufallszeichen fuer Dateiname
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
    function  randomstring ( $dateiname ) {
    $dateiname  strtolower ( substr ( md5 ( microtime ()), 0 , 20 ));
    return 
    $dateiname ;
    }
    MYSQL_CLOSE ();
    ?>
     
  2. 26. November 2009
    AW: Variable kann nicht übergeben werden.

    Hallo Viruz2005,
    ich probiere mal dir etwas zu helfen, sogut ich kann. beim durchlesen ist mir mehrere fehler aufgefallen:
    PHP:
    // Daten speichern
    $orginalname  mysql_real_escape_string ( $orginal );
    IF (
    Art == 1 // ist Art einen constante oder eine variable ?



    MYSQL_CONNECT ( $server $user $passwort ) or die ( "<H3>Datenbankserver nicht erreichbar</H3>" );
    MYSQL_SELECT_DB ( $datenbank ) or die (  "<H3>Datenbank nicht vorhanden</H3>" );

    // ersetzen durch
    $connect  MYSQL_CONNECT ( $server $user $passwort ) or die ( "<H3>Datenbankserver nicht erreichbar</H3>" );
    MYSQL_SELECT_DB ( $datenbank , $connect ) or die (  "<H3>Datenbank nicht vorhanden</H3>" );

    und bei den querys MYSQL_QUERY ( "SQL" , $connect );
     
  3. 26. November 2009
    AW: Variable kann nicht übergeben werden.

    Das ist eine Varibale die ich beim öffnen dieses Uploadfenster übergebe. Diese Variable wird später immer passend übergeben je nachdem wie die Art und die ID der Liste ist. Zu Testzwecken habe ich feste Werte in die java funktion geschrieben)

    HTML:
    function fenster1() {
    var win;
    win=window.open("upload.php?art=2&lid=35","Ueberschrift","height=450,width=555, scrollbars=yes");
    }
     
  4. 26. November 2009
    AW: Variable kann nicht übergeben werden.

    dann muss es als variable deklariert werden. also "Art" durch "$Art" ersetzen. da php "Art" als eine konstante implementiert..
     
  5. 26. November 2009
    AW: Variable kann nicht übergeben werden.

    Oh ja ich Depp^^
    Habe das behoben aber der Upload funktioniert immer noch nicht. Beim klicken des Upload Button kommt trotzdem kein Bild rein.
    Der übernimmt einfach die Variablen im letzten SQL Statement nicht in die Datenbank. Vielleicht übergebe ich die weiter unten im Code auch falsch... bin völlig überfragt
     
  6. 26. November 2009
    AW: Variable kann nicht übergeben werden.

    kann daran liegen das die variablen bei der query nicht ersetzt werden. probiers mal damit
    PHP:
    // anstatt
    $query  "SELECT DATE_FORMAT( pictime, '%d.%c.%Y um %H:%i:%S Uhr' ) AS datum, picverz, pvorn, pend, picbytes, picwidth, picheight FROM easylist_picupload WHERE userid = ' $user_id ' AND Art = '1' ORDER BY pictime DESC" ;

    // folgendes
    $query  "SELECT DATE_FORMAT( pictime, '%d.%c.%Y um %H:%i:%S Uhr' ) AS datum, picverz, pvorn, pend, picbytes, picwidth, picheight FROM easylist_picupload WHERE userid = '" . $user_id . "' AND Art = '1' ORDER BY pictime DESC" ;

    @ der tabellename "easylist_picupload" passt nicht ganz zu dem ganzen script ^^. daten wie: breite und höhe des bildes braucht man nicht speichern. man kann nämlich die daten mit getimagesize() jeder zeit holen.
     
  7. 26. November 2009
    AW: Variable kann nicht übergeben werden.

    Oh ja ich Depp^^
    Habe das behoben aber der Upload funktioniert immer noch nicht. Beim klicken des Upload Button kommt trotzdem kein Bild rein.
    Der übernimmt einfach die Variablen im letzten SQL Statement nicht in die Datenbank. Vielleicht übergebe ich die weiter unten im Code auch falsch... bin völlig überfragt
    Er macht dein Eintrag in der DB aber der Wert lid ist immer 0
     
  8. 26. November 2009
    AW: Variable kann nicht übergeben werden.

    sowie ich es verstehe, soll die $lid wert "0" haben wenn $_GET['art'] gleich 1 ist. probiers mal mit ?art=0

    du hast noch ein paar fehler im script:
    PHP:
    // fehler
    while ( $daten  mysql_fetch_array  ( $result )) {
    echo 
    'Datei vom:'  $daten [ datum ]....
    // $daten[datum] durch $daten['datum'] ersetzen, und alle weitere in der schleife
     
  9. 26. November 2009
    AW: Variable kann nicht übergeben werden.

    Leider waren die Fehler nicht der Grund.
     
  10. 27. November 2009
    AW: Variable kann nicht übergeben werden.

    Es geht um folgendes, oder?!:
    und da wird das $lid nicht eingetragen?!
    dann lass das $lid mal direkt vor der funktion ausgeben, und sonst nirgendwo. Gibt er es da aus, ist der wert auf jeden fall in der variable.
    Dann kannst du die hälfte davon weglassen, um fehler zu beseitigen, also:
    am besten schreibst du den query zuerst in eine variable, da merkst du dann ob da schon fehler drin sind, dann erst die funktion benutzen.
    und dann solltest du variablen im query besser mit '".$lid."' einfügen.
    Wenns dann noch nicht funktioniert, schreib mal echo mysql_error; dadrunter und lass dir den fehler ausgeben.
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.