Toon posts:

[PHP] If clause

Pagina: 1
Acties:
  • 156 views sinds 30-01-2008

Verwijderd

Topicstarter
OK, ik heb een if clause, het eerste (edit gedeelte) werkt zonder probs, doet wazt ik em zeg maar het tweede sumbit deel wordt altijd uitgevoerd ook al is $user2 niet toegekend, ik heb an 10talllen mogelijkheden uitgeprobt maar hij blijft die uitvoeren.

Kijk hier voor het voorbeeld: http://mm2heaven.saburovo.com/index.php (het nieuws script, post comments)

gvd frustrerend, plzzz help, code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?PHP 

//Get username from Cookie and globalyse it 
global $id; 
global $user; 
global $record; 

$sql = mysql_query("SELECT member FROM active WHERE record = '$record'") 
      or die(mysql_error()); 
     while ($recordy = mysql_fetch_array($sql)) { 
      $user = $recordy["member"];    
     } 


  $sql = "SELECT custom FROM profiles WHERE username = '$user'"; 
  $resu = mysql_query($sql) or die(mysql_error());    

  while ($recordy = mysql_fetch_array($resu)) {  
   $admin = $recordy["custom"]; 
    global $admin; 
   } 

  if($action == edit){ 
    $result = mysql_query("SELECT user FROM comments WHERE com_id= '$cid'"); 
    while ($recordy = mysql_fetch_array($result)) { 
    $usercom = $recordy["user"]; 
    global $usercom; 
    } 
    if(($usercom == $user) or ($admin == 'Admin')){ 

  $result = mysql_query("SELECT comment, title, user FROM comments WHERE com_id= '$cid' ORDER BY com_id DESC"); 
    while ($recordy = mysql_fetch_array($result)) { 
    $comup =$recordy["comment"]; 
    $title =$recordy["title"]; 
    $usercom =$recordy["user"]; 
     
echo"<form action=\"comment.php?action=edit&cid=$cid&id=$id\" method=\"post\" enctype=\"multipart/form-data\"> 
   <input type=\"hidden\" name=\"edit\" value=\"edit\"> 
   <input type=\"hidden\" name=\"cid\" value=\"$cid\"> 
   <input type=\"hidden\" name=\"usercom\" value=\"$usercom\"> 
     
   // beetje gesnoeid in formpje 

<input style=\" font-family: Verdana; font-size: 10 px\" type=\"submit\" name=\"edit\" value=\"Edit\" height=\"15\" class=\"mainoption\"> 
    </td> 
   </tr> 
  </table> 
</div> 
</form>"; 

   } 

     if($edit) { 
     if($remove){ 
         $remove = "DELETE FROM comments WHERE com_id = '$cid'"; 
             mysql_query($remove) or die(mysql_error()); 
     } else { 
         $update = "UPDATE comments SET comment = '$comupd' WHERE com_id = '$cid'"; 
        mysql_query($update) or die(mysql_error()); 
     } //removeclose 

echo"<META http-equiv=\"Refresh\" content=\"0;URL=$baselink/redirect.php?id=$id\">"; 
        
} //editclose 

   } else { //close usercom 

    echo"You don't have permission to edit this comment."; 
   } 

} else { //action edit close 


echo"<table border=\"0\" cellspacing=\"0\" width=\"430\" align=\"center\"> 
        <tr> 
          <td align=\"center\" width=\"430\">"; 



$sql = mysql_query("SELECT member FROM active WHERE record = '$record'") 
      or die(mysql_error()); 
     while ($recordy = mysql_fetch_array($sql)) { 
      $user2 = $recordy["member"];    
     } 

global $user2; 
echo"$record"; 
echo"submit, $submit, user, $user2, user, $user"; 

/* HIER GAAT HET MIS, ook al is $user2 niet toegewezen, gaat ie ewoon lekker verder, grrrrrrrrr */ 

if($submit == 'Submit'){ 
  if($user2 == $user){ 

// dit wordt dus altijd uitgevoerd 

   $date = date("d F Y"); 
   $sql = "INSERT INTO comments (title, comment, news_id, date, user) 
   VALUES ('$title', '$comment', '$id', '$date', '$user2')"; 

   mysql_query($sql) or die(mysql_error()); 

echo"<META http-equiv=\"Refresh\" content=\"0;URL=$baselink/redirect.php?rid=1&id=$id\">"; 

} else { 
echo"You are not logged in."; 
} 
  } else { 

   $resul = mysql_query("SELECT comment, title, date, user, com_id FROM comments WHERE news_id='$id' ORDER BY com_id DESC") or die(mysql_error()); 
   while ($recordy = mysql_fetch_array($resul)) { 
    $comment =$recordy["comment"]; 
    $title =$recordy["title"]; 
    $date =$recordy["date"]; 
    $user =$recordy["user"]; 
    $cid =$recordy["com_id"]; 
    
    showit($comment, $title, $date, $user, $cid, $id); 

    } 

      echo"</td> 
        </tr> 
        </table>"; 

?> 

<form action="comment.php?id=<? echo"$id"; ?>" method="post" enctype="multipart/form-data"> 
//  (form ff weggelate voor post beetje te verkleinen) 
    <input style="font-family: Verdana; font-size: 10 px" type="submit" name="submit" value="Submit" class="mainoption"> 
    </td> 
   </tr> 
  </table> 
</div> 
</form> 
<? 

} 
} //editclose 

