Probleme de serveur ? ou de code ...

Bonjour,

J'ai un problème le code qui suit fontionne à merveille sur un serveur mais pas sur un autre... d'ou le problème peut-il venir, du serveur et de sa configuration ? ou du code ( mal coder, je suis une noob) si c'est mal coder pourquoi fonctionne t-il sur un serveur

Sur le serveur ou le code ne fontionne pas si count==0 alors il inscrit correctement les données dans la base de donnée mais si ce n 'est pas le cas alors je suis redirigé vers le dernier post créer ... donc le else n'est pas pris en compte ...

Voici mon code

<?

include ("config.php");

if ($_POST["post"]) {
$post=$_POST["post"];
$select = mysql_query("SELECT * FROM 'allposts' WHERE 'post'='$post'");
$count = mysql_num_rows($select);
if($count == 0){
mysql_query("INSERT INTO allposts VALUES(NULL, '$post', '1')");
}
else
{
$donnee = mysql_fetch_assoc($select);
header('Location: post.php?id='.$donnee['id']);
}
$x=mysql_query("SELECT * FROM allposts ORDER BY id DESC LIMIT 1");
while ($y=mysql_fetch_assoc($x)){
$id=$y['id'];
}
?>
<script type="text/javascript"> window.location.href="<?=$url_site?>post.php?id=<?=$id?>";</script>
<?
}
?>

4 réponses

  1. J'ai déjà eu ce genre de problème (fonctionne en local pas en ligne). Il se peut que l'erreur soit toute bête...

    Commence par remplacer les <? par <?php
    1. Hello Merci pour ta réponse mais hélas aucun changement.
  2. Sinon pour le count==0, c'est normal que si ce n'est pas le cas il te redirige puisque c'est ce que tu lui demande...

    else
    {
    $donnee = mysql_fetch_assoc($select);
    header('Location: post.php?id='.$donnee['id']);
    } 
    1. Oui mais c'est un système pour éviter les doublons donc si id est vide on inscrit mais si il est pas vide ( else) m'envoyer sur le post qui existe déjà . Mais la si le post existe déjà je ne suis pas redirigé vers le post.php mais vers le dernier post créer ... XD
    2. Donc si j'ai bien compris, dans tous les cas tu as une insertion au lieu de la redirection vers le post trouvé?
    3. euh une insertion uniquement si l'id est vide sinon pas d'insertion mais une redirection vers le dernier post créer
    4. Oui ça c'est ce que tu veux... Mais quel est donc le problème???

      donc le else n'est pas pris en compte ... 
    5. non ce n'est pas ce que je veux je veux que si l'id existe alors qu'il m'envoie sur le post existant

      si le visiteur tape Hello cela cherche dnas la base de donnée si hello existe si oui alors on l'envoie sur le post avec pour titre hello sinon on insert hello puis biensur on le redirige vers son post
      cela fonctionne sur un serveur mais pas sur un autre tout les 2 online sous linux
  3. $ost=$_POST["post"]; 
    Tu n'aurais pas oublié le p de post?
    1. Ainsi sur un serveur vieux, il considère que c'est pareil que $_POST['post'] et sur l'autre plus récent, il ne reconnait pas la variable en question
    2. oui désolé mais cela ne viens pas de la erreur de frappe de ma part lors de la création du post désolé je modifie
    3. OK alors je vois plus désolé
      :-(
    4. Oki merci quand même d'avoir essayer de m'aider je pense que cela viens de la configuration de php ou de mysql T.T
  4. Probablement. Il faut que tu regarde quelle version de php est sur chaque serveur et que tu regarde chaque fonction pour voir si elle existait sous cette version.