Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Scipt PHP non funzionante completamente
#1
ennesimo problema con uno script che non fa tutto quello che dovrebbe fare, in poche parole aggiorna solo alcuni campi di una tabella del database, senza aggiornare altri due campi. posto il codice in questione chiarendo quali campi non aggionra.
Codice PHP:
<? include('header.php'); ?>
<h2> Advertisers Request</h2><br />
<?php

if (isset($_GET["type"])){
$type=$_GET["type"];
$id=$_GET["id"];
$option=$_GET["option"];
$username=$_GET["username"];
$ballnumber=$_GET["ballnumber"];
$referrals=$_GET["referrals"];
$numbot=$_GET["refbots"];
$pemail=$_GET["pemail"];
...........................................
if (
$type=="referrals" && $option==approve && $username!=""){

$myDb->connect();
$checkpemaile mysql_query("SELECT * FROM yob_users WHERE referer=''");
$pemail_existe mysql_num_rows($checkpemaile);
$myDb->close();
if (
$pemail_existe<$referrals){
echo 
"<p class='error'>Error. There are not "$referrals ." users without referrer.</p>";
}else{
$myDb->connect();
$timerentend=time()+(86400*30);
$sqlz "SELECT * FROM yob_users WHERE username='$username'";
$resultz mysql_query($sqlz);
$myrowz mysql_fetch_array($resultz);
$numero=$myrowz["referals"] + $referals;
$numbot=$myrowz["refbots"]+ $numbot;
$sqlex "UPDATE yob_users SET referals='$numero', refbots='$numbot' WHERE username='$username'";
mysql_query($sqlex) or die(mysql_error());
$bquery "UPDATE yob_users SET referer='$username', endrefdate='$timerentend',  refpurchase='1' WHERE referer='' AND referer!='$username' LIMIT $referrals";
mysql_query($bquery) or die(mysql_error());
$bquery2 "DELETE FROM yob_purchases WHERE id='$id'";
mysql_query($bquery2) or die(mysql_error());
$myDb->close();
echo 
"<p class='success'><bReferral Request Approved.</b></p>";
}


allora questo codice dello script aggiorna i campi 'referer', 'refpurchase' ed 'endrefdate' ma non i campi 'referrals' ed 'refbots'. Perchè c'è qualche errore nel codice???
Cita messaggio
#2
Ho modificato solo la seconda parte:
Codice PHP:
if($type=="referrals" && $option=='approve' && $username!=""){
    
$myDb->connect();
    
$checkpemaile mysql_query("SELECT * FROM yob_users WHERE referer=''");
    
$pemail_existe mysql_num_rows($checkpemaile);
    
$myDb->close();
    if(
$pemail_existe<$referrals){
        echo 
'<p class="error">Error. There are not '.$referrals.' users without referrer.</p>';
    } else {
        
$myDb->connect();
        
$timerentend time()+(86400*30);
        
$sqlex "UPDATE yob_users SET referals=referals+{$numero}, refbots=refbots+{$numbot} WHERE username='{$username}' LIMIT 1";
        
mysql_query($sqlex) or die(mysql_error());
        
$bquery "UPDATE yob_users SET referer='{$username}', endrefdate='{$timerentend}',  refpurchase='1' WHERE referer='' LIMIT {$referrals}";
        
mysql_query($bquery) or die(mysql_error());
        
$bquery2 "DELETE FROM yob_purchases WHERE id='{$id}' LIMIT 1";
        
mysql_query($bquery2) or die(mysql_error());
        
$myDb->close();
        echo 
'<p class="success"><bReferral Request Approved.</b></p>';
    }


In una query ho tolto referer!='$username' perché controllavi già che referer fosse uguale a una stringa vuota. Ti ricordo che il "diverso" in SQL si scrive così: <>.
Quando utilizzi delle variabili PHP in SQL ricordati di trattarle con la funzione mysql_escape_string o con la funzione mysql_real_escape_string, in base alle tue esigenze, per non aver problemi di SQL injection.
Mattia!
Cita messaggio
#3
Niente da fare lo script continua a non funzionare ho fatto delle piccole modifiche ma non aggiorna 2 campi della tabella, 3 li aggiona.
Codice PHP:
$myDb->connect();
$checkpemaile mysql_query("SELECT * FROM yob_users WHERE referer=''");
$pemail_existe mysql_num_rows($checkpemaile);
$myDb->close();
if (
$pemail_existe<$referrals){
echo 
"<p class='error'>Error. There are not "$referrals ." users without referrer.</p>";
}else{
$myDb->connect();
$timerentend=time()+(86400*30);
$sqlz "SELECT * FROM yob_users WHERE username='$username'";
$resultz mysql_query($sqlz);
$myrowz mysql_fetch_array($resultz);
$numero=$myrowz["referals"] + $referals;
$numbot=$myrowz["refbots"]+ $numbot;
$bquery "UPDATE yob_users SET referer='$username', endrefdate='$timerentend',  refpurchase='1' WHERE referer='' AND referer!='$username' LIMIT $referrals";
mysql_query($bquery) or die(mysql_error());
$sqlex "UPDATE yob_users SET referals='$numero' WHERE username='$username' LIMIT 1";
mysql_query($sqlex) or die(mysql_error());
$aquery="UPDATE yob_users SET  refbots='$numbot' WHERE referer='$username' and user_status='botref' LIMIT 1";
mysql_query($aquery) or die(mysql_error());
$bquery2 "DELETE FROM yob_purchases WHERE id='$id'";
mysql_query($bquery2) or die(mysql_error());
$myDb->close();
echo 
"<p class='success'><bReferral Request Approved.</b></p>";


questa query "$sqlex = "UPDATE yob_users SET referals='$numero' WHERE username='$username' LIMIT 1";" non funziona e neanche questa "$aquery="UPDATE yob_users SET refbots='$numbot' WHERE referer='$username' and user_status='botref' LIMIT 1";"
questa "$bquery = "UPDATE yob_users SET referer='$username', endrefdate='$timerentend', refpurchase='1' WHERE referer='' AND referer!='$username' LIMIT $referrals";"invece, "referer!='$username'" in questo modo non assegna se stesso come refer. Cosa c'è che non va nelle 2 query??????
Cita messaggio
#4
Non si capisce niente di cosa hai scritto!
E non ho capito perché hai scritto quel pezzo di codice e non hai provato quello che ho scritto io.
Mattia!
Cita messaggio
#5
(02/11/2008 16:46)Mattia Ha scritto: Non si capisce niente di cosa hai scritto!
E non ho capito perché hai scritto quel pezzo di codice e non hai provato quello che ho scritto io.
ti spiego solo quali query non funzionano solo questo, volevo solo sapere perchè una query funziona e due no.
Cita messaggio
#6
Hai provato il codice che ho scritto prima?
Mattia!
Cita messaggio
#7
(02/11/2008 16:56)Mattia Ha scritto: Hai provato il codice che ho scritto prima?
no questo no
Cita messaggio
#8
Allora provalo e, se non funziona, riscrivi il codice completo che hai utilizzato e spiega in modo dettagliato cosa fa e cosa invece dovrebbe fare.
Mattia!
Cita messaggio
#9
(02/11/2008 17:06)Mattia Ha scritto: Allora provalo e, se non funziona, riscrivi il codice completo che hai utilizzato e spiega in modo dettagliato cosa fa e cosa invece dovrebbe fare.
il codice rifatto da te non funziona, il codice che funziona parzialemente lo già postato prima. ho scritto anche cosa fà aggiorna i campi (endrefdate, referer, refpurchase) mentre non aggiorna i campi (referals,refbots). Dove è l'errore???
Cita messaggio
#10
Il codice riscritto da me cosa fa invece?
Mattia!
Cita messaggio
#11
(03/11/2008 07:45)Mattia Ha scritto: Il codice riscritto da me cosa fa invece?

il tuo codice mi da errore in partenza.
Cita messaggio
#12
Che errore ti dà?
Mattia!
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)