[PHP] Post wird nicht übergeben

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Dark|pUM4, 27. Dezember 2011 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 27. Dezember 2011
    Post wird nicht übergeben

    Hallo Leute,

    ich versuche gerade ein Bewertungsscript zu schreiben.
    Leider werden die Variabeln nicht richtig übergeben.

    Habe ihr eine Idee?

    PHP:
    <?
    if(
    $_GET [ 'vote' ]){

        if(!
    $user_locker ){
            echo 
    '<div style="padding-left:15px;">Bitte einloggen um diesen Bereich zu nutzen!Bitte einloggen um diesen Bereich zu nutzen!</div><br><br>' ;
            die();
        }

        
    $user_id  $global_user ;
        
    $item_id  $_POST [ 'item_id' ];
        
    $typ  $_POST [ 'typ' ];
        
    $referenz  $_POST [ 'referenz' ];
        
    $like  $_POST [ 'vote_like' ];
        
    $dislike  $_POST [ 'vote_dislike' ];
        
    $update  $_POST [ 'update' ];
        
        
        if(
    $dislike  ==  1 ){
            
            
    $vote_like  0 ;
            
    $vote_dislike  1 ;
            
        }else{
        
            
    $vote_like  1 ;
            
    $vote_dislike  0 ;
        
        }
        
        if(
    $update  ==  1 mysql_query ( "UPDATE bewertung SET mag='" . $vote_like . "',
                                                         dismag='"
    . $vote_dislike . "' WHERE item_id='' and user_id=''" );
        else 
    mysql_query ( "INSERT INTO bewertung ( item_id, user_id, typ, mag, dismag ) values( ' $item_id ', ' $user_id ', ' $typ ', ' $vote_like ', ' $vote_dislike ' ) " );
        echo 
    '<meta http-equiv="refresh" content="0;URL=' . $referenz . '">' ;
    }
    else {
        echo 
    '<div style="padding-left:20px;">' ;
        
    $abfr_likes  mysql_query ( "SELECT mag FROM bewertung WHERE item_id='" . $item_id . "' and typ='" . $typ . "' and mag='1'" );
        
    $abfr_dislikes  mysql_query ( "SELECT dismag FROM bewertung WHERE item_id='" . $item_id . "' and typ='" . $typ . "' and dismag='1'" );
        
    $count_likes mysql_num_rows ( $abfr_likes );
        
    $count_dislikes mysql_num_rows ( $abfr_dislikes );
        
        
    $abfr_user  mysql_query ( "SELECT user_id FROM bewertung WHERE item_id='" . $item_id . "' and typ='" . $typ . "' and user_id='" . $global_user . "'" );
        
    $count_user mysql_num_rows ( $abfr_user );
        
                
        if(
    $user_locker ){
            
            if(
    $count_user  <=  0 ){
                echo 
    '<form name="vote" action="index.php?modul=bewertung&vote=vote" method="post">
                        <div>
                            <ul style="list-style-image:none;">
                                <li style="display:inline;"><input src="icons/like.png" type="image" width="64" height="64" name="vote_like" value="1" /></li>
                                <li style="display:inline;"><input src="icons/dislike.png" type="image" width="64" height="64" name="vote_dislike" value="1" /></li>
                                <li style="display:inline;"><small>Gefällt: '
    . $count_likes . ' Gefällt nicht: ' . $count_dislikes . '</small></li>
                                <li style="display:inline;"><input type="hidden" name="item_id" value="'
    . $item_id . '"><input type="hidden" name="typ" value="' . $typ . '"><input type="hidden" name="referenz" value="' . $referenz . '"></li>
                            </lu>
                        </div>
                        </form>'
    ;
            }else{

                echo 
    '<form name="vote" action="index.php?modul=bewertung&vote=vote" method="post">
                        <div>
                            <ul style="list-style-image:none;">
                                <li style="display:inline;"><input src="icons/like.png" type="image" width="64" height="64" name="vote_like" value="1" /></li>
                                <li style="display:inline;"><input src="icons/dislike.png" type="image" width="64" height="64" name="vote_dislike" value="1" /></li>
                                <li style="display:inline;"><small>Gefällt: '
    . $count_likes . ' Gefällt nicht: ' . $count_dislikes . '</small></li>
                                <li style="display:inline;"><input type="hidden" name="item_id" value="'
    . $item_id . '"><input type="hidden" name="typ" value="' . $typ . '"><input type="hidden" name="referenz" value="' . $referenz . '"><input type="hidden" name="update" value="1"></li>
                            </lu>
                        </div>
                        </form>'
    ;

            }
        
        }else{
                                
            echo 
    '<br> Bitte einloggen um eine Bewertung abzugeben!<br><br>' ;
        
        }
        echo 
    '</div>' ;
    }
    ?>
    DANKE!
     
  2. 27. Dezember 2011
    AW: Post wird nicht übergeben

    Also ich kann jetzt beim schnellen überfliegen keinen groben Fehler sehen.. (kann auch blind sein^^)

    Was heißt denn: "Leider werden die Variabeln nicht richtig übergeben."
    Was sagt denn:
    PHP:
    print_r ( $_POST );
    dazu?

    Und was passiert überhaupt?
    Bricht der Aufruf durch das
    PHP:
         if(! $user_locker ){ 
            echo 
    '<div style="padding-left:15px;">Bitte einloggen um diesen Bereich zu nutzen!Bitte einloggen um diesen Bereich zu nutzen!</div><br><br>'
            die(); 
        }
    ab?
    (Das kannste übrigens schöner machen)
    PHP:
         if(! $user_locker )
            die(
    '<div style="padding-left:15px;">Bitte einloggen um diesen Bereich zu nutzen!Bitte einloggen um diesen Bereich zu nutzen!</div><br><br>' );
    MfG
     
  3. 27. Dezember 2011
    AW: Post wird nicht übergeben

    die variablen werden wohl schon richtig übergeben, du speicherst diese nur falsch wie ich sehe.

    Code:
    UPDATE bewertung 
    SET 
     mag = '".$vote_like."',
     dismag = '".$vote_dislike."' 
    WHERE 
     item_id='' and user_id=''
    du änderst mag/dismag immer von 1 auf 0 und umgekehrt.
     
  4. 28. Dezember 2011
    AW: Post wird nicht übergeben

    danke soweit ... ich hab mir jetzt anders abgeholfen:

    PHP:
    <?
    if(
    $_GET [ 'vote' ] ==  'vote' ){

        if(!
    $user_locker ){
            echo 
    '<div style="padding-left:15px;">Bitte einloggen um diesen Bereich zu nutzen!Bitte einloggen um diesen Bereich zu nutzen!</div><br><br>' ;
            die();
        }

        
    $user_id  $global_user ;
        
    $item_id  $_POST [ 'item_id' ];
        
    $bewertung_id  $_POST [ 'bewertung_id' ];
        
    $typ  $_POST [ 'typ' ];
        
    $referenz  $_POST [ 'referenz' ];
        
    $like  $_POST [ 'vote_like' ];
        
    $dislike  $_POST [ 'vote_dislike' ];
        
    $update  $_POST [ 'update' ];
            
        
    print_r ( $_POST );  
        
        if(
    $update  ==  1 mysql_query ( "UPDATE bewertung SET mag='" . $like . "',
                                                         dismag='"
    . $dislike . "' WHERE bewertung_id='" . $bewertung_id . "'" );
        else 
    mysql_query ( "INSERT INTO bewertung ( `item_id`, `user_id`, `typ`, `mag`, `dismag` ) values( ' $item_id ', ' $user_id ', ' $typ ', ' $like ', ' $dislike ' ) " );
        echo 
    '<meta http-equiv="refresh" content="5;URL=' . $referenz . '">' ;
    }
    else {
        echo 
    '<div style="padding-left:20px;">' ;
        
    $abfr_likes  mysql_query ( "SELECT mag FROM bewertung WHERE item_id='" . $item_id . "' and typ='" . $typ . "' and mag='1'" );
        
    $abfr_dislikes  mysql_query ( "SELECT dismag FROM bewertung WHERE item_id='" . $item_id . "' and typ='" . $typ . "' and dismag='1'" );
        
    $count_likes mysql_num_rows ( $abfr_likes );
        
    $count_dislikes mysql_num_rows ( $abfr_dislikes );
        
        
    $abfr_user  mysql_query ( "SELECT bewertung_id, user_id FROM bewertung WHERE item_id='" . $item_id . "' and typ='" . $typ . "' and user_id='" . $global_user . "'" );
        
    $count_user mysql_num_rows ( $abfr_user );
        
        
    $dk  mysql_fetch_array ( $abfr_user );
        
    $bewertung_id  $dk [ 'bewertung_id' ];
        
        if(
    $user_locker ){
            
            if(
    $count_user  <=  0 ){
                echo 
    '<div>
                        <ul style="list-style-image:none;>
                            <li style="display:inline;">
                                <form name="vote" action="index.php?modul=bewertung&vote=vote" method="post">
                                <div>
                                    <ul style="list-style-image:none;">
                                        <li style="display:inline;"><input src="icons/like.png" type="image" width="64" height="64" name="vote_like" value="1" /></li>
                                        <li style="display:inline;"><input type="hidden" name="item_id" value="'
    . $item_id . '"><input type="hidden" name="typ" value="' . $typ . '"><input type="hidden" name="referenz" value="' . $referenz . '"><input type="hidden" name="vote_like" value="1"><input type="hidden" name="vote_dislike" value="0"><input type="hidden" name="update" value="0"></li>
                                    </lu>
                                </div>
                                </form>
                            </li>
                            <li style="display:inline;">
                                <form name="vote" action="index.php?modul=bewertung&vote=vote" method="post">
                                <div>
                                    <ul style="list-style-image:none;">
                                        <li style="display:inline;"><input src="icons/dislike.png" type="image" width="64" height="64" name="vote_dislike" value="1" /></li>
                                        <li style="display:inline;"><small>Gefällt: '
    . $count_likes . ' Gefällt nicht: ' . $count_dislikes . '</small></li>
                                        <li style="display:inline;"><input type="hidden" name="item_id" value="'
    . $item_id . '"><input type="hidden" name="typ" value="' . $typ . '"><input type="hidden" name="referenz" value="' . $referenz . '"><input type="hidden" name="vote_like" value="0"><input type="hidden" name="vote_dislike" value="1"><input type="hidden" name="update" value="0"></li>
                                    </lu>
                                </div>
                                </form>
                            </li>
                        </ul>
                    </div>'
    ;
            }else{
                echo 
    '<div>
                        <ul style="list-style-image:none;>
                            <li style="display:inline;">
                                <form name="vote" action="index.php?modul=bewertung&vote=vote" method="post">
                                <div>
                                    <ul style="list-style-image:none;">
                                        <li style="display:inline;"><input src="icons/like.png" type="image" width="64" height="64" name="vote_like" value="1" /></li>
                                        <li style="display:inline;"><input type="hidden" name="item_id" value="'
    . $item_id . '"><input type="hidden" name="typ" value="' . $typ . '"><input type="hidden" name="referenz" value="' . $referenz . '"><input type="hidden" name="vote_like" value="1"><input type="hidden" name="vote_dislike" value="0"><input type="hidden" name="update" value="1"></li>
                                    </lu>
                                </div>
                                </form>
                            </li>
                            <li style="display:inline;">
                                <form name="vote" action="index.php?modul=bewertung&vote=vote" method="post">
                                <div>
                                    <ul style="list-style-image:none;">
                                        <li style="display:inline;"><input src="icons/dislike.png" type="image" width="64" height="64" name="vote_dislike" value="1" /></li>
                                        <li style="display:inline;"><small>Gefällt: '
    . $count_likes . ' Gefällt nicht: ' . $count_dislikes . '</small></li>
                                        <li style="display:inline;"><input type="hidden" name="item_id" value="'
    . $item_id . '"><input type="hidden" name="typ" value="' . $typ . '"><input type="hidden" name="referenz" value="' . $referenz . '"><input type="hidden" name="vote_like" value="0"><input type="hidden" name="vote_dislike" value="1"><input type="hidden" name="update" value="1"></li>
                                    </lu>
                                </div>
                                </form>
                            </li>
                        </ul>
                    </div>'
    ;
            }
        
        }else{
                                
            echo 
    '<br> Bitte einloggen um eine Bewertung abzugeben!<br><br>' ;
        
        }
        echo 
    '</div>' ;
    }
    ?>
    Lösung: ich hab für like und dislike ein extra formular, auch der update funktioniert
    ABER ... er erstellt mir immer noch einen neuen eintrag trotz update in der datenbank ... oO

    sprich die zeile in der datenbank wird aktualisiert und darunter wird eine neue zeile erstelle, wo defaultwerte drinstehen ... hat jemand eine ahnung?

    Update:
    (passiert auch beim INSERT INTO ... kann aber den fehler nicht finden)
     
  5. 29. Dezember 2011
    AW: Post wird nicht übergeben

    keiner eine ahnung, wieso mit das script beim insert into und update einen doppelten eintrag hinterlässt?
     
  6. 30. Dezember 2011
    AW: Post wird nicht übergeben

    Was steht denn in $referenz? Also da wo du hinleitest?
    Denn, wenn er noch das $_GET["event"] bekommt, trägt er ja auch was in die Datenbank ein. Da aber alle $_POST-Variablen leer sind, werden keine Werte eingetragen.
    Bau mal in das if($update == 1) noch ein "AND !empty($like) oder halt nen anderen Postwert mit ein, so dass das SQL-Statement nur ausgeführt wird, wenn auch was im $_POST[...] steht.
     
  7. 30. Dezember 2011
    AW: Post wird nicht übergeben

    Vielen Dank!

    Auf das wäre ich nie gekommen, aber es geht!!

    BWs sind (sofern ich noch welche vergeben konnte) vergeben ...
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.