PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : MySQL, PostgreSQL, etc... » include de page grace a un line dans une cellule de mysql » 19-03-2010 00:49:49

Y'a une erreur dans le code !
À la ligne 5.
Ce n'est pas « ect » mais « etc » !

<voice mode="Denisot">Désolé...</voice>

#2 Re : MySQL, PostgreSQL, etc... » Les privilèges... » 18-03-2010 22:16:27

Je viens de me rendre compte que l'option --tables ne semble pas vouloir faire ce que je pensais qu'elle faisait...
Donc, peut-être que plutôt que de parler de privilèges (qui me prennent quand même bien la tête mais on verra un autre jour), ma question sera : « Est-il possible d'exporter une table que l'on puisse importer plus tard ? »

#3 MySQL, PostgreSQL, etc... » Les privilèges... » 18-03-2010 22:16:27

dionysos
Réponses : 1

... me prennent bien la tête !

Bonsoir !

Jusqu'à présent, lorsque je voulais faire une modification dans une base de données qui n'était pas possible au travers de phpMyAdmin, j'exportais la base de données, j'ouvrais l'exportation dans un éditeur de texte, je faisais la modif et je réimportais la base.
En général, c'est pour modifier la valeur de l'auto-incrément
Aujourd'hui, j'ai un problème, car la base sur laquelle je souhaite faire des modifs contient une table avec près de 13000 et représente 98% du volume des données de la base, et il semblerait qu'un « mysqldump » produise en gros une ligne de caractères par table.
Et, apparemment, les éditeurs de texte ont du mal à supporter une ligne d'environ 1 000 000 de caractères.
Je me suis penché sur la doc, et il semblerait que l'on puisse n'exporter qu'une (ou plusieurs) table(s) d'une base de donnés.

Malheureusement, si la commande suivante fonctionne bien

mysqldump -u utilisateur -pMDP mabase > mabase.sql

celle-là

mysqldump -u utilisateur -pMDP --tables uneTable > uneTable.sql

ne fonctionne pas, mysql me renvoyant une erreur

Access denied for user 'utilisateur'@'localhost' to database 'uneTable' when selecting the database

#4 Re : MySQL, PostgreSQL, etc... » [Résolu] Manipulation de dates » 16-03-2010 19:30:28

C'est exactement ce qu'il me fallait !
Merci...

Comme quoi, quand une question est bien posée, on obtient rapidement une réponse sans développer un fil de discussion à l'infini big_smile

Edit:
Dommage qu'on ne puisse pas modifier le sujet du fil.

#5 MySQL, PostgreSQL, etc... » [Résolu] Manipulation de dates » 16-03-2010 19:30:28

dionysos
Réponses : 2

Bonsoir,

Je n'arrive pas à écrire une requête simple qui ferait ce que je souhaite.

Le contexte : mise en place d'un système d'inscription avec un minimum de verrous anti-spam.
J'ai donc une table « demandeInscription » contenant les champs :
- id (INT, primaire)
- courriel (VARCHAR)
- confirmation (VARCHAR, 40)
- dateDemande (DATETIME)

Lorsque quelqu'un souhaite s'inscrire, j'enregistre sa demande en remplissant dateDemande avec NOW() et confirmation avec une chaine de caractères aléatoire, puis je lui envoie un courriel contenant un URL sur lequel cliquer qui contient la chaine alétoire à récupérer avec $_GET.
Mais... Je ne veux pas que le lien soit éternellement valide !

J'ai donc commencé à écrire la fonction suivante :

  function estcequeConfirmationValide( $chaine, $dureeValidite ) {
    global $tb_demandeInscription;

    $sql_req   = "SELECT id FROM $tb_demandeInscription
                   WHERE confirmation='$chaine'
                   AND ( NOW() - dateDemande <  $dureeValidite )"
;  // Cette partie est bidon
    $resul_req = mysql_query( $sql_req );
    $ou_req    = "function estcequeConfirmationValide ( $chaine, $dureeValidite )";
    erreurRequete( $sql_req, $resul_req, $ou_req );
    $valide    = mysql_num_rows( $resul_req );
    if ( $valide == 0 ) {
      $valide  = false;
    } else {
      $valide  = true;
    }
    return $valide;
  }
 

Je n'ai pas encore décidé du format de $dureeValidite, mais je souhaite fortement un entier exprimant soit unnombre de jours, soit un nombre d'heures.

#7 Re : Forum Général PHP » mettre une photo de remplacement si la requéte ne renvoi pas de valeur » 08-03-2010 00:51:21

