Aller au contenu

Boo2M0rs0

Hubmaster
  • Compteur de contenus

    133
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par Boo2M0rs0

  1. Bonjour, Ce que tu décrit ressemble pas mal à une shootbox/tribune libre
  2. Salut, Si tu es dégroupé ... et chanceux , tu peux tenter chez free qui propose de gros débits. Je crois que Neuf aussi propose du 8méga pour pas grand chose avec juste les services minimum( pas de tv et de tel) mais là aussi il faut être dégroupé. Mais j'ai eu beaucoup de problèmes avec tout ces FAI, neuf m'a fait attendre deux mois avant d'activer ma ligne puis m'a débranché du jours au lendemain pour une lettre de résiliation périmée. Quant à free, ce n'est pas mieux, ils font payer l'abonnement même si la connexion ne marche pas pour une raison ou pour une autre. Finalement avec le recul je me rend compte que tous les fourniseurs grand public sont comme ça, peut être un peu moins wanadoo qui a l'air de satisfaire beaucoup de monde ps: par contre free quand ça fonctionne comme il faut, rien à dire, 20méga en dl et 2 méga en upload
  3. J'ai cru comprendre que c'est la nouvelle valeur qui ne doit pas être vide.De plus je crois que la valeur nulle ne doit pas être entourée d'apostrophes et de toute facon une chaine vide n'est pas considérée comme nulle Sinon je viens de découvrir un meilleur moyen que ce que j'avais écrit plus haut, il me semblait bizarre qu'il n'existe pas un equivalent de l'opérateur ? : sur sql, en fait il s'appèle if et on peut donc s'en servir dans cette situation: UPDATE membre SET nom = IF ( '$nom' != '' , '$nom' , nom ) , prenom = IF ( '$prenom' != '' , '$prenom' , prenom ) WHERE id = 2 Attention nom est la valeur actuelle de l'enregistrement et '$nom' est la nouvelle valeur. Mais en relisant le problème d'origine, je me demandes si il ne serait pas plus simple de remplir tous les champs par un script php, comme ça, l'utilisateur pourra voir l'ancienne valeur avant de la modifier et ce problème n'en est plus un edit: aille les couleurs de mon sql sont assez bizarres :s pourtant je ne vois pas d'erreurs de syntaxes
  4. Si tu veux absolument pas passer par les if lors du php, tu peux faire: update membre set nom = '$nom' where '$nom' != '' AND id = 2 Mais c'est vraiment pas logique et beaucoup plus limité :/
  5. Bonjour, Un extension php pour générer du pdf: http://fr.php.net/manual/fr/ref.pdf.php J'ai pas testé mais d'après ce qu'il y a écrit c'est ce que tu cherches
  6. Bonjour, Je vois pas trop ce que tu demandes pour appeler une fonction il suffit d'écrire son nom, suivi de des parenthèses. function principale(condition) { if (condition){ secondaire_01(); secondaire_02(); } } Tes fonctions ici demandent un paramètre, il faut donc le fournir à l'intérieur des parenthèses, si il y en a plusieurs il faudra les séparer par des virgules: secondaire_01( true );
  7. Like est insensible à la casse tandis que = l'est Dans php, le == est sensisble à la casse, il faut utiliser des fonctions qui mettent les deux chaines en minuscules str2lower() Hmm ça va pas beaucoup nous avancer Remplace le echo $result; par: while($row = mysql_fetch_assoc($result)) { print_r($row); echo "\n<br>"; }
  8. vérifie l'orthographe des noms des champs
  9. Bonjour, Normalement le javascript n'a pas à être validé xhtml, pour cela, on place un code de commentaires apres la balise script et un autre à la fin: <script type="text/javascript"><!-- frm="src=http://p-u-b.net/pub/pub.php?format=234x60&mcat=PRO&mcat1=INF&mlogin=Cargoz&ref="+document.referrer.replace('?','&')+" wi"+"dth=234 he"+"ight=60 SCRO"+"LLING=NO HSP"+"ACE=0 VSP"+"ACE=0 FRA"+"MEBO"+"RDER=0 MAR"+"GINHE"+"IGHT=0"; document.write("<center><IF"+"RAME "+frm+"></IF"+"RAME></center>"); //--></script><noscript><a href="http://p-u-b.net" target=_blank><img src="http://p-u-b.net/pub/def234x60.jpg" width=234 height=60 alt="pub"></a></noscript> Cela devrait marcher.
  10. Bonjour, tu va déjà avoir un problème avec ton formulaire car plusieurs champs portent le même attribut name , alors que name doit être un identifiant unique appèle par exemple: homme, femme , perf1 , perf2 etc Ensuite en php, pour tester si la case a été cochée, utilise isset($_POST['perf1']) pour savoir si la case portant le nom perf1 est cochée. En fonction de cela tu rajoutes des conditions à ta requête sql ( apres le mot where ). Désolé là je n'ai pas le temps de ton montrer un code complet, je suis assez pressé :x edit: voila j'ai codé un peu ça: <form name="form1" method="post" action=""> <p>Sexe (cocher au moins une case) : </p> <p><input type="checkbox" name="hommes"> Hommes</p> <p><input type="checkbox" name="femmes"> Femmes</p> <p> </p> <p> Nom du/de la sauteur(euse) : <input type="text" name="nom"> (facultatif) </p> <p>Compétition (cocher au moins une case) : </p> <p><input type="checkbox" name="compete1" value="jo"> Jeux Olympiques</p> <p><input type="checkbox" name="compete2" value="mondiaux"> Mondiaux</p> <p><input type="checkbox" name="compete3" value="europe"> Championnat d' Europe</p> <p><input type="checkbox" name="compete4" value="nat"> Championnats nationaux</p> <p><input type="checkbox" name="compete5" value="meeting"> Meeting</p> <p> </p> <p><input type="submit" name="Submit" value="Rechercher parmis les vidéos du site"></p> </form> <?php //une petite protection if(!get_magic_quotes_gpc() ) foreach( $_POST as $index => $v) $_POST[$index] = addslashes($v); $conditions = array(); //ce tableau contient toutes les conditions de la recherche, écrites en code sql /* Homme ou Femme ? */ if( isset($_POST['hommes']) xor isset($_POST['femmes'])) { if( isset($_POST['hommes'])) $conditions[] = " sexe = 'h' "; //le champs sexe doit contenir H else $conditions[] = " sexe = 'f' "; //le champs sexe doit contenir F } /* Compétitions possibles */ $comps = array(); //contient toutes les compétitions autorisées pour la recherche for( $i = 1; $i<=5; $i++) //il y a 5 cases if( isset( $_POST["compete$i"] )) $comps[] = " competition = '" . $_POST["compete$i"] . "' "; if( count($comps) > 0) $conditions[] = '( ' . implode("OR",$comps) . ')'; //on rajoute toutes les compétitions possibles dans une nouvelle condition /* Est ce qu'un nom est donnné ? */ if ( isset($_POST['nom']) && $_POST['nom'] != '') $conditions[] = " nom LIKE '{$_POST['nom']}'"; //ON VA faire la requête sql //ceci est la requête sql: tout selectionner dans la table vidz , avec comme conditions, les conditions du tableau $conditions, séparées par des AND $sql = "SELECT id, nom, prenom, sexe, perf, lieu, pays , competition, date, nationalite, url FROM vidz "; if( count($conditions) != 0) $sql .= "WHERE " . implode(" AND ", $conditions); $data = mysql_query($sql) or die("erreur mysql: $sql"); //On affiche: while( $row = mysql_fetch_row($data)) { echo "nom: $row[1] $row[2] , $row[3] , perf: $row[4] , <a href=\"$row[10]\">url</a><br />"; } J'ai nommé chaque case à cocher pour la compétition, compete suivi d'un numéro, apres grâce à une boucle for() , je vérifie chacun de ses champs avec isset($_POST["compete$i"]) ( $i est le numero en cours). Si il existe je rajoute une condition de recherche ( competition doit être égal à la valeur de la case cochée). Pour le nom, si la case a été remplie, on rajoute la condition ( on utilise LIKE plutot que = car il est moins restrictif). On rassemble à la fin toutes ces conditions en les séparant par des AND , et on execute la requête sql, après, il ne reste plus qu'à l'afficher. Cette méthode est plus compliquée que celle proposée par Anonymus car si rien n'est cochée, on obtient quand même un résultat).
  11. Boo2M0rs0

    Tranches horaires

    Ha oui c'est vrai quoique dans ce cas, je doute que dans ce cas où il s'agit d'une émission, il y aura une diffusion en différé Je ne comprend par vraiment ce que tu veux dire d'après le code que je t'ai donné plus haut, $heure contient un nombre et $jours aussi. Tu peux aussi imbriquer les swith.
  12. Boo2M0rs0

    Tranches horaires

    Bonjour, Utiliser le javascript, c'est prendre le risque que rien ne s'affiche sur les navigateurs ne supportant pas le javascript ou leur utilisateurs ne l'ont pas autorisé. $heure = date('G'); //heure actuelle $jours = date('w'); /* Attention $jours = 0 = dimanche 1 = lundi etc... */ Il te reste à tester les valeurs $heure et $jours avec des if et switch et à afficher l'animateur et l'émission en conséquence
  13. Il y a un truc meurtrier assez connu comme faille qui arrivent: l'injection sql Par exemple on a une table 'utilisateur' qui contient 3 champs : 'id' , 'email' 'is_admin' Si on veut changer l'email de quelqu'un grâce à un forumulaire, il faudrait faire une requête de ce genre apres avoir recu le formulaire: $sql = mysql_query("UPDATE utilisateur SET `email` = '{$_GET['nouveau_mail']} WHERE id = $id"); Donc si l'utilisateur veut mettre foo_AT_bar.com (j'ai vu qu'on prenais souvent ce genre de mot pour les exemples) en nouvelle adresse, la requête va devenir: UPDATE utilisateur SET `email` = 'foo_AT_bar.com' Seulement que se passe t-il si on veut en nouvel email la chaine: ' , `is_admin` = '1 On a la commande sql qui fonctionnne: UPDATE utilisateur SET `email` = '' , `is_admin` = '1' N'importe qui en s'enregistrant sur un site peut devenir l'admin juste en changeant d'adresse ! Pour éviter cela, on utilise souvent la fonction addslashes() qui ajoute un caractère d'échappement devant tout les caractères à risques. Une option de php ( magic_quotes_gpc ) le fait aussi sur toute les données envoyés par l'utilisateur ( contenues dans $_GET , $_POST , $_COOKIE ). Le risque d'éxecuter du php envoyé par l'utilsateur existe surtout pour l'upload de fichier, donc il faut toujours vérifier que le fichier envoyé ne contient pas l'extension .php à la fin (ou alors toute autre extension qui permet l'execution de php sur ton serveur) avant de l'enregistrer. Si tu as des parties de sites où les utilisateurs peuvent réagir en postant des commentaires , bloquent aussi l'utilisation de l'html cette fois avec htmlentities(). Plus que le risque de faire crasher ton pc, ce sont plutot les visiteurs qui auront des problèmes, au mieux la page sera déformé avec un peu de javascript, au pire en se fesant voler leur identifiants. Bon il existe bien d'autres trucs. Bref, il faut toujours prendre le temps de "sécuriser" les données qui viennent de l'extérieur avant de s'en servir.
  14. Bonjour, Si j'ai bien compris , tu appèle une première fonction avec un nombre variable de paramètres et cette fonction appèle elle-même une fonction avec un nombre variable de paramètres mais en en rajoutant au début. Si c'est ça, tu peut utiliser call_user_func_array() qui appèle une fonction avec le nombre de paramètres voulus : <?php function a() { $n_args = func_num_args(); //on récupère le nombre de paramètres $param = array("abc"); //notre tableau de paramètres que l'on va envoyer, on rajouter abc en plus (au début) for($i = 0; $i<$n_args; $i++) { $param[] = func_get_arg($i); //on rajoute à la suite de la liste les paramètres de cette fonction } call_user_func_array('b', $param); //on appèle la fonction b } ?>
  15. Month() est une fonction mysql qui extrait le numéro du mois d'une date. Donc dans ce cas , on regarde si le numéro de mois actuel ( month(now()) ) est égal au numéro de mois du champ ( month(`champ`) ) http://www.nexen.net/docs/mysql/annotee/da...e-functions.php Par contre je me pose une question sur l'optimisation, est ce que mysql recalcule month(now()) pour chaque entrée à tester ? Si c'est le cas, il vaudrai mieux passer par la fonction date() de php: $mois = date('m'); mysql_query("SELECT * FROM `ta_table` WHERE '$mois' = MONTH(`champ`)")
  16. Bonjour, Je ne suis pas sur d'avoir compris :s c'est peut être ça: SELECT * FROM `ta_table` WHERE MONTH(NOW()) = MONTH(`champ`)
  17. C'est dû à l'option magic_quotes_gpc je pense qui est activée sur ton site en ligne mais pas sur ta configuration locale. Je trouve d'ailleurs cette option problématique car il faut prévoir les deux cas, si elle est activée ou pas, au risque de se retrouver avec ce genre de bug, ou pire, créer une faille de sécurité.
  18. Bonjour, La fonction mail() sur free marche mais est limitée en nombre de mail. La connexion fsockopen() fonctionne mais juste sur le port 80 (donc presque aucun intérêt). Le plus gros problème est la lenteur d'affichage des pages à certaines périodes de pointes. Bon je m'égare, En fait je voulais juste dire qu'executer du php dans une page avec l'extension .html, j'ai testé et ça ne marche pas
  19. Bonjour <? echo '<a href="mailto:' . $valeurlud["email"] . '">' . $valeurlud["email"] . '</a>'; ?> <? echo '<a href="' . $valeurlud["site"] . '">' . $valeurlud["site"] . '</a>'; ?> Il suffit de remplacer le texte envoyé au navigateur par le code html pour créer un lien dans ce cas, ouvrir une fenêtre email est un lien qui commence en mailto: Pas vraiment besoin d'expressions régulières dans ce cas;)
  20. Boo2M0rs0

    Problème avec $_GET

    Et is_int() ? Si j'ai bien compris ce que tu veux tu peux faire avec un formulaire <form method="get"> <input type="hidden" name="num_dossier" /> <input type="submit" /> </form> Mais lors de l'envoi, les paramètres apparaitront de nouveau dans l'url apres le "?".
  21. Boo2M0rs0

    Réécriture d'URL

    Bonjour, je débute en expression régulière donc peut être que ce que je dit est faux mais je me lance quand même :/ Pour rediriger tu utilises l'expression: ^articles/(.*)/$ qui est remplacé par la page php: articles.php?a=$1 Pour rendre le slash optionnel, il suffit de rajouter un "?" derière ce caractère ce qui donne: ^articles/(.*)/?$ Dans ta page php tu devrait alors pouvoir exploiter la valeur fournie: <?php if( isset( $_GET['a'] ) ) { $_GET['a'] = addslashes($_GET['a']); //on ajoute des slash devant les guillemets simples pour éviter une injection sql $article = mysql_query("SELECT texte FROM table_article WHERE titre = '" . $_GET['a'] . "'"); if(mysql_num_rows($article) != 1) { //l'url est fause et mène vers un article qui n'existe pas } else { //l'url est correct et on va afficher la page } } ?>
  22. Si tu met `when` ou 'when' ? (désolé je sais plus c'est quoi la syntaxe )
  23. A mon humbe avis, je pense que l'utilisation du tableau est approprié dans ce cas. En effet les tableaux sont déconseillé pour des design, ici ce ne sont pas des images, juste un texte qui est classé.
  24. Le code php s'execute coté serveur, personne ne peut donc le voir, même pas un validateur. En plus, on ne peut pas vraiment comparer le html et le css (plutot des langages pour du contenu) avec le php qui est vraiment du code avec des variables etc. Le seul moyen est de faire des tests, sur une copie si c'est le vrai site est encore en ligne. Une fois un bogue trouvé, rajouter quelques lignes affichant le contenu des variables peut permettre de localiser plus facilement l'erreur.
  25. En fait c'est un peu plus compliqué (et surtout fastidieux j'en avais fait un pour un pote). Il faut aussi récupérer le nom de l'auteur qui est dans une deuxième table et le contenu du post qui est situé dans une troisième table. Bon ok ça se fait en une seule requête mais c'est plus long :/ Ensuite, il faut savoir que phpbb enregistre ses messages non transformés, il faut donc écrire un code qui traduit toute les balises bb en html et qui converti les smileys (contrairement à invision qui enregistre le html final).
×
×
  • Créer...