$value) ${$var}=$value; foreach ($_POST as $var => $value) ${$var}=$value; foreach ($_COOKIE as $var => $value) ${$var}=$value; foreach ($_SESSION as $var => $value) ${$var}=$value; */ //EoRem //include 'typeforum.set'; // sets $dbHost,$dbLogin,$dbPassword and various particular cases for non-admin people (like $dbGenerale etc) - just ignore it and work as admin only $dbHost='localhost'; $dbLogin='root'; $dbPassword='gogolito'; function LogAction($parpseudo,$parip,$parmsg,$parlevel) { // dummy echo "$parmsg
"; } // dummy //require 'session.inc'; // will throw out unregistered (not logged in) people ; defines also useful functions like LogAction() - dummy above //VGR21062003 REM you may say for a start : $sess_pseudo='yourself'; session_register('sess_pseudo'); $sess_admin="1"; session_register('sess_admin'); $dbGenerale='test'; // this has to be a database that always exists //EoRem //begin header("Refresh: 9999"); /* set browser refresh period à 9999s (jamais, 2,77h) */ echo "poor VGR's database handler"; echo "Bonjour $sess_pseudo.  Quitter
"; if ($sess_pseudo=="visiteur") { LogAction($sess_pseudo,$REMOTE_ADDR,"se fait jeter de la gestDB.",2); echo "Cette page n'est pas accessible aux visiteurs, enregistrez-vous d'abord.(cf Aide)"; exit;} if (isset($getTable)) { LogAction($sess_pseudo,$REMOTE_ADDR,"DB : accède à la table $table dans $datab.",2); } if (isset($quitte)) { session_unregister("datab"); session_unregister("table"); session_unregister("globTableLue"); session_unregister("globChAcc"); session_unregister("globLimited"); session_unregister("globChLon"); session_unregister("globNbChamps"); session_unregister("globChNom"); session_unregister("globChTyp"); LogAction($sess_pseudo,$REMOTE_ADDR,"DB : quitte.",2); echo "Session de gestion des DBs tuée, utilisez le menu de gauche."; echo ""; exit; } if (isset($change)) { session_unregister("table"); unset($table); session_unregister("datab"); unset($datab); session_unregister("globTableLue"); session_unregister("globLimited"); session_unregister("globChAcc"); session_unregister("globChLon"); session_unregister("globNbChamps"); session_unregister("globChNom"); session_unregister("globChTyp"); LogAction($sess_pseudo,$REMOTE_ADDR,"DB : change de DB.",2); } if (isset($change2)) { session_unregister("table"); unset($table); session_unregister("globTableLue"); session_unregister("globLimited"); session_unregister("globChAcc"); session_unregister("globChLon"); session_unregister("globNbChamps"); session_unregister("globChNom"); session_unregister("globChTyp"); LogAction($sess_pseudo,$REMOTE_ADDR,"DB : change de table.",2); } //test //echo "table $table in database $datab
"; // if (!isset($datab)) { //lecture des tables disponibles et tri selon rang de l'utilisateur, puis présentation du choix if ($sess_admin=="1") { $linkID=mysql_connect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); mysql_select_db($dbGenerale,$linkID) or die ("bad select DB ".mysql_error()); $query="SHOW DATABASES;"; $result=mysql_query($query,$linkID) or die ("bad query get databases in $dbGenerale. ".mysql_error()); while ($res=mysql_fetch_array($result)) $globDatab[]=$res[0]; } else { // valeurs par défaut $datab=$dbGenerale; // unset now } // liste des tables disponibles // formulaire avec présentation des choix possibles echo "
Hôte : $dbHost
"; echo "
"; // ENCTYPE=\"multipart/form-data\">"; echo ""; echo "  
"; // bouton Load par défaut echo "
"; echo ""; exit; } // else database is known if (!isset($table)) { //lecture des tables disponibles et tri selon rang de l'utilisateur, puis présentation du choix if ($sess_admin=="1") { if ($sess_osWin==1) $linkID=mysql_connect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); else $linkID=mysql_pconnect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); mysql_select_db($datab,$linkID) or die ("bad select DB ".mysql_error()); $query="show tables;"; $result=mysql_query($query,$linkID) or die ("bad query get tables in $datab. ".mysql_error()); while ($res=mysql_fetch_array($result)) $globTables[]=$res[0]; } else { // valeurs par défaut $globTables[]='prives'; $globTables[]='upload'; } // liste des tables disponibles // formulaire avec présentation des choix possibles echo "
Database : $datab
"; echo "
"; // ENCTYPE=\"multipart/form-data\">"; echo ""; echo ""; echo "  
"; // bouton Load par défaut echo "
"; echo ""; exit; } // else la table est connue echo "
Database : $datab   Changer
"; // on décrit la table si ce n'est déjà fait //pré-requis : pas de flottants, premier champ est la clef d'accès, les types de champ sans longueur sont datetime=19chars et text=>textarea // : le seul champ permettant un tri limité à 2000 est dateheure (donc pas activité) if (!isset($globTableLue)) { //trace de test LogAction($sess_pseudo,$REMOTE_ADDR,"DB : analyse $table.",7); // if ($sess_osWin==1) $linkID=mysql_connect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); else $linkID=mysql_pconnect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); mysql_select_db($datab,$linkID) or die ("bad select DB ".mysql_error()); $query="describe $table;"; $globNbChamps=0; $globLimited=FALSE; $result=mysql_query($query,$linkID) or die ("bad query get description of $table in $datab. ".mysql_error()); while ($res=mysql_fetch_array($result)) { $globChNom[]=$res[0]; // "Field" if($res[0]=='dateheure') $globLimited=TRUE; $globChTyp[]=$res[1]; // "Type" // REM on laisse tomber les colonnes suivantes ("Extra" eût été intéressant) $pos1=strpos($res[1],'int'); // suppose qu'il n'y a pas de flottants $boolPasTrouve=($pos1===false); // vrai si trouvé (via NOT pastrouvé) (pas d'autre solution) $globChAcc[]=(!$boolPasTrouve)?0:1; // on mémorise que c'est un numérique (pas de ' en requète) $longueur=19; // défaut $pos1=strpos($res[1],'('); // suppose qu'il n'y a pas de flottants $boolPasTrouve=($pos1===false); // vrai si trouvé (via NOT pastrouvé) (pas d'autre solution) if (!$boolPasTrouve) { // trouvé $pos2=$pos1+1; while ($res[1][$pos2]<>')') $pos2++; $subchaine=substr($res[1],$pos1+1,$pos2-1-$pos1); // le 3ème par est la longueur pas la position... $longueur=(integer)$subchaine; } // if longueur $globChLon[]=$longueur; $globNbChamps++; } //while champs de la table // le premier champ est implicitement la clef... $globTableLue=1; session_register("table"); session_register("globTableLue"); session_register("globLimited"); session_register("globChNom"); session_register("globChTyp"); session_register("globChAcc"); session_register("globChLon"); session_register("globNbChamps"); } // else c'est déjà fait // // ----------------------------- LIGNES -------------------------------- // if (isset($new)) { // positionnés : formulaire if ($sess_osWin==1) $linkID=mysql_connect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); else $linkID=mysql_pconnect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); mysql_select_db($datab,$linkID) or die ("bad select DB ".mysql_error()); $query="replace into $table values ("; for ($i=0;$i<($globNbChamps-1); $i++) if ($globChAcc[$i]==1) $query.="'".${'F'.$globChNom[$i]}."',"; else $query.=${'F'.$globChNom[$i]}.","; if ($globChAcc[$globNbChamps-1]==1) $query.="'".${'F'.$globChNom[$globNbChamps-1]}."'"; else $query.=${'F'.$globChNom[$globNbChamps-1]}; $query.=");"; //test echo "query add = $query
"; // $result=mysql_query($query,$linkID) or die ("bad query replace in $table $query. ".mysql_error()); LogAction($sess_pseudo,$REMOTE_ADDR,"DB : ajoute via $query.",4); } // new case if (isset($get)) { if ($sess_osWin==1) $linkID=mysql_connect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); else $linkID=mysql_pconnect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); mysql_select_db($datab,$linkID) or die ("bad select DB ".mysql_error()); $query="select * from $table where ".$globChNom[0]."="; if ($globChAcc[0]==1) $query.="'"; $query.=${'F'.$globChNom[0]}; if ($globChAcc[0]==1) $query.="'"; $query.=";"; //test //echo "query get = $query
"; // $result=mysql_query($query,$linkID) or die ("bad query get $table ID=".$globChNom[0]." . ".mysql_error()); $res=mysql_fetch_array($result); //test //echo $res[0]." ".$res[1]." ".$res[2]." ".$res[3]." ".$res[4]." ".$res[5]." ".$res[6]."
"; // for ($i=0;$i<$globNbChamps; $i++) { ${'loc'.$globChNom[$i]}=$res[$globChNom[$i]]; //test //echo "$i ".$globChNom[$i]."=".$res[".$globChNom[$i]."]."
"; //echo "$i loc=".${'loc'.$globChNom[$i]}."
"; // } // for de chargement echo "a lu enregistrement ".${'F'.$globChNom[0]}."
"; LogAction($sess_pseudo,$REMOTE_ADDR,"DB : lit via $query.",4); } if (isset($del)) { $FID=${'F'.$globChNom[0]}; if ($FID<>'') { if ($sess_osWin==1) $linkID=mysql_connect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); else $linkID=mysql_pconnect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); mysql_select_db($datab,$linkID) or die ("bad select DB ".mysql_error()); $query="delete from $table where ".$globChNom[0]."="; if ($globChAcc[0]==1) $query.="'"; $query.=$FID; if ($globChAcc[0]==1) $query.="'"; $query.=";"; //test //echo "query del = $query
"; // $result=mysql_query($query,$linkID) or die ("bad query del $FID . ".mysql_error()); echo "a effacé enregistrement $FID
"; LogAction($sess_pseudo,$REMOTE_ADDR,"DB : a effacé via $query.",4); } else echo "
rien à effacer
"; } echo "
Formulaire de modification de la table $table   Changer
"; echo "
"; //VGR23062002 ENCTYPE=\"multipart/form-data\" echo "ID=".$globChNom[0].' '.$globChTyp[0]." ".(($globChAcc[0]==1)?'texte':'numérique')."  "; // l'ID echo "    
"; // bouton Load par défaut echo ""; echo ""; echo ""; if (($sess_admin==1) and ($table=='prives')) echo "  '; echo ""; echo ""; for ($i=1; $i<$globNbChamps; $i++){ // on saute le 0 qui est ci-dessus if ($globChTyp[$i]=='text') echo ""; else echo ""; } // for d'affichage des autres champs echo "
nom champtypegenrevaleur
".$globChNom[$i]."".$globChTyp[$i]."".(($globChAcc[$i]==1)?'texte':'numérique')."
".$globChNom[$i]."".$globChTyp[$i]."".(($globChAcc[$i]==1)?'texte':'numérique')."
"; echo "
"; echo "
"; // listage echo ""; echo ""; for ($i=0; $i<$globNbChamps; $i++) echo ""; echo ""; if ($sess_osWin==1) $linkID=mysql_connect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); else $linkID=mysql_pconnect("$dbHost","$dbLogin","$dbPassword") or die ("bad connect".mysql_error()); mysql_select_db($datab,$linkID) or die ("bad select DB ".mysql_error()); //construction requète $query="select * from $table"; if ($globLimited) $query.=" order by dateheure desc limit 20;"; // 20 ou 2000 ??? ;-) else $query.=" order by ".$globChNom[0]." desc limit 20;"; //suite //test //echo "query get = $query
"; // $result=mysql_query($query,$linkID) or die ("bad query get $table listing . ".mysql_error()); while ($res=mysql_fetch_array($result)) { echo ""; for ($i=0; $i<$globNbChamps; $i++) echo ""; echo ""; } // while de parcours echo "
".$globChNom[$i]."
".$res[$globChNom[$i]]."
"; echo "
@2001-2003 VGR (vgr@edainworks.com, vgr@europeanexperts.org)"; ?>