Les « Ça marche pas », ça n'aide pas particulièrement pour comprendre ce qui ce passe :-(

<?php
$pseudo = $row_Recordset1['pseudo'];
$image = "photos/pseudo/".$pseudo.".jpg";
if ( !file_exists($image)) {
  echo "Message de débogage à supprimer lorsque le problème sera résolu.</br>";  // À supprimer  quand ça marche
  echo "Le fichier $image n'existe pas. Est-ce normal, oui ou non ?</br>"; // À supprimer  quand ça marche
  $image = "photos/pseudo/Pasdephoto.jpg";
  if ( !file_exists($image)) {  // À supprimer  quand ça marche
    echo "Le fichier $image n'existe pas....</br>"; // À supprimer  quand ça marche
    echo "Il y a un problème là, non ?</br>"; // À supprimer  quand ça marche
  } // À supprimer  quand ça marche
}
?>
<img scr=<?php echo $image ?>/>
 

De plus, quand on développe des trucs où l'interaction entre php et html est importante, ben, il est quand même utile d'afficher le code source de la page html que l'on a fabriqué,

#9 Re : Forum Général PHP » probléme d enregistrement dans ma bdd » 01-03-2010 12:53:48

Bon, moi, j'abandonne...
Tu ne réponds pas quand je te pose des questions.
Tu ne fais pas ce que je te demande pour m'aider à t'aider, je ne vais pas insister...

Je suis certain que ce script ne s'exécute pas sinon il afficherait :
soit « Attention,le champs ne peut rester vide ! »
soit « Vos infos on été ajoutées. »
soit un message d'erreur mysql.

Il ne peut pas en être autrement !

Et pour ceux qui souhaitent continuer à l'aider, je vous conseille de revenir ici, vous finirez bien par comprendre pourquoi le script n'est pas exécuté.

#10 Re : Forum Général PHP » probléme d enregistrement dans ma bdd » 01-03-2010 12:53:48

Alors c'est normal que ta base de données ne soit pas modifiée !!!
Tu aurais quand même pu trouver ça tout seul sad
Je te conseille déjà de mettre un « espion » au tout début de ton script :

echo "On va récupérer l'adresse courriel</br>";

histoire de vérifier que le script s'exécute bien....

#11 Re : Forum Général PHP » probléme d enregistrement dans ma bdd » 01-03-2010 12:53:48

tycoons a écrit :

salut dionysos,

toute à fait d'accord avec toi la méthode pour enregistrer dans ma base insert into apres je met les variable que je veux enregistrer . Aprés je m'y prend trés mal c'est sur puisque sa ne  marche pas .Dans ma page index ma fonction post mail avec le inser into du champ mail devrai s'enregistrer normalement non?

Je t'ai posé une question, merci d'y répondre si tu veux qu'on avance...

#12 Re : Forum Général PHP » sprintf : nombre de paramètres inconnu » 26-02-2010 13:42:05

À la louche, j'essaierai un truc comme ça :

$nb=count($params)
$tmp="";
for($i=0,$i<$nb;$i++) {
  $tmp .=",$params[$i]";
}
$req = sprintf($sql$tmp);

#13 Re : Forum Général PHP » probléme d enregistrement dans ma bdd » 01-03-2010 12:53:48

@Maljuna Kris & xTG

Pourquoi vous ne répondez pas au problème posé ?
Bien sûr que ce qu'il fait est une aberration !
Mais il s'en rendra bien compte assez tôt.

Pourquoi vouloir lui faire insérer tous les champs puisqu'il n'arrive pas à en insérer un ?
Il bloque sur le fait que sa base de données n'est pas mise à jour.
Lorsqu'il sera arrivé à insérer un enregistrement, même avec un seul champ, il sera content, il pourra avancer et là, il se rendra bien compte qu'il aurait mieux valu insérer tous les champs en même temps que de mettre à jour un enregistrement.

#14 Re : Forum Général PHP » probléme d enregistrement dans ma bdd » 01-03-2010 12:53:48

Est-ce que le message « Vos infos ont été ajoutées » s'affiche ?

#15 Re : Forum Général PHP » Php, lecture fichier csv pour insertion Mysql » 09-03-2010 23:13:14

Qu'y-a-t'il que tu ne comprends pas ?
$data est un tableau, à une dimension, qui contient une ligne de ton fichier csv après l'appel à fgetcsv().
$num est le nombre de colonnes (champs) dans cette ligne.
$row est la ligne du fichier actuellement traitée.