?>

Die globals zijn het resultaat van mijn hopeloze debugpogingen.

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Je had hier toch al een topic over gestart

[topic=465133/1/25]

Het lijkt me niet verstandig om D2k te gaan negeren...

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

Topicstarter
Ik heb er al een uur aan gedebugd en die stomme functie werkt noch altijd niet, dus jullie zijn m'n laatste hoop.

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Zoals reeds gezegd kunnen we je helpen met problemen, maar het is niet de bedoeling dat we volledige lappen code voor je gaan debuggen.

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

Topicstarter
De bovenste lap werkt, het is gewoon die if clause, deze zo die altijd wordt uitgevoerd:


$sql = mysql_query("SELECT member FROM active WHERE record = '$record'")
or die(mysql_error());
while ($recordy = mysql_fetch_array($sql)) {
$user2 = $recordy["member"];
}

global $user2;
echo"$record";
echo"submit, $submit, user, $user2, user, $user";

/* HIER GAAT HET MIS, ook al is $user2 niet toegewezen, gaat ie ewoon lekker verder, grrrrrrrrr */

if($submit == 'Submit'){
if($user2 == $user){

// dit wordt dus altijd uitgevoerd

$date = date("d F Y");
$sql = "INSERT INTO comments (title, comment, news_id, date, user)
VALUES ('$title', '$comment', '$id', '$date', '$user2')";

mysql_query($sql) or die(mysql_error());

echo"<META http-equiv=\"Refresh\" content=\"0;URL=$baselink/redirect.php?rid=1&id=$id\">";

} else {
echo"You are not logged in.";
}
} else {

$resul = mysql_query("SELECT comment, title, date, user, com_id FROM comments WHERE news_id='$id' ORDER BY com_id DESC") or die(mysql_error());
while ($recordy = mysql_fetch_array($resul)) {
$comment =$recordy["comment"];
$title =$recordy["title"];
$date =$recordy["date"];
$user =$recordy["user"];
$cid =$recordy["com_id"];

showit($comment, $title, $date, $user, $cid, $id);

}



}
} //editclose

?>

  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

Op donderdag 11 april 2002 12:54 schreef _DeviL_ het volgende:
Ik heb er al een uur aan gedebugd en die stomme functie werkt noch altijd niet, dus jullie zijn m'n laatste hoop.
probeer dit eens....

echo "DEBUG - user=" . $user . " user2=" . $user2 . " als deze 2 hetzelfde zijn (allebei null waarschijnlijk) klopt het wel dat je dit ziet"

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 10:25

Tjark

DON'T PANIC

zet je code ff tussen php haakjes ipv code haakjes. Veel duidelijker.

*insert signature here


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