for ($c=0; $c < $num; $c++) : pour tous les champs de cette ligne
echo $data[$c] . "<br />\n"; afficher le champ à l'écran

Il est peu probable que dans ton cas, tu aies besoin de cette boucle for.

Un exemple de traitement pourrait être :

<?php
if (($handle = fopen("test.csv", "r")) !== FALSE) {
   while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
     $nom = $data[0];
     $prenom = $data[1];
     $age = $data[2];
     ...
     $cas_particulier = $data[6];
     $tel = $data[7];
     $courriel = $data[8];

     $cas_particulier = explode(">",$cas_particulier);
     $cas1 = $cas_particulier[0];
     $cas2 = $cas_particulier[1];
     $cas3 = $cas_particulier[2];
 
     $requete = "INSERT INTO ma_table (nom,prenom,age,...,cas1,cas2,cas3,tel,courriel)
                  VALUES ('$nom','$prenom','$age',...,'$cas1','$cas2','$cas3','$tel','$courriel')"
;
     mysql_query($requete);
    }
  fclose($handle);
 }
?>

Ce n'est certainement pas optimisé wink mais je pense que cela a le mérite d'être clair et pédagogique.

#16 Re : Forum Général PHP » [Résolu] Valeur de retour de mail() » 25-02-2010 09:25:24

Je viens de refaire un essai, sendmail est muet comme une carpe.

Lorsque l'entête est correct, j'ai 4 lignes de log sendmail par message, lorsqu'il n'est pas bon, il n'y a qu'une seule ligne, qui ne dit rien de particulier.
Cette ligne est d'ailleurs plus ou moins identique à la 1ère des 4 lignes lorsque le message est bon.

Lorsque j'aurai un peu de temps à perdre, j'irai fouiller dans les source de php (si jamais j'y comprends quelque chose....)

#17 Re : Forum Général PHP » [Résolu] Valeur de retour de mail() » 25-02-2010 09:25:24

xTG a écrit :

Bon eh bien je pourrais aller tirer les cheveux de mon professeur de français (ça remonte à loin le lycée, il aimera peut être ma venue).
Auparavant je pensais comme toi jusqu'à ce qu'il me pique une crise inimaginable suite à une dissertation rendue... Si on ne peut plus croire les professeurs de français je me demande qui croire par la suite...
Et euh histoire d'enfoncer le clou c'est qui déjà qui a autorisé l'absolue connerie de faire certaines liaisons qui n'ont aucun sens ? (les Z'haricots !)
Cette chère académie française, enfin c'était juste histoire de nuancer mes propos et de contredire ton terme "sérieux de référence". ^^

Tu fais google "majuscules accentuées" et tu en trouveras pas mal d'autres.
Moi, c'est avec ma frangine que je me suis engueulé à ce propos, et elle est secrétaire de direction...

xTG a écrit :

Sinon je vois mieux où tu veux en venir pour ta seconde question. (même si je n'en vois pas l'utilité pour ma part, mais chacun ses objectifs smile )

Ben, l'utilité, c'était de savoir pourquoi mail() renvoyait une erreur justement...
J'ai compris pourquoi lorsque je me suis rendu compte que c'était toujours sur les mêmes destinataires que la fonction plantait. Et avec un peu d'observation, j'en ai conclu que c'était à cause des majuscules accentuées et autres Ï, Ë, etc...

xTG a écrit :

Même si je n'ai pas la réponse. C'est forcement un retour du serveur mail de l'hébergement mais je n'y connais rien sur ce domaine.

Je n'utilise pas de serveur de courrier sur cette machine, j'ai juste indiqué à sendail d'utiliser le smtp de mon boulot. Si c'était le serveur de courrier qui rejetait le courrier, cela voudrait dire que le courrier est bien parti de ma machine et je recevais un message d'erreur, dans ma boîte aux lettres, de la part du serveur.
Ce n'est pas le cas, il est donc possible (mais pas certain) que ce soit sendmail qui refuse d'effectuer l'envoi.

xTG a écrit :

Malgré la férocité de tes propos je me suis tout de même pris la peine de répondre. Je te souhaite bonne chance dans tes recherches.
Bonne continuation dans un dialogue sain (puisque toutes mes réponses semblent te peser sur le système).

Y'a des jours comme ça !
Disons que quand je me suis levé ce matin pour voir que la seule réponse était à coté du problème posé alors que je pense avoir bien décrit mon problème, cela m'a quelque peu mis de mauvaise humeur...
Je sais, ça la fout mal pour mon premier fil de discussion sur le nouveau forum...

Mais tu verras, je suis gentil comme mec, et même serviable wink
Mais je n'aime pas perdre mon temps, surtout quand je suis à la bourre !

#18 Re : Forum Général PHP » [Résolu] Valeur de retour de mail() » 25-02-2010 09:25:24

xTG a écrit :

Et qui a dit que la langue française acceptait les accents dans les majuscules au fait ? ^^
Il est de ces jours où tout le monde se croit permis d'écrire n'importe quoi malheureusement.

L'Académie Française, cela te suffit comme sérieux de référence ?

xTG a écrit :

Content tout de même qu'en encodant les accents cela passe, mais vérifies tout de même le résultat à l'arrivée du mail. Car si c'est pour les remplacer par des caractères bizarres autant ne pas mettre d'accents.

Évidemment que j'ai vérifié...
Les courriels, je me les envoie à moi pendant la phse de développement...

xTG a écrit :

Et pour ta seconde question je n'a toujours pas compris, car ma réponse s'applique à ce que fait la fonction mail, il n'y en a pas d'autres.
Tu n'as aucun moyen de savoir si l'email existe bien, si le mail sera bien arrivé à destination. La seule chose que tu peux savoir c'est que le mail est parvenu jusqu'au serveur de mail de ton hébergement. Après si ce dernier est configuré tu recevras un "undelivered mail" sur ton adresse email principale de l'hébergement.

Tu le fais exprès ou quoi ?
Où tu vois que je parle de réception ?
Je ne parle que d'expédition !!!

Je me re-cite :

dionysos a écrit :

Il est dit, dans la documentation de la fonction mail(), que celle-ci « Retourne TRUE si le mail a été accepté pour livraison, FALSE sinon ».

Donc, qui ou quoi ou quel meccanisme obscur indique à la fonction mail() que le message n'a pas été accepté pour une livraison, raison pour laquelle la fonction renvoie FALSE.
Bon, je vois bien que si je veux vrqaiment avoir une réponse à cette question, je n'ai d'autre choix que d'ailleurs fouillé dans le code source de php, là ou est codée la fonction.

#19 Re : Forum Général PHP » [Résolu] Valeur de retour de mail() » 25-02-2010 09:25:24

On ne peut pas modifier le sujet de la discussion ?
Pas cool sad

Même si peu de monde fait d'effort d'ajouter [RÉSOLU] dans le sujet un fois le problème réglé, moi j'aime bien le faire car je trouve que c'est utile.

#20 Re : Forum Général PHP » [Résolu] Valeur de retour de mail() » 25-02-2010 09:25:24

Bon, je n'ai pas trouvé de réponse aux questions que je me posais, mais j'ai trouvé une solution à mon problème, c'est quand même le plus important, grâce à la fonction quoted-printable-encode(), qui n'est pas disponible pour ma version de php mais qu'un gentil contributeur a bien voulu mettre en exemple.
Cette contribution étant très récente, j'ai de la chance de n'avoir été confronté au problème que maintenant wink

#21 Re : Forum Général PHP » [Résolu] Valeur de retour de mail() » 25-02-2010 09:25:24

Bon, d'abord, je me suis trompé, ce n'est pas pour l'entête From mais pour le destinataire TO.
Mais quelque chose me dit que cela ne doit pas faire de différence.

Ensuite, je n'ai pas dit que l'adresse contenqait des voyelles accentuées, j'ai dit « le champ To: comporte des majuscules accentuées ».
Ce n'est pas la même chose !
To : "Bernard FRÉDÉRIC <bernard.frederic@podium.org>"
Avec mon lecteur de courrier, ce genre d'adresse part et arrive très bien.

Ensuite, j'ai demandé « Qui informe la fonction mail() que le message n'a pas été accepté pour la livraison ? »

#22 Forum Général PHP » [Résolu] Valeur de retour de mail() » 25-02-2010 09:25:24

dionysos
Réponses : 13

Bonjour,

Il est dit, dans la documentation de la fonction mail(), que celle-ci « Retourne TRUE si le mail a été accepté pour livraison, FALSE sinon ».
Mais qui donc informe mail() s'il a accepté le message ou non ?

En effet, j'ai un petit problème.
J'ai constaté que la fonction mail() échouait lorsque l'entête From: contenait des majuscules accentuées.

Et moi, j'aime beaucoup les majuscules accentuées wink

Pied de page des forums

Propulsé par FluxBB