ok omdat indenten je vreemd is hier de leesbare versie
PHP:
1
<?     //Get username from Cookie and globalyse it     global $id;     global $user;     global $record;     $sql = mysql_query("SELECT member FROM active WHERE record = '$record'") or die(mysql_error());          while ($recordy = mysql_fetch_array($sql))          {             $user = $recordy["member"];               }     $sql = "SELECT custom FROM profiles WHERE username = '$user'";     $resu = mysql_query($sql) or die(mysql_error());            while ($recordy = mysql_fetch_array($resu))     {          $admin = $recordy["custom"];         global $admin;     }             if($action == edit)    {         $result = mysql_query("SELECT user FROM comments WHERE com_id= '$cid'");         while ($recordy = mysql_fetch_array($result))         {             $usercom = $recordy["user"];             global $usercom;         }         if(($usercom == $user) or ($admin == 'Admin'))        {                 $result = mysql_query("SELECT                             comment,                             title,                             user                         FROM                             comments                         WHERE                             com_id= '$cid'                         ORDER BY                             com_id DESC                        ");             while ($recordy = mysql_fetch_array($result))             {                 $comup =$recordy["comment"];                 $title =$recordy["title"];                 $usercom =$recordy["user"];                 echo"<form action=\"comment.php?action=edit&amp;cid=$cid&amp;id=$id\" method=\"post\" enctype=\"multipart/form-data\">                 <input type=\"hidden\" name=\"edit\" value=\"edit\">                 <input type=\"hidden\" name=\"cid\" value=\"$cid\">                 <input type=\"hidden\" name=\"usercom\" value=\"$usercom\">                 // beetje gesnoeid in formpje                 <input style=\" font-family: Verdana; font-size: 10 px\" type=\"submit\" name=\"edit\" value=\"Edit\" height=\"15\" class=\"mainoption\">                 </td>                 </tr>                 </table>                 </div>                 </form>";                 }             if($edit)             {                 if($remove)                {                     $remove = "DELETE FROM comments WHERE com_id = '$cid'";                     mysql_query($remove) or die(mysql_error());                 }                 else                 {                     $update = "UPDATE comments SET comment = '$comupd' WHERE com_id = '$cid'";                     mysql_query($update) or die(mysql_error());                 } //removeclose                     echo"<META http-equiv=\"Refresh\" content=\"0;URL=$baselink/redirect.php?id=$id\">";                 } //editclose             }         else         {         //close usercom             echo"You don't have permission to edit this comment.";         }         }     else     { //action edit close                 echo"<table border=\"0\" cellspacing=\"0\" width=\"430\" align=\"center\">         <tr>         <td align=\"center\" width=\"430\">";                 $sql = mysql_query("    SELECT                         member                     FROM                         active                     WHERE                         record = '$record'                ") or die(mysql_error());         while ($recordy = mysql_fetch_array($sql))         {             $user2 = $recordy["member"];            }             global $user2;         echo"$record";         echo"submit, $submit, user, $user2, user, $user";             /* HIER GAAT HET MIS, ook al is $user2 niet toegewezen, gaat ie ewoon lekker verder, grrrrrrrrr */             if($submit == 'Submit')        {             if($user2 == $user)            {                     // dit wordt dus altijd uitgevoerd                     $date = date("d F Y");                 $sql = "INSERT INTO                         comments                         (                            title,                             comment,                             news_id,                             date,                             user                        )                         VALUES                         (                            '$title',                             '$comment',                             '$id',                             '$date',                             '$user2'                        )";                     mysql_query($sql) or die(mysql_error());                     echo"<META http-equiv=\"Refresh\" content=\"0;URL=$baselink/redirect.php?rid=1&amp;id=$id\">";                 }             else             {                 echo"You are not logged in.";             }         }         else         {                 $resul = mysql_query("SELECT comment, title, date, user, com_id FROM comments WHERE news_id='$id' ORDER BY com_id DESC") or die(mysql_error());             while ($recordy = mysql_fetch_array($resul))             {                 $comment =$recordy["comment"];                 $title =$recordy["title"];                 $date =$recordy["date"];                 $user =$recordy["user"];                 $cid =$recordy["com_id"];                     showit($comment, $title, $date, $user, $cid, $id);                 }                 echo"</td>             </tr>             </table>";                 ?>                 <form action="comment.php?id=<? echo"$id"; ?>" method="post" enctype="multipart/form-data">             //  (form ff weggelate voor post beetje te verkleinen)             <input style="font-family: Verdana; font-size: 10 px" type="submit" name="submit" value="Submit" class="mainoption">             </td>             </tr>             </table>             </div>             </form>             <?             }     } //editclose ?> ?>

en over die if die niet werkt
wat staat er daar in $user en in $user2 ?
doe die eens zo echoen echo "user($user), user2($user2)";

Doet iets met Cloud (MS/IBM)


  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 10:25

Tjark

DON'T PANIC

Indenten is me niet vreemd, maar kleurtjes en kleinere lettertype lees makkelijker :)

es ff kijken of ik het snap.
PHP:
1
<?$sql = mysql_query("SELECT member FROM active WHERE record = '$record'") or die(mysql_error());      while ($recordy = mysql_fetch_array($sql)) {         $user2 = $recordy["member"];           } global $user2; ?>

Je haalt iets op, stopt 't in $user2. Als die query niets vindt dan is $user2 dus leeg (ben niet ingelogd oid).
PHP:
1
<?echo"$record"; echo"submit, $submit, user, $user2, user, $user"; ?>

ok, alles is mooi leeg. ben niet ingelogd dus $user is ook leeg.
PHP:
1
<?/* HIER GAAT HET MIS, ook al is $user2 niet toegewezen, gaat ie ewoon lekker verder, grrrrrrrrr */ if($submit == 'Submit'){?>


ik heb wat ingetypt, en doe submit dus submit is dan Submit dus gaat ie hier verder
PHP:
1
<?  if($user2 == $user){ // dit wordt dus altijd uitgevoerd ?>

logisch dat ie dit uitvoert dan toch? want we hadden vast gesteld dat
$user2 is leeg
$user is leeg
leeg == leeg

of zie ik iets verkeerd?

*insert signature here


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 11 april 2002 13:14 schreef TjarkVerhoeven het volgende:
Indenten is me niet vreemd, maar kleurtjes en kleinere lettertype lees makkelijker :)
was niet aan jou maar aan hem ;)
de oplossing
sssssssssssssssssssst :( zo leert ie het nooit

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
nee, normaal was die $user == $user2, isset($user2), maar dat is weeral een product van m'n hopeloze debugjes, en die $record is een cookie.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

en als je op het resultaat kijkt zie je dit:
submit, , user, , user,
Die velden zijn dus gewoon leeg, en dus gelijk aan elkaar en dus wordt het uitgevoerd.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 10:25

Tjark

DON'T PANIC

Misschien ook nog ff op html code checken:

http://mm2heaven.saburovo.com/news/comment.php?id=24

:)

*insert signature here


Verwijderd

Topicstarter
Voila, heb $user == $user2terug door isset($user2) vervangen, maar het werkt nog steeds niet.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

en anders lees je gewoon niet wat we posten
suc6 met debuggen

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.